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 순으로 업그레이드.

  • 업그레이드 절차

    1. 마스터 노드 업그레이드

      • 마스터 노드를 업그레이드할 때 제어 플레인 컴포넌트(API 서버, 스케줄러, 컨트롤러 매니저)가 일시적으로 다운됨.

      • 마스터가 다운되어도 워커 노드와 클러스터의 애플리케이션은 정상적으로 동작함.

      • 마스터 업그레이드 완료 후 클러스터가 정상적으로 동작함.

      • 마스터가 1.11로 업그레이드되고, 워커 노드는 1.10 상태.

    2. 워커 노드 업그레이드

      • 한 번에 하나의 노드씩 업그레이드 권장.

      • 첫 번째 노드를 업그레이드하고, 워크로드를 나머지 노드로 이동.

      • 첫 번째 노드 업그레이드 완료 후 두 번째 노드 업그레이드.

      • 모든 노드 업그레이드 완료될 때까지 반복.

    3. kubeadm 사용 업그레이드

      • kubeadm upgrade plan 명령어 사용하여 업그레이드 계획 확인.

      • 필요한 이미지를 가져오고 클러스터 컴포넌트를 업그레이드.

      • kubectl get nodes 명령어로 마스터 노드 업그레이드 확인.

      • 워커 노드 업그레이드 후 kubectl drain, kubeadm upgrade, kubectl uncordon 명령어 사용.

  • 업그레이드 전략

    1. 한 번에 모든 노드 업그레이드

      • 모든 노드를 한 번에 업그레이드하지만, 다운타임이 발생.
    2. 한 번에 한 노드 업그레이드

      • 한 노드씩 업그레이드하여 다운타임을 최소화.
    3. 새 노드 추가

      • 새로운 버전의 노드를 추가하고 워크로드를 이동하여 업그레이드.
  • 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 순서로 업그레이드.

  • 업그레이드 절차

    1. 마스터 노드 업그레이드

      • 제어 플레인 컴포넌트 다운되지만 워커 노드와 애플리케이션 정상 동작.

      • 마스터 업그레이드 후 클러스터 정상화.

    2. 워커 노드 업그레이드

      • 한 번에 한 노드씩 업그레이드.
    3. kubeadm 사용 업그레이드

      • kubeadm upgrade plan 명령어로 계획 확인.

      • kubeadm upgrade apply 명령어로 업그레이드.

      • apt-get upgrade kubelet 명령어로 kubelet 업그레이드.

  • 업그레이드 전략

    1. 한 번에 모든 노드 업그레이드 (다운타임 발생)
    2. 한 번에 한 노드 업그레이드 (다운타임 최소화)
    3. 새 노드 추가 (워크로드 이동)

Certified ...

Certified ...