Certified Kubernetes Administration - 41
2024-06-22
- Kubernetes
- Cloud
쿠버네티스 클러스터 업그레이드 프로세스
-
컴포넌트 버전
-
모든 컴포넌트가 동일한 버전을 가질 필요는 없음.
-
kube-apiserver는 제어 플레인의 주요 컴포넌트로, 다른 컴포넌트는 이와 통신함.
-
controller-manager와 scheduler는 kube-apiserver 버전보다 한 버전 낮을 수 있음.
-
kubelet과 kube-proxy는 두 버전 낮을 수 있음.
-
kubectl은 kube-apiserver 버전보다 한 버전 높거나, 동일하거나, 한 버전 낮을 수 있음.
-
-
업그레이드 시기
-
쿠버네티스는 최근 세 개의 마이너 버전만 지원.
-
최신 버전이 1.13인 경우, 1.13, 1.12, 1.11을 지원.
-
1.13이 릴리스되기 전에 클러스터를 다음 릴리스로 업그레이드하는 것이 좋음.
-
-
업그레이드 방법
-
한 번에 한 마이너 버전씩 업그레이드 권장.
-
1.10에서 1.13으로 직접 업그레이드하지 말고, 1.10 -> 1.11 -> 1.12 -> 1.13 순으로 업그레이드.
-
-
업그레이드 절차
-
마스터 노드 업그레이드
-
마스터 노드를 업그레이드할 때 제어 플레인 컴포넌트(API 서버, 스케줄러, 컨트롤러 매니저)가 일시적으로 다운됨.
-
마스터가 다운되어도 워커 노드와 클러스터의 애플리케이션은 정상적으로 동작함.
-
마스터 업그레이드 완료 후 클러스터가 정상적으로 동작함.
-
마스터가 1.11로 업그레이드되고, 워커 노드는 1.10 상태.
-
-
워커 노드 업그레이드
-
한 번에 하나의 노드씩 업그레이드 권장.
-
첫 번째 노드를 업그레이드하고, 워크로드를 나머지 노드로 이동.
-
첫 번째 노드 업그레이드 완료 후 두 번째 노드 업그레이드.
-
모든 노드 업그레이드 완료될 때까지 반복.
-
-
kubeadm 사용 업그레이드
-
kubeadm upgrade plan
명령어 사용하여 업그레이드 계획 확인. -
필요한 이미지를 가져오고 클러스터 컴포넌트를 업그레이드.
-
kubectl get nodes
명령어로 마스터 노드 업그레이드 확인. -
워커 노드 업그레이드 후
kubectl drain
,kubeadm upgrade
,kubectl uncordon
명령어 사용.
-
-
-
업그레이드 전략
-
한 번에 모든 노드 업그레이드
- 모든 노드를 한 번에 업그레이드하지만, 다운타임이 발생.
-
한 번에 한 노드 업그레이드
- 한 노드씩 업그레이드하여 다운타임을 최소화.
-
새 노드 추가
- 새로운 버전의 노드를 추가하고 워크로드를 이동하여 업그레이드.
-
-
kubeadm 업그레이드 절차
-
kubeadm upgrade plan
명령어로 업그레이드 계획 확인. -
kubeadm upgrade apply
명령어로 클러스터 업그레이드. -
apt-get upgrade kubelet
명령어로 kubelet 업그레이드. -
kubectl drain
명령어로 노드 드레인 후kubectl uncordon
명령어로 노드 복구.
-
-
컴포넌트 버전 관리
-
kube-apiserver는 주요 컴포넌트.
-
controller-manager와 scheduler는 한 버전 낮을 수 있음.
-
kubelet과 kube-proxy는 두 버전 낮을 수 있음.
-
kubectl은 버전 상관없이 동작.
-
-
업그레이드 시기
-
최신 세 개 마이너 버전만 지원.
-
최신 버전 릴리스 전에 업그레이드 필요.
-
-
업그레이드 방법
-
한 번에 한 마이너 버전씩 업그레이드.
-
1.10 -> 1.11 -> 1.12 -> 1.13 순서로 업그레이드.
-
-
업그레이드 절차
-
마스터 노드 업그레이드
-
제어 플레인 컴포넌트 다운되지만 워커 노드와 애플리케이션 정상 동작.
-
마스터 업그레이드 후 클러스터 정상화.
-
-
워커 노드 업그레이드
- 한 번에 한 노드씩 업그레이드.
-
kubeadm
사용 업그레이드-
kubeadm upgrade plan
명령어로 계획 확인. -
kubeadm upgrade apply
명령어로 업그레이드. -
apt-get upgrade kubelet
명령어로 kubelet 업그레이드.
-
-
-
업그레이드 전략
- 한 번에 모든 노드 업그레이드 (다운타임 발생)
- 한 번에 한 노드 업그레이드 (다운타임 최소화)
- 새 노드 추가 (워크로드 이동)
Certified ...
Certified ...