Kubernetes 系統中 ETCD 備份還原教學
在 Kubernetes 系統中,ETCD 是一個關鍵的組件,負責存儲系統中的所有配置資料。為了確保在災難發生時可以快速恢復系統狀態,定期備份和還原 ETCD 是至關重要的。以下是一個簡單的教學,介紹了如何在 Kubernetes 系統中進行 ETCD 的備份和還原。
備份 ETCD
1. 使用以下指令查找 ETCD 對外的連接端點:
bashkubectl describe pods -n kube-system etcd-controlplane | grep advertise-client-urls
獲取到 Endpoint,例如:https://10.1.218.16:2379。
2. 使用以下指令查找憑證位置:
bashkubectl describe pods -n kube-system etcd-controlplane | grep pki
確定憑證位置,例如:
- Cert File: /etc/kubernetes/pki/etcd/server.crt
- Key File: /etc/kubernetes/pki/etcd/server.key
- CA Cert File: /etc/kubernetes/pki/etcd/ca.crt
3. 使用以下指令備份 ETCD 資料庫:
bashETCDCTL_API=3 etcdctl \ --endpoints=https://10.1.220.8: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/cluster1.db
還原 ETCD
1. 使用以下指令還原 ETCD 資料庫:
bashETCDCTL_API=3 etcdctl \ --endpoints=https://10.1.220.8:2379 \ --cacert=/etc/etcd/pki/ca.pem \ --cert=/etc/etcd/pki/etcd.pem \ --key=/etc/etcd/pki/etcd-key.pem snapshot restore /root/cluster2.db \ --data-dir /var/lib/etcd-data-new
2. 更新 ETCD systemd 服務單元檔案 `/etc/systemd/system/etcd.service`,將 `--data-dir` 參數設置為新的資料目錄路徑。
3. 確保新目錄的權限正確:
bashchown -R etcd:etcd /var/lib/etcd-data-new
4. 重新載入並重啟 ETCD 服務:
bashsystemctl daemon-reload systemctl restart etcd
通過以上步驟,你可以定期備份和還原 Kubernetes 系統中的 ETCD,以確保在災難發生時能夠快速恢復系統狀態,降低災害影響的程度。
留言
張貼留言