Atualizando clusters EKS Link to heading
Pré-atualização Link to heading
- Instale o utilitário
eksctlutilizado na atualização dos clusters; - Obtenha a credencial de acesso para um usuário no IAM da AWS, a credencial possui uma
Access Keye umaSecret Key;export AWS_ACCESS_KEY_ID=<access_key> export AWS_SECRET_ACCESS_KEY=<secret_access_key> export AWS_DEFAULT_REGION=<default_region> - Instale o
Pluto CLIpara analisar a API do Kubernetes;## Obtém um relatório completo do cluster, incluindo helm charts pluto detect-all-in-cluster -o wide 2>/dev/null > pluto-output.txt ## Obtém um relatório apenas sobre os helm charts instalados pluto detect-helm -o wide 2>/dev/null > pluto-output.txt
Obs.: Após a obtenção do relatório, é interessante realizar uma nova verificação nos recursos listados para confirmar que o
kindutilizado no YAML é o mesmo que está presente na colunaREPLACEMENTdo relatório. Caso não esteja, será necessária intervenção direta, atualizando o yaml em si ou o helm chart.
- Verifique a versão do EKS (Control Planes) no cluster usando o console da AWS:
Figura 01: AWS Console - Destaque para a versão do Kubernetes no Control Plane
- Verifique quais os
nodes groupsexistentes e suas respectivas versões. Caso a versão dos workers seja diferente dos control planes, será necessário atualizá-los para que fiquem em paridade de versões do kubernetes antes de prosseguir com a atualização de fato.
Obs.: É possÃvel que a versão do kubernetes sendo executada nos nodes control plane/API server seja diferente da versão sendo executada nos workers/nodegroups. Esse conceito é chamado de “version skew”
Figura 02: AWS Console - Destaque para a versão dos nodegroups
Atualizando a API do Kubernetes Link to heading
- Execute no terminal
eksctl upgrade cluster \
--name <CLUSTER_NAME> \
--version <AIMED_KUBERNETES_VERSION> \
--approve
Atualizando os nodegroups Link to heading
- Execute no terminal:
eksctl upgrade nodegroup <NODEGROUP_NAME> \
--cluster <CLUSTER_NAME> \
--kubernetes-version <AIMED_KUBERNETES_VERSION>
- Execute o comando acima uma vez para cada nodegroup e versão que se deseja atualizar. Ex.: 4 nodegroups e atualização de 1.25 -> 1.27 demandará oito execuções do comando.
Obs.: Caso a versão do node group esteja mais de uma versão atrás da versão do kubernetes (Ex.: Kubernetes na 1.27 e NodeGroup na 1.25), é necessário atualizar os node groups primeiro e em seguida a API.
Fluxo correto: 1.25 -> 1.26 -> 1.27 Fluxo incorreto: 1.25 -> 1.27
O mesmo vale para atualizações da versão do kubernetes API
- Acompanhe a atualização por meio dos logs no terminal e na GUI, se disponÃvel. Durante o processo será possÃvel ver os nodes com a versão antiga caindo e nodes com a versão nova subindo. Após isso, verifique se as aplicações que estavam executando antes do processo subiram corretamente e estão em pleno funcionamento.

