본문 바로가기
카테고리 없음

[K8s] Cluster upgrade

by BTC_기범 2023. 9. 14.

안녕하세요. 이쁜이와 멋쟁이의 BTC기범입니다.

오늘은 K8s의 클러스터를 업그레이드 하는 방법에 대해 이야기해 보겠습니다.


클러스터를 업그레이드 하기위해 다음 요소들의 업그레이드가 필요합니다.

  1. kubeadm
  2. kubelet
  3. kubectl

업그레이드를 진행해보도록 하겠습니다.

버전 확인

# 업그레이드를 하고자 하는 노드 서버에서 진행
# Debian 계열
apt update
apt-cache madison kubeadm

# Redhat 계열
yum list --showduplicates kubeadm --disableexcludes=kubernetes

해당 OS의 패키지 매니저를 최신화하고 저장되어있는 kubeadm의 버전을 확인합니다.

 

kubeadm 업그레이드

# 업그레이드를 하고자 하는 노드 서버에서 진행
# Dabian 계열
apt-mark unhold kubeadm && \
apt-get update && apt-get install -y kubeadm={version} && \
apt-mark hold kubeadm

# Redhat 계열
yum install -y kubeadm-{version} --disableexcludes=kubernertes

원하는 버전의 kubeadm 패키지를 설치합니다.

# 업그레이드를 하고자 하는 노드 서버에서 진행
kubeadm upgrade plan v{version}
kubeadm upgrade apply v{version}

kubeadm 설치를 진행합니다.

kubelet, kubectl 업그레이드

# control plane에서 진행
kubectl drain <업그레이드 할 노드명> --ignore-daemonsets

kubelet,kubectl을 업그레이드 하기 위해 해당 노드에 생성되어있는 파드와 같은 요소들을 모두 이동시킵니다.

# 업그레이드를 하고자 하는 노드 서버에서 진행
apt-mark unhold kubelet kubectl && \
apt-get update && apt-get install -y kubelet={version} kubectl={version} && \
apt-mark hold kubelet kubectl

원하는 버전의 kubelet, kubectl을 설치합니다.

# 업그레이드를 하고자 하는 노드 서버에서 진행
systemctl daemon-reload
systemctl restart kubelet

변경된 정보를 적용시키고 kubelet을 재시작합니다.

# control plane에서 진행
kubectl uncordon {업데이트한 노드명}

kubectl drain으로 인해 리소스 생성이 막힌 것을 해제시켜줍니다.

이상으로 업그레이드가 완료되었습니다.

control plane에서 노드의 버전을 확인하면 버전이 변경된 것을 확인할 수 있습니다.


오늘은 K8s의 클러스터를 업그레이드 하는 방법에 대해 이야기해보았습니다.

위 방법을 통해 운영하는 클러스터를 항상 최신상태로

유지하시길 기대하며 글을 마칩니다 ^^ .

다음에 또 봬요~!

참고: kubeadm 클러스터 업그레이드 | Kubernetes

댓글