Exercise 4.1: Basic Node Maintenance
CP 노드에 연결된 터미널로 이동
ETCD 데이터가 저장되는 경로 확인
sudo grep data-dir /etc/kubernetes/manifests/etcd.yamlETCD 데이터베이스 헬스체크
kubectl exec -it etcd-cp -n kube-system -- \ etcdctl endpoint health --key /etc/kubernetes/pki/etcd/server.key --cert /etc/kubernetes/pki/etcd/server.crt --cacert /etc/kubernetes/pki/etcd/ca.crtETCD 데이터베이스 클러스터 멤버 확인
kubectl exec -it etcd-cp -n kube-system -- \ etcdctl member list --write-out=table --key /etc/kubernetes/pki/etcd/server.key --cert /etc/kubernetes/pki/etcd/server.crt --cacert /etc/kubernetes/pki/etcd/ca.crtETCD 스냅샷(백업) 생성
kubectl exec -it etcd-cp -n kube-system -- \ etcdctl snapshot save /var/lib/etcd/snapshot.db --key /etc/kubernetes/pki/etcd/server.key --cert /etc/kubernetes/pki/etcd/server.crt --cacert /etc/kubernetes/pki/etcd/ca.crt위에서 생성한 스냅샷 확인
sudo ls -l /var/lib/etcd쿠버네티스 클러스터 복구에 필요한 파일 백업
{ mkdir $HOME/backup sudo cp /var/lib/etcd/snapshot.db $HOME/backup/snapshot.db-$(date +%m-%d-%y) sudo cp /root/kubeadm-config.yaml $HOME/backup/ sudo cp -r /etc/kubernetes/pki/etcd $HOME/backup/ }설치 가능한 kubeadm 버전 확인
sudo apt update && sudo apt-cache madison kubeadmkubeadm 1.28.1 버전 설치
{ sudo apt-mark unhold kubeadm sudo apt install -y kubeadm=1.28.1-00 sudo apt-mark hold kubeadm }설치된 kubeadm 버전 확인
sudo kubeadm version --output short업그레이드를 진행할 노드(CP)에 배포된 Pod를 다른 Node로 이전
kubectl drain cp --ignore-daemonsets노드 상태 확인
kubectl get node업그레이드 계획 확인
sudo kubeadm upgrade plan업그레이드 진행
sudo kubeadm upgrade apply v1.28.1노드 상태 확인
kubectl get node쿠버네티스 클러스터 버전 확인
kubectl version --shortkubelet 및 kubectl 1.28.1 버전 설치
{ sudo apt-mark unhold kubelet kubectl sudo apt install -y kubelet=1.28.1-00 kubectl=1.28.1-00 sudo apt-mark hold kubelet kubectl }kubelet 데몬 재시작
{ sudo systemctl daemon-reload sudo systemctl restart kubelet }노드 상태 확인
kubectl get node쿠버네티스 클러스터 버전 확인
kubectl versionCP 노드에 Pod가 배포 가능하도록 변경
kubectl uncordon cp노드 상태 확인
kubectl get nodeWorker 노드에 연결된 터미널로 이동
kubeadm 1.28.1 버전 설치
{ sudo apt-mark unhold kubeadm sudo apt update && sudo apt install -y kubeadm=1.28.1-00 sudo apt-mark hold kubeadm }CP 노드에 연결된 터미널로 이동
업그레이드를 진행할 노드(Worker)에 배포된 Pod를 다른 Node 이전
kubectl drain worker --ignore-daemonsetsWorker 노드에 연결된 터미널로 이동
업그레이드 진행
sudo kubeadm upgrade nodekubelet 및 kubectl 1.28.1 버전 설치
{ sudo apt-mark unhold kubelet kubectl sudo apt install -y kubelet=1.28.1-00 kubectl=1.28.1-00 sudo apt-mark hold kubelet kubectl }kubelet 데몬 재시작
{ sudo systemctl daemon-reload sudo systemctl restart kubelet }CP 노드에 연결된 터미널로 이동
노드 상태 확인
kubectl get nodeWorker 노드에 Pod가 배포 가능하도록 변경
kubectl uncordon worker노드 상태 확인
kubectl get node
Last updated