drain
kubectl drain node명 --ignore-daemonsets
kubectl uncordon node명 // unschedualable에서 해제되며, 오직 새로운 POD이 만들어질 때 스케쥴링 작동
cordon
kubectl cordon node명
kubectl uncordon node명 // unschedualable에서 해제되며, 오직 새로운 POD이 만들어질 때 스케쥴링 작동
1단계
2단계
kubeadm 링크 : https://v1-19.docs.kubernetes.io/ko/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/
kubectl get nodes
kubectl describe nodes 노드명 | grep -i taint
kubeadm upgrade plan
kubectl drain controlplane --ignore-daemonsets
apt update
apt install kubeadm=1.20.0-00
kubeadm version // kubeadm 버전 확인
kubeadm upgrade apply v1.20.0
apt install kubelet=1.20.0-00
systemctl restart kubelet
kubectl uncordon controlplane
ssh 워커노드명 // 해당 노드 접속 후 진행
kubectl drain 워커노드명 --ignore-daemonsets
apt update
apt install kubeadm=1.20.0-00
kubeadm version // kubeadm 버전 확인
kubeadm upgrade apply v1.20.0
apt install kubelet=1.20.0-00
systemctl restart kubelet
kubectl uncordon 워커노드명
1) deploy, pod 등의 defenition file을 git repo로 백업 및 복원
2) ETCD 서버는 클러스터 내 모든 정보를 저장하므로 이를 백업 및 복구
etcd 버전확인
kubectl -n kube-system logs etcd-controlplane | grep -i 'etcd-version'
etcd listen url 확인
kubectl -n kube-system describe pod etcd-controlplane | grep '\--listen-client-urls'
ETCD server certification file path 확인
kubectl -n kube-system describe pod etcd-controlplane | grep '\--cert-file'
ETCD CA certification file path 확인
kubectl -n kube-system describe pod etcd-controlplane | grep '\--trusted-ca-file'
ETCD 스냅샷
ETCDCTL_API=3 etcdctl --endpoints=https://[127.0.0.1]:2379 \
--cacert=/etc/kubernetes/pki/etcd/ca.crt \
--cert=/etc/kubernetes/pki/etcd/server.crt \
--key=/etc/kubernetes/pki/etcd/server.key \
snapshot save /opt/snapshot-pre-boot.db
스냅샷 복원
ETCDCTL_API=3 etcdctl --data-dir /var/lib/etcd-from-backup \
snapshot restore /opt/snapshot-pre-boot.db
cd /etc/kubernetes/manifests/
vim etcd.yaml