第9章:K8s叢集證書續簽,Etcd資料庫備份與恢復
阿新 • • 發佈:2020-08-23
K8s叢集證書續簽,Etcd資料庫備份與恢復
K8s 叢集證書續簽(kubeadm)
ETCD證書
自簽證書頒發機構(CA) :
• ca.crt
• ca.key
etcd叢集中相互通訊使用的客戶端證書:
• peer.crt
• peer.key
pod中定義Liveness探針使用的客戶端證書:
• healthcheck-client.crt
• healthcheck-client.key
etcd節點服務端證書:
• server.crt
• server.key
K8S證書:
自簽證書頒發機構(CA) :
• ca.crt
apiserver元件服務端證書:
• apiserver.crt
• apiserver.key
apiserver連線etcd客戶端證書:
• apiserver-etcd-client.crt
• apiserver-etcd-client.key
apiserver訪問kubelet 客戶端證書:
• apiserver-kubelet-client.crt
• apiserver-kubelet-client.key
匯聚層(aggregator)證書:
• front-proxy-ca.crt
• front-proxy-ca.key
• front-proxy-client.crt
• front-proxy-client.key
kubelet證書:已預設啟用自動輪轉。
檢查客戶端證書過期時間: kubeadm alpha certs check-expiration 續簽所有證書: kubeadm alpha certs renew all cp /etc/kubernetes/admin.conf /root/.kube/config 檢視當前目錄所有證書有效時間: ls |grep crt |xargs -I {} openssl x509 -text -in{} |grep Not
Etcd資料庫備份與恢復
Kubernetes 使用 Etcd 資料庫實時儲存叢集中的資料,安全起見,一定要備份!
kubeadm部署方式:
備份: ETCDCTL_API=3 etcdctl \ snapshot save snap.db \ --endpoints=https://127.0.0.1:2379 \ --cacert=/etc/kubernetes/pki/etcd/ca.crt \ --cert=/etc/kubernetes/pki/etcd/peer.crt \ --key=/etc/kubernetes/pki/etcd/peer.key 可以不用指定證書,操作的時候恢復後起不來 恢復: 1、先暫停kube-apiserver和etcd容器 mv /etc/kubernetes/manifests /etc/kubernetes/manifests.bak # mv etcd.yaml kube-apiserver.yaml /tmp/ # 移走這兩個就可以 mv /var/lib/etcd/ /var/lib/etcd.bak 2、恢復 ETCDCTL_API=3 etcdctl \ snapshot restore snap.db \ --data-dir=/var/lib/etcd 3、啟動kube-apiserver和etcd容器 mv /etc/kubernetes/manifests.bak /etc/kubernetes/manifests
二進位制部署方式:
備份: ETCDCTL_API=3 etcdctl \ snapshot save snap.db \ --endpoints=https://192.168.31.71:2379 \ --cacert=/opt/etcd/ssl/ca.pem \ --cert=/opt/etcd/ssl/server.pem \ --key=/opt/etcd/ssl/server-key.pem 恢復: 1、先暫停kube-apiserver和etcd systemctl stop kube-apiserver systemctl stop etcd mv /var/lib/etcd/default.etcd /var/lib/etcd/default.etcd.bak 2、在每個節點上恢復 ETCDCTL_API=3 etcdctl snapshot restore snap.db \ --name etcd-1 \ --initial-cluster="etcd-1=https://192.168.31.71:2380,etcd- 2=https://192.168.31.72:2380,etcd-3=https://192.168.31.73:2380" \ --initial-cluster-token=etcd-cluster \ --initial-advertise-peer-urls=https://192.168.31.71:2380 \ --data-dir=/var/lib/etcd/default.etcd 3、啟動kube-apiserver和etcd systemctl start kube-apiserver systemctl start etcd