본문 바로가기
INFRA/Operation

쿠버네티스 이론 STEP10 Cluster Upgrade

by BTC_주먹쥐고 일어서 2022. 9. 16.

출처: 유데미

i

kubernetes는 각 컴포넌트마다 서로 다른 버전을 가지고 있을 수 있습니다.

이로 인해 각 컴포넌트마다 업데이트가 가능한데 Kubernetes 서포트는 최신 3개의 버전에만 가능하기 때문에 버전을 빠르게 업그레이드 하는 것이 필요합니다. 

 

또한 v1.10 > v1.11 > v1.12 로 차례로 올리는 것이 좋은 방법입니다. 

 

 

 


Cluster Upgrade 순서

1. 기본 컨트롤 플레인 노드 업그레이드

2. 추가 컨트롤 플레인 노드 업그레이드

3. 워커 노드 업그레이드

 

필수 조건
1. 모든 노드가 Ready 상태여야 함
2. swap 비활성화
3. (필요 시) 클러스터 백업 - kubeadm upgrade
4. Node draining 필요

 

 

 

 

1. ControlPlane Upgrade

     업그레이드 순서 : kubeadm → kublet →  kubectl 

1. kubeadm upgrade 

yum install -u kubeadm-<version>-0 --sidableexcludes=kubernetes

<업그레이드할 버전>을 선택하고 업그레이드 

Nothing to do가 뜬다면  yum remove로 삭제하고 다시 진행 

2. Upgrade plan 확인

kubeadm upgrade plan

3. Upgrade

kubeadm upgrade apply v<업그레이드 버전>

success문구가 뜬다면 업그레이드 성공

 

4. 노드 Drain

kubectl drain <node-to-drain> --ignore-daemonsets
kubectl get nodes

5. kubelet과 kubectl 업그레이드 

yum install -y kublet-<version>-0 kubectl-<version>-0 --disableexcludes=kubernetes

#kubelet 재시작
sudo systemctl daemon-reload
sudo systemctl restart kubelet

6.  노드 Uncordon

kubectl uncordon hk8s-m
kubectl get nodes

2.  Worker Node Upgrade

1. kubeadm upgrade 

2. 로컬 kublet 구성 업그레이드 

3. 노드 drain 

 

 4. kubelet, kubectl 업그레이드 

yum install -y kublet-<version>-0 kubectl-<version>-0 --disableexcludes=kubernetes

#kubelet 재시작
sudo systemctl daemon-reload
sudo systemctl restart kubelet

5. Worker 노드 Online 상태로 변환 

kubectl uncordon <node-to-drain>

3.  Cluster Upgrade 확인 

kubectl get nodes

모든 노드가 Ready상태로 올라오면 업그레이드 완료 

댓글