본문 바로가기
cloud/k8s(문제풀이)

[따배쿠CKA]22.Kubernetes Upgrade

by mozi2 2022. 8. 12.
반응형

노드업그레이드도 있고 마스터 업그레이드도 있는데 마스터 업그레이드가 가장 많이 나옴

Q. upgrade system: k8s-master

Given an existing kubernetes cluster running version 1.23.x,
upgrade all of the kubernetes control plane and node components on the master node only to version 1.24.x
Be sure to drain the master node before upgrading it and uncordon it after the upgrade.

: 1.22.4 로 쿠버 버전이 되어 있는데 1.23.3으로 변경할 것 

 

*현재 나의 환경에서는 1.19.0 -> 1.23.3 으로 해보자

->단, 요즘 시험에서는 1.23.3 -> 1.24 로 하라고 한다. 

 

* k8s 설치 툴 

1단계: container engine(docker)

2단계: install -> update 

-------------------------------------------

1) kubernetes 설치 툴: kubeadm

2) master, worker1, worker2 - kubelet, kubectl

3) systemctl start kubelet start 

-------------------------------------------

3단계: kubeadm이용해서 

4) Master: kubeadm init

                 APi, ETCD, Scehduler, Controller  -> update 

5) Worker: kubeadm join mater -> update 

 

 

1. 확인 & 작업환경 

ssh k8s-master
: k8s master 로 옮겨서 작업해야 한다. 
: 나의 환경에서는 이미 master 인 controlplane 로 되어 있으니 이렇게 진행하는거로 

 

2.Determine which version to upgrade to

 : 업그레이드 

 : "apt-cache madison kubeadm" 이 명령어를 자세히 보면 버전이 1.24.1 까지 나와있는 것을 볼 수 있다. 

apt update
apt-cache madison kubeadm

3.Call "kubeadm upgrade"

 : 업그레이드할 버전을 입력한다. 

apt-mark unhold kubeadm && \
apt-get update && apt-get install -y kubeadm=1.24.x-00 && \
apt-mark hold kubeadm

4. 설치 확인 

kubeadm version

 

5. Master component 업그레이드 확인 

 : 업그레이드시 업그레이드하는 버전도 입력할것 

kubeadm upgrade plan v1.24.0

6. 업그레이드 진행

: 업그레이드할 버전을 입력한다.

kubeadm upgrade apply v1.24.0

 

7.Drain the node

: 마스터 노드에서 동작되는 pod 를 모두 삭제해라 

*Template*
kubectl drain <node-to-drain> --ignore-daemonsets

k8s-mater # exit
k8s-mater $ exit

user@console $ kubectl drain k8s-master --ignore-daemonsets
user@console $ kubectl get nodes   -> 노드가 disable 되어 있는지 확인 

: 위의 설치는 k8s- master 에서 했지만 여기서는  k8s-master 가 아닌 console 에서 진행해야 한다 .

8. 접속

user@console $ ssh k8s-master 
user@k8s-matster  $ sudo -i

9.Upgrade kubelet and kubectl

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

10. service restart 

  : 서비스 재시작, 여기까지가 업그레이드 끝 

sudo systemctl daemon-reload
sudo systemctl restart kubelet

 11.Uncordon the node

: 끝

k8s-mater # exit
k8s-mater $ exit
user@console $ kubectl uncordon k8s-master
user@console $ kubectl get nodeskubectl get nodes

 

https://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

 

* 본 게시글은 "TTABAE-LEARN" 을 보고 정리한 내용입니다.

728x90
반응형