詳細検索

Use-o Kubernetes como um profissional — sem a experiência! Apresentando o EKS Auto Mod

Avatar
por Jatin Mehrotra

Use-o Kubernetes como um profissional — sem a experiência! Apresentando o EKS Auto Mod
Traduzido do English • Ver original

O AWS re:Invent ainda não começou oficialmente, mas há um novo recurso revolucionário no EKS para fazer você rodar o Kubernetes como um profissional!!

*Neste blog, vamos investigar o que é o EKS Auto Mode e ilustrar como ativar o EKS Auto Mode em clusters existentes e tentar migrar para as cargas de trabalho do nosso grupo de nós gerenciados para o EKS auto mode de um cluster existente, mas não conseguiremos fazer isso, descubra o motivo no blog! *

*Também analisei o preço que você pagará pelo EKS Auto em comparação com a simplicidade das operações que ele oferece para ajudar você a tomar uma decisão informada se deve ativar ou não. *

Criei um repositório de terraform para reproduzir rapidamente este blog com apenas 2 comandos, vamos conquistar o Modo Automático do EKS.

Motivação

2 de dezembro de 2024 (JST) – Pouco antes do re:Invent 2024, a AWS lançou um atualização empolgante *apresentando o EKS Auto Mode. *

O que essa atualização significa para você?

  • Automatiza todos os tipos de gerenciamento para seu cluster EKS , o que permite que a AWS também configure e gerencie a infraestrutura que facilita o funcionamento suave das suas cargas de trabalho.
  • A infraestrutura de cluster gerenciada pela AWS inclui muitas capacidades do Kubernetes como componentes centrais, ao contrário de add-ons, como autoescalonamento de computação, pod e rede de serviços, balanceamento de carga de aplicações, DNS de cluster, armazenamento em blocos e suporte a GPU
  • Você pode implantar um novo cluster EKS Auto Mode ou ativar o EKS Auto Mode em um cluster existente

Nota: O suporte ao Terraform (ainda em andamento) ainda não está lá, então para este blog vamos usar o console da AWS.

Considerações de custo desta atualização

  • Segundo https://aws.amazon.com/eks/pricing/
  • Você continuará pagando por 2 componentes :
    • Preço do cluster Amazon EKS: *$0,10 por cluster/hora *($0,60/cluster para estendido)
    • Mas se você usar o modo automático, terá que pagar a mais!!

Você paga pelo Amazon EKS Auto Mode com base na duração e tipo das instâncias Amazon EC2 lançadas e gerenciadas pelo EKS Auto Mode. Os preços do Amazon EKS Auto Mode abaixo são adicionais ao preço da instância Amazon EC2, que cobre as próprias instâncias EC2.

*Em palavras simples, o EKS Auto Mode cobra uma taxa de gerenciamento que varia conforme o tipo de instância EC2 lançada, além dos custos regulares da sua instância EC2. *

O que ele realmente automatiza

O modo automático EKS foi projetado para automatizar componentes do plano de dados, então aqui estão os seguintes componentes sendo automatizados junto com os recursos:

Componentes Automáticos do Plano de Dados no Modo Automático EKS

  • Gerenciamento de Computação: Automatiza aspectos-chave da computação em cluster, incluindo provisionamento de nós, escalabilidade, atualizações e balanceamento de carga, para operações Kubernetes sem complicações.
    • Nós:
      • Seleciona automaticamente AMIs otimizadas com serviços essenciais.
      • Protege os nós usando SELinux, arquivos raiz somente leitura e acesso proibido por SSH/SSM.
      • Inclui suporte a GPUs para NVIDIA e Neuron.
    • Escalonamento Automático:
      • Usa o Karpenter para monitorar e implantar novos nós para Pods não escalonáveis.
      • Termina dinamicamente nós não utilizados para otimizar recursos.
  • Melhorias:
    • Aplica atualizações do sistema operacional e dos componentes com interrupção mínima da carga de trabalho.
    • Aplica uma vida útil máxima de 21 dias dos nós para segurança e estabilidade.
  • Balanceamento de carga:
    • Integra-se com Elastic Load Balancing (ALB & NLB) para provisionamento e escalonamento automatizados.
    • Fornece balanceamento de carga pronto para produção, alinhado com as melhores práticas da AWS.
  • Automação de Armazenamento
    • Configura armazenamento efêmero com configurações de volume, criptografia e políticas de exclusão gerenciadas automaticamente para uso ideal.
  • Automação de Rede
    • Gerencia a conectividade Pod e de serviços com suporte a IPv4/IPv6 e estende os espaços IP usando blocos CIDR secundários.

Ativando o modo automático no Cluster Existente

Migrações Apoiadas

Nota: Também lembre-se de dar uma olhada em como configurar recursos baseados em Kubernetes para serem propriedade de controladores autogerenciados ou do EKS Auto Mode.

Pré-requisitos

  • Atualização de permissões IAM e configuração das configurações principais do Modo Automático EKS
  • Versão mínima obrigatória de certos Add-ons Perspective do Amazon EKS.

Atualizando permissões IAM e configurando as configurações principais do Modo Automático EKS

  • O papel IAM do cluster de um cluster EKS não pode ser alterado após a criação do cluster. O Modo Automático EKS requer permissões adicionais nesse papel. Você deve anexar políticas adicionais ao papel atual.

  • Navegar para o papel IAM do Cluster e adicionar as seguintes políticas
    • AmazonEKSComputePolicy
    • AmazonEKSBlockStoragePolicy
    • Política de Equilíbrio da AmazonEKSLoadBalancing
    • AmazonEKSNetworkingPolicy
    • AmazonEKSClusterPolicy (já existe para mim)

  • Editar a Política de Trust e adicionar 'sts:TagSession' para permitir Ação.

Versão mínima obrigatória de certos complementos do Amazon EKS

Perspectiva.

Crie um Pool de Nós Karpenter

  • EKS usa Karpenter nos bastidores para escalonamento.

Karpenter, uma ferramenta de provisionamento de nós que ajuda a otimizar a escalabilidade do cluster e a utilização de recursos. Com o recurso NodePool do Karpenter, você pode definir requisitos específicos para seus recursos de computação, incluindo tipos de instância, zonas de disponibilidade, arquiteturas e tipos de capacidade.

  • Selecionar Criar papéis recomendados para o papel IAM do Nó
  • Estou usando o pool de nós pré-configurado, mas você pode configurar o seu próprio usando seu próprio arquivo yaml como este exemplo

  • Selecione permissões padrão e crie função

  • Depois que a função é criada e você seleciona o próximo, você pode ver notificações de que o modo automático está sendo ativado

  • Uma vez ativada, você pode confirmar a opção do modo automático usando a aba 'Overview' no console

  • Como ativado durante a ativação do passo, o EKS também criou pools de nós.

Desabilitar o EKS Auto Modę

Você pode desativar o Modo Automático do EKS em um Cluster EKS existente. Essa é uma operação destrutiva.

  • O EKS encerrará todas as instâncias EC2 operadas pelo Modo Automático EKS.
  • O EKS irá excluir todos os balanceadores de carga operados pelo Modo Automático EKS.

Migrar dos Grupos de Nós Gerenciados EKS para o Modo Automático EKS

Ao migrar seu cluster Amazon EKS para o modo automático EKS, você pode migrar suavemente suas cargas de trabalho existentes a partir de grupos de nós gerenciados usando a ferramenta LI EKSCTL.

Esse processo garante disponibilidade contínua das aplicações, enquanto o modo automático EKS otimiza seus recursos de computação. A migração pode ser realizada com mínima interrupção nas suas aplicações em execução.

Pré-requisitos

  • Cluster com o Modo Automático EKS ativado
  • EKSCTL CLI instalado e conectado ao seu cluster. Para mais informações, veja Configurar para usar Amazon EKS.
  • Karpenter não está instalado no cluster.

Estado atual dos Pods

  • 2 pods estão rodando em grupos de nós gerenciados.
jatin.mehrotra@CK0662-001 eks-auto-mode % kubectl get po -o wide
NOME STATUS DE PRONTO REINICIA IDADE IP NÓ NOMEADO PORTAS DE PRONTIDÃO DO NÓ
test-65b7dbddd4-jdxhw 1/1 Rodando 0 2m29s 10.0.2.52 ip-10-0-2-85.ec2.internal    <none>           <none>
test-65b7dbddd4-lzd4r 1/1 Rodando 0 2m29s 10.0.1.118 ip-10-0-1-128.ec2.internal   <none>           <none>

  • Conforme o docs, Use o seguinte comando CLI EKSCTL para iniciar pods de drenagem a partir das instâncias existentes do grupo de nós gerenciados. O Modo Automático EKS criará novos nós para apoiar os pods deslocados.
Atualização EKSCTL Auto-Modo-Configuração --Cluster EKS-Auto-Teste --Drenogrupo-NodeGroup --Região US-East-1 --Perfil CK-Test

oficial de eksctl

  • Minha saída da versão EKSCTL (é a versão mais recente)
Informações EKSCTL
Versão EKSCTL: 0.194.0
  • Os outros comandos para eksctl estão rodando para meu cluster, então definitivamente não é problema de conexão
jatin.mehrotra@CK0662-001 eks-auto-mode % eksctl obter addons --cluster eks-auto-test --região us-east-1 --perfil ck-test
2024-12-02 12:29:41 [i] Versão Kubernetes "1.30" em uso pelo cluster "eks-auto-test" 
2024-12-02 12:29:41 [i] recebendo todos os addons
2024-12-02 12:29:44 [i] Para ver problemas em um addon execute 'eksctl get addon --name <addon-name> --cluster <cluster-name>'
NOME VERSÃO QUESTÃO DE STATUS DE PAPEL IAMROLE ATUALIZAÇÃO DISPONIBILIDADE VALORES DE CONFIGURAÇÃO POD IDENTIDADE ASSOCIAÇÃO PAPÉIS
amazon-cloudwatch-observability v2.5.0-EKSBUILD.1 ATIVO 0
aws-ebs-csi-driver v1.37.0-eksbuild.1 ATIVO 0
coredns v1.11.1-eksbuild.8 ATIVO 0 v1.11.3-eksbuild.2,v1.11.3-eksbuild.1,v1.11.1-eksbuild.13,v1.11.1-eksbuild.11,v1.11.1-eksbuild.9
kube-proxy v1.30.6-eksbuild.3 ATIVO 0
vpc-cni v1.19.0-EKSBUILD.1 ATIVO 0

Atualização: 3 de dezembro, 00h20 JST

  • Embora a equipe da AWS tenha lançado uma nova versão do eksctl, o problema ainda persiste, assim como a documentação também está incorreta.

Ele precisa de '--drain-all-nodegroups' assim como do arquivo de configuração do cluster, que é muito difícil de gerar para o cluster existente criado pelo console ou terraform.

eksctl update auto-mode-config --drain-all-nodegroups -f eks-config.yaml --profile ck-test

Precisamos esperar mais para que a AWS possa corrigir esse bug. Há um novo problema para esse bug.

Investigando a Atualização da Versão Kubernetes de um cluster de Modos Automáticos do EKS

  • A capacidade de processamento do Amazon EKS Auto Mode controla a versão Kubernetes dos nós. Após atualizar o plano de controle, o EKS Auto Mode começará a atualizar incrementalmente os nós gerenciados. O EKS Auto Mode respeita os orçamentos de interrupção de pods.
  • Você não precisa atualizar manualmente as capacidades do Amazon EKS Auto Mode, incluindo as capacidades de computação automática, armazenamento em blocos e balanceamento de carga.
  • O Modo Automático simplifica o processo de atualização de versão ao coordenar as atualizações do plano de controle com substituições de nós, mantendo a disponibilidade da carga de trabalho por meio de orçamentos de interrupção de pods.
  • Ao atualizar um cluster de Modo Auto, muitos componentes que tradicionalmente exigiam atualizações manuais agora são gerenciados como parte do serviço.
  • Após iniciar uma atualização do plano de controle, o Modo Automático EKS começa a substituir os nós do seu cluster. Os novos nós possuem a versão correspondente do Kubernetes. O Modo Automático EKS observa os orçamentos de interrupção dos pods ao atualizar nós.
    • CoreDNS
    • KubeProxy
    • Controlador AWS Load Balancer
    • Karpenter
    • Driver AWS EBS CSI
  • No entanto, você ainda é responsável por atualizar:
    • Aplicativos e cargas de trabalho implantados no seu cluster
    • Add-ons e controladores autogerenciados
    • Complementos Amazon EKS

Da perspectiva do Arquiteto de Soluções

  • Neste blog vimos como o modo EKS Auto simplifica as operações do Kubernetes ao transferir o gerenciamento de infraestrutura para a AWS.
  • Seleciona automaticamente as melhores instâncias de EC2, otimiza custos de computação e escala os recursos dinamicamente com base na demanda.
  • Esse recurso melhora a segurança, o desempenho e a disponibilidade, ao mesmo tempo em que reduz a necessidade de expertise profunda, planejamento de capacidade e gerenciamento manual.
  • Mas, como vimos no blog, ainda é um recurso novo, pode haver necessidade de atualizações e correções de bugs.
  • *Sim, é verdade que simplifica as operações e permite que os usuários rodem o Kubernetes como um PRO de forma segura, mas você tem que pagar um preço por isso. *

*Inicialmente, acho que isso aumentará o custo, mas os benefícios reais apareceriam após um uso sustentado para compensar o custo extra com facilidade de operação. *

Related Articles