Atualizar um grupo de nós gerenciados para seu cluster - Amazon EKS

Atualizar um grupo de nós gerenciados para seu cluster

Quando você inicia uma atualização de grupo de nós gerenciados, o Amazon EKS atualiza automaticamente os nós para você, concluindo as etapas listadas em Entenda cada fase das atualizações de nós. Se você estiver usando uma AMI otimizada do Amazon EKS, o Amazon EKS aplica automaticamente os patches de segurança mais recentes e as atualizações do sistema operacional aos nós como parte da versão mais recente da AMI.

Existem vários cenários nos quais é útil atualizar a versão ou a configuração do grupo de nós gerenciados do Amazon EKS:

  • Você atualizou a versão do Kubernetes para seu cluster do Amazon EKS e quer atualizar os nós para usar a mesma versão do Kubernetes.

  • Uma nova versão da AMI está disponível para o grupo de nós gerenciados. Para obter mais informações sobre as versões da AMI, consulte estas seções:

  • Você deseja ajustar a contagem mínima, máxima ou desejada das instâncias no seu grupo de nós gerenciados.

  • Você deseja adicionar ou remover os rótulos do Kubernetes das instâncias no seu grupo de nós gerenciados.

  • Você deseja adicionar ou remover as tags da AWS do seu grupo de nós gerenciados.

  • Você precisa implantar uma nova versão de um modelo de execução com alterações de configuração, como uma AMI personalizada atualizada.

  • Você implantou a versão 1.9.0 ou superior do complemento Amazon VPC CNI, habilitou o complemento para delegação de prefixos e deseja ter novas Instâncias do AWSNitro System em um grupo de nós para compatibilidade com um número significativamente maior de Pods. Para ter mais informações, consulte Atribuir mais endereços IP aos nós do Amazon EKS com prefixos.

  • Você habilitou a delegação de prefixo IP para nós do Windows e deseja que novas instâncias do AWS Nitro System em um grupo de nós ofereçam suporte a um número significativamente maior de Pods. Para ter mais informações, consulte Atribuir mais endereços IP aos nós do Amazon EKS com prefixos.

Se houver uma versão mais recente da AMI para a versão Kubernetes do seu grupo de nós gerenciados, você poderá atualizar a versão do grupo de nós para usar a versão mais recente da AMI. Da mesma forma, se o cluster estiver executando uma versão mais recente do Kubernetes do que o grupo de nós, você poderá atualizar o grupo de nós para usar a versão mais recente da AMI correspondente à versão do Kubernetes do cluster.

Quando um nó em um grupo de nós gerenciados é encerrado devido a uma operação de escalabilidade ou atualização, os Pods nesse nó são antes drenados. Para ter mais informações, consulte Entenda cada fase das atualizações de nós.

Atualizar uma versão do grupo de nós

Você pode atualizar a versão de um grupo de nós com uma das seguintes opções:

A versão para a qual você atualiza não pode ser superior à versão do ambiente de gerenciamento.

eksctl

Atualizar um grupo de nós gerenciados usando o eksctl

Atualize um grupo de nós gerenciados para a versão mais recente da AMI da mesma versão do Kubernetes atualmente implantada nos nós com o comando a seguir. Substitua cada valor de exemplo por seus próprios valores.

eksctl upgrade nodegroup \ --name=node-group-name \ --cluster=my-cluster \ --region=region-code
nota

Se você estiver atualizando um grupo de nós implantado com um modelo de execução para uma nova versão do modelo de execução, adicione o --launch-template-version version-number ao comando anterior. O modelo de inicialização deve atender aos requisitos descritos em Personalizar nós gerenciados com modelos de inicialização. Se o modelo de inicialização incluir uma AMI personalizada, a AMI deverá atender aos requisitos em Especificando uma AMI. Quando você atualiza o grupo de nós para uma versão mais recente do modelo de execução, todos os nós são reciclados para corresponder à nova configuração da versão do modelo de execução especificado.

Não é possível atualizar diretamente um grupo de nós implantado sem um modelo de execução para uma nova versão do modelo de execução. Em vez disso, você deve implantar um novo grupo de nós usando o modelo de execução para atualizar o grupo de nós para uma nova versão de modelo de execução.

Você pode atualizar um grupo de nós para a mesma versão que a versão do Kubernetes do ambiente de gerenciamento. Por exemplo, se tiver um cluster executando o Kubernetes 1.29, você poderá atualizar os nós que estão executando o Kubernetes 1.28 para a versão 1.29 com o comando a seguir.

eksctl upgrade nodegroup \ --name=node-group-name \ --cluster=my-cluster \ --region=region-code \ --kubernetes-version=1.29

AWS Management Console

Atualizar um grupo de nós gerenciados usando o AWS Management Console

  1. Abra o console do Amazon EKS.

  2. Escolha o cluster que contém o grupo de nós a ser atualizado.

  3. Se pelo menos um grupo de nós tiver uma atualização disponível, uma caixa será exibida na parte superior da página notificando você sobre a atualização disponível. Se você selecionar a guia Compute (Computação), verá a opção Update now (Atualizar agora) na coluna AMI release version (Versão de AMI) na tabela Node Groups (Grupos de nós) para o grupo de nós que tem atualizações disponíveis. Para atualizar o grupo de nós, selecione Update now (Atualizar agora).

    Você não verá uma notificação para grupos de nós que foram implantados com uma AMI personalizada. Se os nós forem implantados com uma AMI personalizada, conclua as etapas a seguir para implantar uma nova AMI personalizada atualizada.

    1. Crie uma nova versão da AMI.

    2. Crie uma nova versão do modelo de execução com o novo ID da AMI.

    3. Atualize os nós para a nova versão do modelo de execução.

  4. Na caixa de diálogo Update node group version (Atualizar versão do grupo de nós), ative ou desative as seguintes opções:

    • Update Node Group version (Atualizar versão do grupo de nós): essa opção não estará disponível se você tiver implantado uma AMI personalizada ou se a AMI otimizada do Amazon EKS estiver atualmente na versão mais recente do cluster.

    • Change launch template version (Alterar versão do modelo de inicialização): essa opção não estará disponível se o grupo de nós for implantado sem um modelo de inicialização personalizado. Você só pode atualizar a versão do modelo de execução para um grupo de nós que tenha sido implantado com um modelo de execução personalizado. Selecione a Launch template version (Versão do modelo de inicialização) para a qual você deseja atualizar o grupo de nós. Se o grupo de nós estiver configurado com uma AMI personalizada, a versão selecionada também deverá especificar uma AMI. Quando você atualiza para uma versão mais recente do modelo de execução, todos os nós são reciclados para corresponder à nova configuração da versão do modelo de execução especificada.

  5. Em Update strategy (Estratégia de atualização), selecione uma das seguintes opções:

    • Rolling update (Atualização contínua): essa opção respeita os orçamentos de interrupções de Pod no cluster. As atualizações falharão se houver um problema de orçamento de interrupção de Pod que impeça que o Amazon EKS drene corretamente os Pods que estão em execução no grupo de nós.

    • Forçar atualização: essa opção não respeita os orçamentos de interrupção de Pod. As atualizações ocorrem a despeito dos problemas de orçamento de interrupção de Pod, forçando a reinicialização do nó.

  6. Selecione Atualizar.

Editar uma configuração do grupo de nós

Você pode modificar algumas configurações de um grupo de nós gerenciados.

  1. Abra o console do Amazon EKS.

  2. Escolha o cluster que contém o grupo de nós a ser editado.

  3. Selecione a guia Compute (Computação).

  4. Selecione o grupo de nós a ser editado e escolha Edit (Editar).

  5. (Opcional) Na página Edit node group (Editar grupo de nós) faça o seguinte:

    1. Edite a configuração de escalonamento do grupo de nós.

      • Tamanho desejado – Especifique o número atual de nós que o grupo de nós gerenciados deve manter.

      • Tamanho mínimo – Especifique o número mínimo de nós para o qual o grupo de nós gerenciados pode ser reduzido.

      • Tamanho máximo – Especifique o número máximo de nós para o qual o grupo de nós gerenciados pode ser expandido. Para obter o número máximo de nós permitidos em um grupo de nós, consulte Visualizar e gerenciar as cotas de serviço do Amazon EKS e do Fargate.

    2. (Opcional) Adicione ou remova rótulos do Kubernetes dos nós do grupo de nós. Os rótulos mostrados aqui são apenas aqueles que você aplicou com o Amazon EKS. Outros rótulos que não são exibidos aqui podem existir nos nós.

    3. (Opcional) Adicione ou remova taints do Kubernetes dos nós do grupo de nós. As taints adicionadas podem ter o efeito de NoSchedule , NoExecute ou PreferNoSchedule . Para ter mais informações, consulte Evitar que Pods seja agendado em nós específicos.

    4. (Opcional) Adicione ou remova tags do recurso de grupo de nós. Essas etiquetas são aplicadas somente ao grupo de nós do Amazon EKS. Não são propagadas em outros recursos como sub-redes ou instâncias do Amazon EC2 no grupo de nós.

    5. (Opcional) Edite a configuração da atualização do grupo de nós. Selecione o número ou a porcentagem.

      • Number (Número): selecione e especifique o número de nós em seu grupo de nós que podem ser atualizados em paralelo. Esses nós estarão indisponíveis durante a atualização.

      • Percentage (Porcentagem): selecione e especifique a porcentagem de nós em seu grupo de nós que podem ser atualizados em paralelo. Esses nós estarão indisponíveis durante a atualização. Isso será útil se houver muitos nós em seu grupo de nós.

    6. Quando terminar de editar, escolha Salvar alterações.

Importante

Ao atualizar a configuração do grupo de nós, a modificação de NodegroupScalingConfig não respeita os orçamentos de interrupção (PDBs) de Pod. Ao contrário do processo de atualização do grupo de nós (que drena os nós e respeita os PDBs durante a fase de upgrade), a atualização da configuração de dimensionamento faz com que os nós sejam encerrados imediatamente por meio de uma chamada de redução de escala do Auto Scaling Group (ASG). Isso acontece sem considerar os PDBs, independentemente do tamanho para o qual você está reduzindo a escala. Isso significa que, quando você reduz o desiredSize de um grupo de nós gerenciados pelo Amazon EKS, Pods são despejados assim que os nós são encerrados, sem honrar nenhum PDB.