Exercise 4.1: Basic Node Maintenance
CP 노드에 연결된 터미널로 이동
ETCD 데이터가 저장되는 경로 확인
sudo grep data-dir /etc/kubernetes/manifests/etcd.yaml
ETCD 데이터베이스 헬스체크
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.crt
ETCD 데이터베이스 클러스터 멤버 확인
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.crt
ETCD 스냅샷(백업) 생성
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 kubeadm
kubeadm 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 --short
kubelet 및 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 version
CP 노드에 Pod가 배포 가능하도록 변경
kubectl uncordon cp
노드 상태 확인
kubectl get node
Worker 노드에 연결된 터미널로 이동
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-daemonsets
Worker 노드에 연결된 터미널로 이동
업그레이드 진행
sudo kubeadm upgrade node
kubelet 및 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 node
Worker 노드에 Pod가 배포 가능하도록 변경
kubectl uncordon worker
노드 상태 확인
kubectl get node
Last updated