티스토리 뷰
1. kubeadm을 사용하여 쿠버네티스 클러스터 버전 업그레이드
- 1.27.0 -> 1.28.0 로 업그레이드해야 함
1) 현재 상태 및 업그레이드 가능한 버전 확인
- 현재 상태 확인
kubectl get nodes
NAME STATUS ROLES AGE VERSION
control-plane Ready control-plane 100d v1.27.0
worker-node-1 Ready <none> 100d v1.27.0
worker-node-2 Ready <none> 100d v1.27.0
- 업그레이드 가능 버전확인: 만약 찾는 버전이 없을 경우, vi /etc/apt/sources.list.d 에서 kubernetes 설정 파일을 vim으로 버전 변경해야함
sudo kubeadm upgrade plan
Components that must be upgraded manually after you have upgraded the control plane with 'kubeadm upgrade apply':
COMPONENT CURRENT AVAILABLE
kubelet 1.27.0 1.28.0
Upgrade to the latest version in the v1.28 series:
COMPONENT CURRENT AVAILABLE
kube-apiserver v1.27.0 v1.28.0
kube-controller-manager v1.27.0 v1.28.0
kube-scheduler v1.27.0 v1.28.0
kube-proxy v1.27.0 v1.28.0
CoreDNS v1.10.1 v1.10.2
Etcd 3.5.6 3.5.7
2) 컨트롤 플레인 노드 업그레이드
- kubeadm 업그레이드
sudo apt-mark unhold kubeadm
sudo apt-get update && sudo apt-get install -y kubeadm=1.28.0-00
sudo apt-mark hold kubeadm
- 컨트롤 플레인 업그레이드
sudo kubeadm upgrade apply v1.28.0
[upgrade/success] SUCCESS! Your cluster was upgraded to "v1.28.0". Enjoy!
Components that have been upgraded:
- kube-apiserver: v1.27.0 -> v1.28.0
- kube-controller-manager: v1.27.0 -> v1.28.0
- kube-scheduler: v1.27.0 -> v1.28.0
- kube-proxy: v1.27.0 -> v1.28.0
- CoreDNS: v1.10.1 -> v1.10.2
- Etcd: 3.5.6 -> 3.5.7
- kubelet 및 kubectl 업데이트
sudo apt-mark unhold kubelet kubectl
sudo apt-get install -y kubelet=1.28.0-00 kubectl=1.28.0-00
sudo apt-mark hold kubelet kubectl
# kubelet 서비스 재시작
sudo systemctl daemon-reload
sudo systemctl restart kubelet
3) 워커노드 업그레이드
(1) 워커노드에서 kubeadm 업데이트
- SSH로 해당워커노드로 원격접속한뒤 업데이트를 진행한다.
sudo apt-mark unhold kubeadm
sudo apt-get update && sudo apt-get install -y kubeadm=1.28-00
sudo apt-mark hold kubeadm
(2) 워커노드 업그레이드
- 해당 명령어로 kubelet의 구성파일(/var/lib/kubelet/config.yaml)을 클러스터의 새로운 쿠버네티스 버전에 맞게 업데이트
sudo kubeadm upgrade node
[upgrade] Reading configuration from the cluster...
[upgrade] Upgrading your Static Pod-hosted control plane instance to version "v1.28.0"...
[upgrade/successful] SUCCESS! Node upgrade complete.
(3) kubelet 및 kubectl 업데이트
sudo apt-mark unhold kubelet kubectl
sudo apt-get install -y kubelet=1.28.0-00 kubectl=1.28.0-00
sudo apt-mark hold kubelet kubectl
# kubelet 서비스 재시작
sudo systemctl daemon-reload
sudo systemctl restart kubelet
(4) 결과 확인
- 노드로 버전 확인
##노드 확인
kubectl get nodes
NAME STATUS ROLES AGE VERSION
control-plane Ready control-plane 100d v1.28.0
worker-node-1 Ready <none> 100d v1.28.0
worker-node-2 Ready <none> 100d v1.28.0
- 쿠버네티스 버전 확인
kubectl version --short
Client Version: v1.28.0
Server Version: v1.28.0
'쿠버네티스' 카테고리의 다른 글
CKA 기출개념 정리 ConfigMap과 Secret을 사용하여 어플리케이션 구성 (0) | 2024.12.31 |
---|---|
CKA 기출개념 정리 rollout (0) | 2024.12.31 |
CKA 기출개념 정리 클러스터 설치 (0) | 2024.12.31 |
CKA 기출개념 정리 워커노드 Not ready (0) | 2024.12.31 |
[쿠버네티스] Kubectl JSON 필터링 (0) | 2024.12.20 |