Cloud/k8s-CKA

[CKA] 21. k8s cluster upgrade

jinkwon.kim 2023. 5. 5. 21:58
728x90
반응형

개요

k8s의 cluster의 버전을 upgrade 하는 방법을 알아보겠습니다. 

유의 사항

1. 하나씩 올리면서 업데이트를 해야 합니다.

2. k8s와 kubelet과 kubectl은 수동으로 upgrade 해주어야 합니다.

3. upgrade작업 시 kubelet를 upgrade하기 전에 drain을 사용하여 모든 pod를 안전하게 다른 node에 옮겨 놓고 update후에 uncordon 해주어야 합니다.

k8s의 버전 체계 

k8s 모듈별 하위 호환성 정보

https://v1-26.docs.kubernetes.io/releases/version-skew-policy/

 

Version Skew Policy

The maximum version skew supported between various Kubernetes components.

kubernetes.io

k8s cluster update 절차 

https://v1-26.docs.kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/

 

Upgrading kubeadm clusters

This page explains how to upgrade a Kubernetes cluster created with kubeadm from version 1.26.x to version 1.27.x, and from version 1.27.x to 1.27.y (where y > x). Skipping MINOR versions when upgrading is unsupported. For more details, please visit Versio

kubernetes.io

https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/upgrading-linux-nodes/

 

Upgrading Linux nodes

This page explains how to upgrade a Linux Worker Nodes created with kubeadm. Before you begin You need to have a Kubernetes cluster, and the kubectl command-line tool must be configured to communicate with your cluster. It is recommended to run this tutori

kubernetes.io

k8s의 업데이트 절차는 크게 2단계로 나눠집니다.

1. kubeadm을 사용하여 k8s 자체를 update 하기

2. kubelet과 kubectl을 upgrade 하기

k8s update

1. upgrade가능한 kubeadmn 확인

모든 kubeadm 버전 확인

apt-cache madison kubeadm

패치 버전만 upgrade할 때 kubeadm 버전 확인

패치 버전만 update 할  경우 아래 명령을 사용하면 어느 버전까지 update가능한지 알려줍니다.

다만. minor 버전을 upgrade 할 때는 의미가 없습니다. 

kubeadm upgrade plan

2. 최신 kubeadmn 설치

ubuntu 기준

 # replace x in 1.25.9-00 with the latest patch version
 apt-mark unhold kubeadm && \
 apt-get update && apt-get install -y kubeadm=1.25.9-00 && \
 apt-mark hold kubeadm

3. apt로 설치된 kubeadm 버전 확인

kubeadm version

4. kubeadm upgrade

control node에서 아래 명령을 실행

sudo kubeadm upgrade apply v1.25.9

worker node에서는 아래 명령을 실행 

sudo kubeadm upgrade node

성공 시 아래와 같이 나옵니다.

kubelet and kubectl upgrade

1. drain을 통한 pod를 모두 안전하게 이동

kubectl drain controlplan --ignore-daemonsets

2. kubelet 및 kubectl 업데이트

apt-mark unhold kubelet kubectl && \
apt-get update && apt-get install -y kubelet=1.25.9-00 kubectl=1.25.9-00 && \
apt-mark hold kubelet kubectl

3. kubelet 및 kubectl 재시작

sudo systemctl daemon-reload
sudo systemctl restart kubelet

4. uncordon

kubectl uncordon controlplan

 

정리

1. 하나씩 올리면서 업데이트를 해야 합니다.

2. k8s와 kubelet과 kubectl은 수동으로 upgrade 해주어야 합니다.

3. node의 upgrade작업 시 drain을 사용하여 모든 pod를 안전하게 다른 node에 옮겨놓아야 합니다.

Next Post

[CKA] 22. k8s cluster backup 방법

 

 

728x90
반응형

'Cloud > k8s-CKA' 카테고리의 다른 글

[CKA] 23. k8s cluster 관리  (0) 2023.05.07
[CKA] 22. k8s cluster backup 방법  (0) 2023.05.07
[CKA] 20. node operating system update  (0) 2023.04.24
[CKA] 19. multi container pods  (0) 2023.04.20
[CKA] 18. Environment Variables  (0) 2023.03.28