https://kubernetes.io/ko/releases/version-skew-policy/
https://kubernetes.io/ko/releases/
# 업그레이드
새로운 패치, 마이너 버전 업그레이드
오픈스택은 3개월마다 새로운 마이너 버전이 나온다
업데이트를 안하면 보안문제등 많은 문제가 발생
# 다운타임
계획된 다운타임
:정기점검 공지, 미리 시스템 셧다운
계획되지 않은 다운타임
:갑자기 장애 발생
이미지 교체 -> 컨테이너(서비스) 다시 실행 -> 다운타임 발생 -> HA가 중요
컨트롤 플레인 3대
1대 실행 , 2대 업그레이드
-> 서비스의 중단이 발생하지 않는다
# 버전 차이 version skew
# 버전이 달라도 통신이 될까? 알아보는것
고가용성(HA) 클러스터에서 최신 및 가장 오래된 kube-apiserver 인스턴스가 각각 한 단계 마이너 버전 내에 있어야 한다.
-> 마이너버전은 두단계 뛰어서 업그레이드 못함(패치버전은 상관없음) /1.19 1.18 통신 가능
kubelet - API 서버 통신
kubelet은 kube-apiserver보다 최신일 수 없으며, 2단계의 낮은 마이너 버전까지 지원한다.
-> API 먼저 업그레이드
kube-apiserver 인스턴스는 1.21 및 1.20 이다. # 혼재되어있는 상태
kubelet은 1.20 및 1.19 을 지원한다(1.21 는 kube-apiserver의 1.20 인스턴스보다 최신 버전이기 때문에 지원하지 않는다).
-> API의 가장 높은 버전과의 차이 1.18은 안됨
kubectl
kubectl은 kube-apiserver의 한 단계 마이너 버전(이전 또는 최신) 내에서 지원한다.
-> +-1 까지 지원한다
kubeadm 클러스터 업그레이드
https://kubernetes.io/ko/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/
# 패치 업그레이드
control-plane
-kubeadm (api, cm, sche, ccm ...)
-kubectl/kubelet
node
-kubeadm (proxy)
-kubectl/kubelet
1.18.19 --> 1.18.20
# 버전 확인
vagrant@k-control:~$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
k-control Ready master 17h v1.18.19
k-node1 Ready <none> 17h v1.18.19
k-node2 Ready <none> 17h v1.18.19
k-node3 Ready <none> 17h v1.18.19
# 컨트롤 플레인 노드 업그레이드
sudo kubeadm upgrade apply v1.18.20
# kubeadm 업그레이드
vagrant@k-control:~$ sudo apt update
vagrant@k-control:~$ sudo apt-get install -y --allow-change-held-packages kubeadm=1.18.20
# kubelet과 kubectl 업그레이드
vagrant@k-control:~$ sudo apt-get update
vagrant@k-control:~$ sudo apt-get install -y --allow-change-held-packages kubelet=1.18.20 kubectl=1.18.20
# 홀드된패키지 변경을 허용하겠다
# 재시작
sudo systemctl daemon-reload
sudo systemctl restart kubelet
# 노드1,2,3 업그레이드
# kubeadm 업그레이드
vagrant@k-node1:~$ sudo apt update
vagrant@k-node1:~$ sudo apt-get install -y --allow-change-held-packages kubeadm=1.18.20
sudo kubeadm upgrade node
# kubelet과 kubectl 업그레이드
vagrant@k-node1:~$ sudo apt-get update
vagrant@k-node1:~$ sudo apt-get install -y --allow-change-held-packages kubelet=1.18.20 kubectl=1.18.20
# 홀드된패키지 변경을 허용하겠다
# 재시작
sudo systemctl daemon-reload
sudo systemctl restart kubelet
# 확인
vagrant@k-control:~$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
k-control Ready master 17h v1.18.20
k-node1 Ready <none> 17h v1.18.20
k-node2 Ready <none> 17h v1.18.20
k-node3 Ready <none> 17h v1.18.20
sudo apt update && sudo apt-get install -y --allow-change-held-packages kubeadm=1.18.20-00 && sudo apt update && sudo apt-get install -y --allow-change-held-packages kubelet=1.18.20-00 kubectl=1.18.20-00
'클라우드 > 쿠버네티스(Kubernetes)' 카테고리의 다른 글
쿠버네티스 Kubernetes 노드 초기화, 제거 (0) | 2021.07.07 |
---|---|
쿠버네티스 Kubernetes 버전 업그레이드 2 (0) | 2021.07.07 |
쿠버네티스 Kubernetes 애드온 (0) | 2021.07.07 |
쿠버네티스 Kubernetes 설치 / Cluster(클러스터) 생성 (0) | 2021.07.06 |
쿠버네티스 Kubernetes Kubeadm 설치 (0) | 2021.07.06 |