[CKA] kubeadm cluster upgrade

hope·2023년 11월 13일

CKA

목록 보기
7/8
post-thumbnail

참고 문서: kubeadm 클러스터 업그레이드

업그레이드 워크플로우

  1. 기본 control plane 노드 업그레이드
  2. worker 노드 업그레이드

1. Control Plane 노드 업그레이드

a. kubeadm 업그레이드

apt-mark unhold kubeadm && \
apt-get update && apt-get install -y kubeadm='1.27.0-*' && \
apt-mark hold kubeadm
kubeadm version
kubeadm upgrade plan
sudo kubeadm upgrade apply v1.27.0

b. Control Plane 노드 drain

Control Plane 노드의 status가 Ready,SchedulingDisabled로 바뀜

k drain controlplane --ignore-daemonsets 

c. kubelet & kubectl 업그레이드

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

kubelet 재시작

sudo systemctl daemon-reload
sudo systemctl restart kubelet

d. 노드 uncordon

# replace <node-to-uncordon> with the name of your node
kubectl uncordon <node-to-uncordon>

2. Worker 노드 업그레이드

a. kubeadm 업그레이드

# 1.27.x-00의 x를 최신 패치 버전으로 바꾼다
apt-mark unhold kubeadm && \
apt-get update && apt-get install -y kubeadm=1.27.x-00 && \
apt-mark hold kubeadm

b. 로컬 kubelet 업그레이드

sudo kubeadm upgrade node

c. 노드 drain

# <node-to-drain>을 드레인하려는 노드 이름으로 바꾼다.
kubectl drain <node-to-drain> --ignore-daemonsets

d. kubelet & kubectl 업그레이드

# 1.27.x-00의 x를 최신 패치 버전으로 바꾼다
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

e. 노드 uncordon

# <node-to-uncordon>을 노드의 이름으로 바꾼다.
kubectl uncordon <node-to-uncordon>
profile
devops 엔지니어

0개의 댓글