Upgrade Cluster EKS 1.21 p/ 1.22
Tags: aws, devops, cloud, kubernetes
Published: 2023-01-11 17:33:44

**Objetivo: Um passo a passo para atualizar o seu AWS EKS da versão 1.21 para 1.22 utilizando a console da AWS e algumas considerações importantes.**

**Pré-Requisitos**

- Um cluster EKS
- Sempre seguir uma documentação oficial

**Avisos importantes**

- A configuração do cluster é exclusiva para laboratório e testes. 

**Vamos seguir os passos abaixo:**

1. Analisar APIs depreciadas
2. Atualizar Cluster
3. Atualizar Add-ons (Caso exista Addons gerenciados)
4. Atualizar AMI´s
5. Validação 
6. Referências

_Let's go to work!_

**<u>1. Analisar APIs depreciadas</u>**

Conforme a documentação oficial do Kubernetes que pode ser acessada [clicando aqui](https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-22), algumas APIs na versão 1.22 serão descontinuadas. Para resolver esse problema precisamos fazer sua identificação e atualização. 

Para identificar as APIs obsoletas utilizamos o comando `kubent`.
Exemplo da saída do kubent.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eos9nbf8zv2y28l1zoz6.png)

Para mais informações do kubent [clique aqui](https://github.com/doitintl/kube-no-trouble).



Para converter as APIs obsoletas utilizamos o comando `kubectl-convert`, por exemplo:

`kubectl-convert -f <file> --output-version <group>/<version>`

Para mais informações sobre o `kubectl-convert` acesse documentação oficial [nesse link].(https://kubernetes.io/docs/reference/using-api/deprecation-guide/#migrate-to-non-deprecated-apis).

Após converter todas as API´s vamos para o próximo passo. 

**<u>2. Atualizar Cluster</u>**

Para atualização do cluster, acesse a console de gerenciamento da AWS, pesquise pelo serviço AWS EKS, entre no cluster que será atualizado.
Será exibido uma mensagem como a abaixo, clique em **Upgrade Now.**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zpp55e8hkl83m018pkdt.png)

Será exibido a tela que mostra as versões disponíveis para atualização, selecione a versão 1.22 e clique no botão **Upgrade**.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/76qbv1mvn8nqrmo834by.png)

Agora podemos acompanhar a atualização no item Status, conforme o print abaixo.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mwnturmb2pa8ths9mn9i.png)

A atualização leva em torno de 25 minutos.

Após a conclusão podemos ver que em Kubernetes version a versão já está a 1.22 e o Status o cluster está Active.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wji9jnnuqqwrow2863to.png)




**<u>3. Atualizar Add-ons (Caso exista Add-ons gerenciados)</u>**

Dentro do cluster, acesse o menu Add-ons, e clique em um dos 3 abaixo:
**3.1 - Amazon VPC CNI**

Clique um `Update Version` e selecione a versão mais atual disponível e clique em Save Changes.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rsyhqvg4vjfqydbkz0vu.png)

Acompanhe a atualização.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z2d417vgaxyu72hyqzpt.png)

Quando finalizar confirme a versão e se o Add-on está Active.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bzibxcewin5grucl58vb.png)

Para mais detalhes do upgrade deste Add-on e compatibilidade de versão acesse o link oficial clicando [aqui](https://docs.aws.amazon.com/eks/latest/userguide/managing-vpc-cni.html).

Repita os mesmos passos nos Add-ons 3.2 e 3.3.

**3.2 - CoreDNS**

Para mais detalhes do upgrade deste Add-on e compatibilidade de versão acesse o link oficial clicando [aqui](https://docs.aws.amazon.com/eks/latest/userguide/managing-coredns.html).

**3.3 - Kube-Proxy**

Para mais detalhes do upgrade deste Add-on e compatibilidade de versão acesse o link oficial clicando [aqui](https://docs.aws.amazon.com/eks/latest/userguide/managing-kube-proxy.html).

Para saber mais sobre os Add-ons, procure no item 6 o tema Amazon EKS add-ons. 

Para saber mais sobre como confirmar qual versão está disponível, procure no item 6 o tema Managing Amazon EKS add-ons.

**<u>4. Atualizar AMI´s</u>**

Acesse o cluster, menu `Compute`, `Node Groups` e localize o `Node Group` que será atualizado.
Em `AMI release version`, confirme a AMI que está e clique em Update Now.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zvlfrzvy2op1lckiywxn.png)

Selecione o tipo de estratégia de de upgrade, e clique em Update.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7ewi96ctwb5lzk7hz31f.png)

Acompanhamos o update pelo Status no Node Group.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1d9r47wypviv066ohp9x.png)

Após finalizar a atualização, confirme se a versão da AMI está com a mesma versão do cluster e se o Status está Active.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/urtb1h7oyp6e6y0k0tut.png)



Para mais informações sobre AMI, consulte no item 6 o tema Amazon EKS optimized Amazon Linux AMI versions. 

**<u>5. Validação</u>**

**5.1 Validar Cluster**
Para validar a versão selecione o cluster e consulte em `Cluster Info` o `Kubernetes version` e o `Status`. 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t3sk1eshtt719qdummre.png)



**5.2 Validar AMI**

Confirme se a versão da AMI está com a mesma versão do cluster e se o Status está Active.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/urtb1h7oyp6e6y0k0tut.png)


**5.3 Validar Add-ons**

Confirme de todos os 3 add-ons estão na versão compativel conforme documentação e com o Status Active.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x3o96vw9mfcg8gbxs8ek.png)

**<u>6. Referências</u>**

- [Atualizar uma versão do Kubernetes do cluster do Amazon EKS](https://docs.aws.amazon.com/pt_br/eks/latest/userguide/update-cluster.html)
- [Deprecated API Migration Guide](https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-22) 
- [Amazon EKS add-ons](https://docs.aws.amazon.com/eks/latest/userguide/eks-add-ons.html)
- [Managing Amazon EKS add-ons](https://docs.aws.amazon.com/eks/latest/userguide/managing-add-ons.html)
- [Amazon EKS optimized Amazon Linux AMI versions
](https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html)