
안녕하세요. 이쁜이와 멋쟁이의 BTC기범입니다.
오늘은 K8s의 클러스터를 업그레이드 하는 방법에 대해 이야기해 보겠습니다.
클러스터를 업그레이드 하기위해 다음 요소들의 업그레이드가 필요합니다.
- kubeadm
- kubelet
- 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의 클러스터를 업그레이드 하는 방법에 대해 이야기해보았습니다.
위 방법을 통해 운영하는 클러스터를 항상 최신상태로
유지하시길 기대하며 글을 마칩니다 ^^ .
다음에 또 봬요~!

댓글