cks

3.19 Atualizar Kubernetes (kubeadm)

Detalhamento do processo de upgrade de cluster com kubeadm para o CKS.

O que é

A atualização de um cluster kubeadm segue uma ordem definida: primeiro o control plane (primeiro nó de controle), depois os demais nós de controle (se houver) e por fim os workers. Em cada nó é preciso: drenar o nó, atualizar kubeadm/kubelet/kubectl (ou só kubelet nos workers), aplicar o upgrade quando for o primeiro control plane, e fazer uncordon.

Documentação oficial

Control plane (primeiro nó)

# 1. Drenar o nó (evita novos pods; remove workloads evictáveis)
kubectl drain <control-plane-node> --ignore-daemonsets

# 2. Planejar e aplicar upgrade (no nó de controle)
sudo kubeadm upgrade plan
sudo kubeadm upgrade apply v1.32.1

# 3. Atualizar kubelet e kubectl (versão alinhada ao plano)
sudo apt install kubelet=1.32.1-1.1 kubectl=1.32.1-1.1
sudo apt-mark hold kubelet kubectl

# 4. Reiniciar kubelet
sudo systemctl restart kubelet

# 5. Repermitir agendamento no nó
kubectl uncordon <control-plane-node>

Worker

# 1. Drenar (a partir de um nó com kubectl configurado)
kubectl drain <worker-node> --ignore-daemonsets

# 2. No próprio worker: atualizar kubeadm (se necessário) e kubelet
sudo apt install kubeadm=1.32.1-1.1 kubelet=1.32.1-1.1 kubectl=1.32.1-1.1
# ou só kubelet/kubectl se kubeadm já estiver na versão desejada
sudo kubeadm upgrade node   # aplica configuração do cluster no nó

# 3. Segurar upgrades automáticos
sudo apt-mark hold kubelet kubectl kubeadm

# 4. Reiniciar kubelet
sudo systemctl restart kubelet

# 5. Uncordon (a partir de um nó com kubectl)
kubectl uncordon <worker-node>

A ordem correta (control plane primeiro, depois workers) e os comandos exatos podem variar conforme a versão; consulte a documentação do kubeadm para a versão alvo.

Resumo para o exame