Conqrean security blog

Kubernetes(kubeadm) 클러스터 업그레이드 (master, worker) 본문

개인자료/Kubernetes(K8s)

Kubernetes(kubeadm) 클러스터 업그레이드 (master, worker)

dataFER 2024. 1. 26. 17:17

선행작업
1) 아래 명령어로 plan을 확인한다.
최신 버전, 현재버전, 업그레이드 가능 버전을 체크하는게 중요!
버전은 한 단계씩 업그레이드가 가능함

kubeadm upgrade plan

2) 업그레이드 버전명 체크
업그레이드할 k8s 버전을 확인한다. (1.27.0-00 으로 진행)

apt-get update
apt-cache madison kubeadm

3) 업그레이드 대상 노드를 drain 한다.
모든 업그레이드 과정 진행 전 수행해야 함!

kubectl drain (node-name) --ignore-daemonsets

1. master node upgrade 

apt-mark unhold kubeadm && \
 apt-get update && apt-get install -y kubeadm='1.27.0-00' && \
 apt-mark hold kubeadm

sudo kubeadm upgrade apply 1.27.0

apt-mark unhold kubelet kubectl && \
apt-get update && apt-get install -y kubelet='1.27.0-00' kubectl='1.27.0-00' && \
apt-mark hold kubelet kubectl

sudo systemctl daemon-reload
sudo systemctl restart kubelet



2. worker node upgrade

ssh (node-name or ip) //해당노드 접근
apt-mark unhold kubeadm && \
 apt-get update && apt-get install -y kubeadm='1.27.0-00' && \
 apt-mark hold kubeadm

sudo kubeadm upgrade node

apt-mark unhold kubelet kubectl && \
apt-get update && apt-get install -y kubelet='1.27.0-00' kubectl='1.27.0-00' && \
apt-mark hold kubelet kubectl

systemctl daemon-reload
systemctl restart kubelet

kubectl get nodes명령어로 k8s 업그레이드된 버전을 확인하면
아래 명령어를 통해 drain했던 node를 다시 schedule 상태로 변경

kubectl uncordon <node-name>