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.

Arquitetura
Tipo de capacidade
Categorias de instância

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