Ferramenta gratuita
Gerador de NodePool e EC2NodeClass do Karpenter
Escolha arquitetura, Spot, famílias de instância e regras de consolidação e receba o YAML do Karpenter v1 pronto para revisar e aplicar. Tudo roda no seu navegador: nada é enviado.
Configuração
Usado na role dos nós e nas tags karpenter.sh/discovery.
Ex.: 30s, 1m, 10m, 1h.
YAML gerado
apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
name: default
spec:
template:
spec:
nodeClassRef:
group: karpenter.k8s.aws
kind: EC2NodeClass
name: default
requirements:
- key: kubernetes.io/arch
operator: In
values: ["amd64", "arm64"]
- key: kubernetes.io/os
operator: In
values: ["linux"]
- key: karpenter.sh/capacity-type
operator: In
values: ["on-demand", "spot"]
- key: karpenter.k8s.aws/instance-category
operator: In
values: ["c", "m", "r"]
- key: karpenter.k8s.aws/instance-generation
operator: Gt
values: ["4"]
expireAfter: 720h
limits:
cpu: "1000"
disruption:
consolidationPolicy: WhenEmptyOrUnderutilized
consolidateAfter: 1m
budgets:
- nodes: "10%"
---
apiVersion: karpenter.k8s.aws/v1
kind: EC2NodeClass
metadata:
name: default
spec:
role: "KarpenterNodeRole-my-cluster"
amiSelectorTerms:
- alias: al2023@latest
subnetSelectorTerms:
- tags:
karpenter.sh/discovery: "my-cluster"
securityGroupSelectorTerms:
- tags:
karpenter.sh/discovery: "my-cluster"
blockDeviceMappings:
- deviceName: /dev/xvda
ebs:
volumeSize: 50Gi
volumeType: gp3
encrypted: true
metadataOptions:
httpTokens: required
httpPutResponseHopLimit: 1
Antes de aplicar
- arm64 (Graviton) exige imagens multi-arch. Confirme que seus containers têm manifesto arm64 antes de liberar.
- O alias @latest atualiza as AMIs sozinho e causa drift. Em produção, fixe uma versão (por exemplo al2023@v20250101) e promova de forma controlada.
O que este YAML assume
- Karpenter v1 (API karpenter.sh/v1 e karpenter.k8s.aws/v1), instalado e funcionando no cluster.
- A role dos nós se chama KarpenterNodeRole-<cluster>, e subnets e security groups têm a tag karpenter.sh/discovery com o nome do cluster. Ajuste se o seu padrão for outro.
- O NodePool e o EC2NodeClass usam o mesmo nome, e os nós exigem IMDSv2 (httpTokens: required) com disco gp3 criptografado.
- Este é um ponto de partida: valide em homologação, com PodDisruptionBudgets e requests de CPU e memória definidos nos workloads.
Quer que eu revise a sua configuração de Karpenter?
Em um diagnóstico eu avalio NodePools, Spot, consolidação e custo real do seu cluster, e entrego um plano priorizado.
Quer aplicar isso no seu ambiente?
Agende uma conversa de 30 minutos sem compromisso. Eu olho o seu cenário e digo por onde começar.
Agendar uma conversa