Certified Kubernetes Administrator (CKA) with Practice Tests - Cluster Maintenance

Albert·2025년 2월 8일

쿠버네티스(Kubernetes) 버전 관리 및 업그레이드 가이드

1. 쿠버네티스 버전 관리 개요

쿠버네티스를 운영할 때, 적절한 버전 관리는 유지보수와 안정성을 위해 필수적입니다. 쿠버네티스는 최신 버전보다 최대 두 개의 마이너 버전까지 공식적으로 지원하기 때문에, 지속적인 업데이트가 필요합니다. 이를 통해 보안 패치와 새로운 기능을 안정적으로 활용할 수 있습니다.

1.1. 쿠버네티스 버전 확인 명령어

현재 사용 중인 쿠버네티스 클러스터와 노드의 버전을 확인하려면 다음 명령어를 사용합니다.

kubectl version --short
kubectl get nodes -o wide

2. 쿠버네티스 업그레이드 절차

쿠버네티스를 업그레이드할 때는 Master Node를 먼저 업데이트한 후, Worker Node를 순차적으로 업그레이드하는 것이 일반적인 절차입니다. Worker Node를 업그레이드할 때는 해당 노드의 파드를 안전하게 다른 노드로 이동시킨 후 진행해야 합니다.

2.1. 노드의 파드를 다른 노드로 이동하기

업그레이드 전에 특정 노드에서 실행 중인 파드를 다른 노드로 옮기는 명령어입니다.

kubectl drain <노드이름> --ignore-daemonsets 
  • --ignore-daemonsets: 데몬셋(DaemonSet) 파드는 이동되지 않도록 설정

2.2. 노드 스케줄링 방지 (cordon)

업그레이드 중에 새로운 파드가 스케줄링되지 않도록 해당 노드를 cordon 상태로 변경합니다.

kubectl cordon <노드이름>

2.3. 노드 스케줄링 재개 (uncordon)

업그레이드가 완료된 후, 해당 노드에 다시 파드가 스케줄링되도록 설정합니다.

kubectl uncordon <노드이름>

3. 쿠버네티스 업그레이드 진행

업그레이드를 진행하기 전에 사전 점검을 수행하여 클러스터의 현재 상태를 확인합니다.

3.1. 업그레이드 계획 확인

kubeadm을 사용하여 업그레이드 계획을 확인합니다.

kubeadm upgrade plan

이 명령어를 실행하면 업그레이드 가능한 버전과 필요한 조치 사항을 확인할 수 있습니다.

3.2. Master Node 업그레이드

Master Node를 업그레이드하는 단계는 다음과 같습니다.

  1. kubeadm 업그레이드 실행
sudo kubeadm upgrade apply vX.Y.Z
  1. kubelet과 kubectl 업그레이드
sudo apt-get update && sudo apt-get install -y kubelet kubectl
  1. kubelet 재시작
sudo systemctl restart kubelet

3.3. Worker Node 업그레이드

Worker Node는 하나씩 업그레이드해야 하며, 다음 절차를 따릅니다.

  1. 노드를 drain 처리하여 파드를 이동
kubectl drain <노드이름> --ignore-daemonsets 
  1. kubeadm 업그레이드 실행
sudo kubeadm upgrade node
  1. kubelet과 kubectl 업그레이드
sudo apt-get update && sudo apt-get install -y kubelet kubectl
  1. kubelet 재시작
sudo systemctl restart kubelet
  1. 노드를 다시 활성화 (uncordon)
kubectl uncordon <노드이름>

4. 기타 업그레이드 전략

4.1. 블루-그린 업그레이드 방식

새로운 버전의 노드를 생성한 후, 기존 노드의 워크로드를 점진적으로 새로운 노드로 옮기는 방법입니다. 이를 통해 무중단 업그레이드가 가능합니다.

4.2. 롤링 업그레이드

하나씩 Worker Node를 업그레이드하면서, 점진적으로 클러스터 전체를 새로운 버전으로 전환하는 방식입니다.

5. 정리 및 결론

쿠버네티스의 버전 관리는 보안 및 성능을 유지하기 위해 매우 중요한 작업입니다. 최신 버전보다 두 개 이전의 마이너 버전까지만 공식적으로 지원되므로, 정기적인 업그레이드가 필수적입니다. 업그레이드 시에는 drain, cordon, uncordon 등의 명령어를 활용하여 노드의 파드 이동과 스케줄링을 조정하면서 진행해야 합니다.

업그레이드 전에는 반드시 kubeadm upgrade plan을 실행하여 업그레이드 가능 여부를 확인하고, Master Node → Worker Node 순서로 진행하는 것이 바람직합니다. 무중단 서비스를 위해서는 블루-그린 배포나 롤링 업그레이드 방식을 고려할 수도 있습니다.

정기적인 클러스터 점검과 버전 관리를 통해 안정적인 쿠버네티스 환경을 유지하세요!

profile
개발 블로그

0개의 댓글