https://www.itexams.com/exam/CKA
CKA Exam - Free Questions and Answers - ITExams.com
www.itexams.com
ITExams에서 CKA 자격증 취득을 위한 무료 문제를 제공한다.
3번 문항 클러스터 버전 업그레이드 문제에 대한 풀이 방법을 공유하고자 한다.
가장 먼저 아래처럼 context를 설정하라는 내용을 볼 수 있다.
SIMULATION -
Set configuration context:
kubectl config use-context mk8s
쿠버네티스에서 클러스터를 관리할 때, 사용할 환경을 설정하는 것이다.
위의 내용은 'mk8s라는 이름의 context를 사용하겠다'는 의미이다.
아래부터는 문제 내용이다.
[문제]
Task -
Given an existing Kubernetes cluster running version 1.22.1, upgrade all of the Kubernetes control plane and node components on the master node only to version 1.22.2.
Be sure to drain the master node before upgrading it and uncordon it after the upgrade.
그 아래에는 ssh로 master node에 접속하는 방법과 sudo -i로 sudo 권한을 얻는 방법이 나와있다.
kubeadm 명령어를 사용하기 위해서는 해당 노드에 직접 접속하여 sudo권한으로 업그레이드 명령어를 수행해야 하기 때문이다.
다른 애드온은 업그레이드 하면 안됨.
[해설]
- 버전 1.22.1을 실행하는 기존 쿠버네티스 클러스터가 있는 경우 마스터 노드의 모든 쿠버네티스 control plane과 node 구성 요소를 버전 1.22.2로만 업그레이드해라.
- 업그레이드 전 반드시 마스터 노드를 drain하고 업그레이드 후에는 uncordon해라
[작업 목록]
1. drain, uncordon, upgrade 명령어 사용법 찾기
2. 노드 조회
3. 노드 drain
4. node component 업그레이드
5. control plane 업그레이드
6. 노드 uncordon
1. drain, uncordon, upgrade 명령어 사용법 찾기
CKA 시험 응시할 때는 아래 세개의 쿠버네티스 공식 문서를 사용할 수 있다.
https://kubernetes.io/docs/
https://kubernetes.io/blog/
https://kubernetes.io/zh/docs/
이 중 drain과 uncordon명령어 목록들을 아래 링크에서 볼 수 있다.
https://kubernetes.io/docs/ > Reference > Command line Tool (kubectl) > kubectl Commands 로 접속한다.
https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands
upgrade 명령어는 administer 목록에서 볼 수 있다.
https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/
control plane과 drain 후 업그레이드 하는 명령어를 찾을 수 있다.
https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/#drain-the-node
https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/#uncordon-the-node
2. 노드 조회
k get nodes
- 위 명령어로 노드 조회
NAME STATUS ROLES AGE VERSION
mk8s-master-0 Ready control-plane 636d v1.26.0
- 이렇게 노드 조회하면 노드 목록을 확인할 수 있고, 버전도 확인할 수 있다.
- 노드가 여러개 조회되더라도, 마스터 노드에서만 수행하라했으니 마스터 노드에서만 작업을 해주면 된다.
3. 노드 drain
https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/#drain-the-node
Upgrading kubeadm clusters
This page explains how to upgrade a Kubernetes cluster created with kubeadm from version 1.31.x to version 1.32.x, and from version 1.32.x to 1.32.y (where y > x). Skipping MINOR versions when upgrading is unsupported. For more details, please visit Versio
kubernetes.io
- 위 링크에 있는 drain 명령어를 수행해주면 된다.
kubectl drain mk8s-master-0 --ignore-daemonsets
4. node component 업그레이드
https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/#drain-the-node
Upgrading kubeadm clusters
This page explains how to upgrade a Kubernetes cluster created with kubeadm from version 1.31.x to version 1.32.x, and from version 1.32.x to 1.32.y (where y > x). Skipping MINOR versions when upgrading is unsupported. For more details, please visit Versio
kubernetes.io
- drain 명령어 이후에 나오는 컴포넌트를 업그레이드 하기 위해서 먼저 마스터 노드에 접속 후 sudo권한으로 접속해야 한다. 방법은 문제에 함께 기재되어 있다.
ssh mk8s-master-0
- 마스터노드 접속
sudo -i
- sudo 권한으로 접속
apt-mark unhold kubelet kubectl && \
apt-get update && sudo apt-get install -y kubelet='1.22.2-00' kubectl='1.22.2-00' && \
apt-mark hold kubelet kubectl
- kublet과 kubectl 업그레이드
systemctl daemon-reload
systemctl restart kubelet
- kublet 재시작
5. control plane 업그레이드
- 위 링크에 나와있는 명령어를 수행해주면 된다.
apt-mark unhold kubeadm && \
apt-get update && sudo apt-get install -y kubeadm='1.22.2-00' && \
apt-mark hold kubeadm
- kubeadmin 업그레이드
kubeadm upgrade plan
- 현재 클러스터 상태를 확인 및 업그레이드 경로 점검
kubeadm upgrade apply v1.22.2
- 컨트롤 플레인 업그레이드
exit
exit
- sudo권한 접속과 마스터 노드에 접속에서 빠져나간다.
혹은 4번 5번 내용을 함께 수행해도 된다.
ssh mk8s-master-0
sudo -i
apt-mark unhold kubelet kubectl && \
apt-get update && sudo apt-get install -y kubeadm='1.22.2-00' kubelet='1.22.2-00' kubectl='1.22.2-00' && \
apt-mark hold kubelet kubectl
kubeadm upgrade plan
kubeadm upgrade apply v1.22.2
systemctl daemon-reload
systemctl restart kubelet
exit
exit
6. 노드 uncordon
https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/#uncordon-the-node
Upgrading kubeadm clusters
This page explains how to upgrade a Kubernetes cluster created with kubeadm from version 1.31.x to version 1.32.x, and from version 1.32.x to 1.32.y (where y > x). Skipping MINOR versions when upgrading is unsupported. For more details, please visit Versio
kubernetes.io
- 위의 링크에 나온 uncordon 명령어를 수행한다.
kubectl uncordon mk8s-master-0
- 노드의 스케줄링 활성화
kubectl get nodes
- 노드 상태를 조회하여, 스케쥴링 가능한 상태가 되었는지 확인한다.
여기까지가 문제풀이다.
[요약]
1. drain, uncordon, upgrade 명령어 사용법 찾기
https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade
- 위 링크에 다 나와 있음
2. 노드 조회
kubectl get node
3. 노드 drain
kubectl drain mk8s-master-0 --ignore-daemonsets
4. node component 업그레이드 & 5. control plane 업그레이드
ssh mk8s-master-0
sudo -i
apt-mark unhold kubelet kubectl && \
apt-get update && sudo apt-get install -y kubeadm='1.22.2-00' kubelet='1.22.2-00' kubectl='1.22.2-00' && \
apt-mark hold kubelet kubectl
kubeadm upgrade plan
kubeadm upgrade apply v1.22.2
systemctl daemon-reload
systemctl restart kubelet
exit
exit
6. 노드 uncordon
kubectl uncordon mk8s-master-0
kubectl get nodes
'쿠버네티스(kubernetes) > CKA 준비' 카테고리의 다른 글
[ITExam-CKA] 2. Kubernetes Cluster Management - Cordon과 Drain 실습 (2) | 2025.02.05 |
---|---|
[ITExam-CKA] 1. Kubernetes RBAC - ClusterRole과 ServiceAccount Binding 실습 (0) | 2025.02.05 |