k8s

CKA 준비 (22) Kubernetes Upgrade

Joon0464 2022. 6. 24. 21:05

이 게시물은 아래 강의를 참고 하였습니다.
참고 강의 https://www.youtube.com/watch?v=KdATmTulf7s&list=PLApuRlvrZKojqx9-wIvWP3MPtgy2B372f&index=1 

 

 

 

 

문제)

upgrade system : k8s-master

Given an existing Kubernetes cluster running version 1.20.1,

upgrade all of the kubernetes control plane and node components on the master node only to version 1.21.3.

Be sure to drain the master node before upgrading it and uncordon it after the upgrade.

 

풀이)

버전 확인

https://v1-21.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.23.x to version 1.24.x, and from version 1.24.x to 1.24.y (where y > x). Skipping MINOR versions when upgrading is unsupported. For more details, please visit Versio

kubernetes.io

1. 설치 가능한 버전 확인

$ ssh master
$ sudo -i
$ apt update
$ apt-cache madison kubeadm | grep 1.21.3

2. kubeadm upgrade

$ apt-mark unhold kubeadm && apt-get update && apt-get install -y kubeadm=1.21.3-00 && apt-mark hold kubeadm

버전을 확인하여 업그레이드 확인

$ kubeadm upgrade plan v1.21.3

master node에서 업그레이드 가능한 컴포넌트들 확인
업그레이드에 필요한 명령어가 출력된다.

3. 마스터의 컴포넌트 업그레이드

$ kubeadm upgrade apply v1.21.3

4. Drain the nodes

- kubelet 을 업그레이드 하기 위해 모든 node를 drain 해야 한다.

master.example.com 을 drain 해야 한다.

$ exit -> 사용자 계정으로 전환
$ exit -> master 노드에서 console로 나가게됨
$ kubectl drain master.example.com --ignore-daemonsets

위와 같이 master node 가 drain 된다.

5. kubelet 업그레이드

$ ssh master
$ sudo -i
$ apt-mark unhold kubelet kubectl && apt-get update && apt-get install -y kubelet=1.21.3-00 kubectl=1.21.3-00 && apt-mark hold kubelet kubectl
$ sudo systemctl daemon-reload
$ sudo systemctl restart kubelet

업그레이드 완료

6. Uncordon master node

$ exit
$ exit
$ kubectl uncordon master.example.com

uncordon 된 master 노드를 확인할 수 있다.