IT/CKA

CKA 준비과정 - Cluster Maintenance (2) / 클러스터 업그레이드

Primes 2023. 6. 11. 19:40
728x90

쿠버네티스의 각 구성요소는 다른 버전으로 구성될 수 있으나 아래와 같은 조건이 존재한다.

1. 각 구성요소는 kube-apiserver보다 높은 버전을 사용해서는 안된다.

2. controller-manager, kube-scheduler는 kube-apiserver보다 한 버전 아래까지 사용 가능하다.

3. kubelet, kube-proxy 는 kube-apiserver보다 두 버전 아래까지 사용 가능하다.

4. kubectl은 kube-apiserver보다 +-1 버전을 사용할 수 있다.

 

 

쿠버네티스 버전 업그레이드를 꾸준히 진행해주어야 하는데, 이 때 주의할 점은 "버전을 단계적으로 업데이트" 해야 한다는 점이다. 한 번에 버전을 건너뛰고 업그레이드 하는 것은 권장되지 않는다.

 

 

 

만일, 쿠버네티스 환경이 클라우드 환경이라면 일반적으로 클라우드 프로바이더가 제공하는 버전이 있기 때문에, 제공되는 버전으로 쉽게 업그레이드 할 수 있다. 로컬 환경이라면 직접 kubeadm 을 통해서 업그레이드해야 한다.

 

kubeadm을 통해서 업그레이드 하는 과정을 살펴본다.

먼저 마스터 노드를 업그레이드하고, 워커 노드를 업그레이드한다.

업그레이드가 진행되는 동안 마스터 노드의 기능은 잠시 정지된다. 워커 노드의 어플리케이션은 영향이 없다.

마스터 노드의 업그레이드가 완료되면, 이어서 워커 노드를 업그레이드를 진행한다.

 

워커 노드의 업그레이드 방법은 여러가지가 존재한다.

 

1. 한꺼번에 업그레이드

모든 워커노드의 가동을 중지하고 업그레이드를 한꺼번에 진행한다. 이 방법을 사용할 경우, 사용자는 어플리케이션에 접근할 수 없다. 가동 중지 시간을 요구하는 방법이다.

 

2. 하나씩 업그레이드

노드를 하나씩 업그레이드하게 되면, 먼저 업그레이드 되는 노드의 어플리케이션을 다른 노드에 옮겨두고 업그레이드를 진행하게 된다. 업그레이드가 모두 완료되면 어플리케이션을 원위치한다.

 

3. 업그레이드 완료된 노드를 추가

쿠버네티스 버전 업그레이드가 완료된 노드를 추가하고, 해당 노드로 어플리케이션을 옮기는 방식이다.

 

 

이제 업그레이드 커맨드를 알아본다.

kubeadm을 통해 업그레이드 정보를 알 수 있고, 업그레이드도 kubeadm으로 진행하게 된다.

 

kubeadm upgrade plan

>> 업그레이드할 버전에 대한 정보 확인

 

kubeadm을 통해서 클러스터 버전 업그레이드를 진행하기 때문에, kubeadm의 업그레이드가 업그레이드 순서 중 가장 먼저 진행해야 한다. kubeadm 업그레이드 과정은 위와 같다.

1. apt 패키지를 통해 업그레이드 진행

2. 다운받은 패키지 적용

3. node 버전을 확인해보면 아직 업그레이드가 적용되지 않았음을 확인할 수 있다.

4. kubelet 업그레이드 진행 후 재시작

반응형