【CKA】四、etcd的备份与恢复

4、etcd的备份与恢复

1. 考题内容:

2. 答题思路:

1、ssh到有etcdctl、etcdutl命令的节点

2、备份时注意添加证书并保证路径正确

3、备份完可以验证下

4、恢复备份时要停服务,恢复备份后重启kubelet

题型是一样的,我考的证书的路径是

ca证书:/etc/kubernetes/pki/etcd/ca.crt

客户端证书:/etc/kubernetes/pki/etcd/peer.crt

客户端秘钥:/etc/kubernetes/pki/etcd/peer.key

其他都一模一样。

3. 官网地址:

https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/configure-upgrade-etcd/

4. 考题答案:

切换环境

kubectl config use-context k8s

#按题目要求ssh到有etcdctl、etcdutl命令的节点

ssh k8s-node-0

备份

复制代码
# 1).备份命令
ETCDCTL_API=3 etcdctl --endpoints 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 \
  snapshot save /srv/data/etcd-snapshot.db

# 2).验证备份的快照
etcdutl --write-out=table snapshot status /srv/data/etcd-snapshot.db

恢复

复制代码
# 1).创建/opt/backup目录
mkdir /opt/backup

# 2).备份集群的yaml文件,同时也停止这些服务
mv  /etc/kubernetes/manifests/*  /opt/backup/

# 3).恢复备份
ETCDCTL_API=3 etcdctl --endpoints 127.0.0.1:2379 \
  --cert=/etc/kubernetes/pki/etcd/server.crt \
  --key=/etc/kubernetes/pki/etcd/server.key \
  --cacert=/etc/kubernetes/pki/etcd/ca.crt \
  --data-dir /var/lib/etcd-restore  snapshot restore /data/backup/etcd-snapshot-previous.db

# 4).修改etcd.yaml
vim /opt/backup/etcd.yaml
...
volumes:
- hostPath:
    path: /etc/kubernetes/ki/etcd
    type: DirectoryOrCreate
  name: etcd-certs
- hostPath:
    path: /var/lib/etcd-restore 			# 将volume 配置的 path:/var/lib/etcd 改成 /var/lib/etcd-restore

# 5).恢复备份的yaml文件
mv /opt/backup/* /etc/kubernetes/manifests/

# 6).重启kubelet
systemctl restart kubelet

5. 验证:

复制代码
# 1).检查集群环境etcd的状态
kubectl get pod -A 
# 2).检查etcd恢复目录是否有数据
ls /var/lib/etcd-restore
相关推荐
正经教主1 小时前
【docker基础】第六课:Web应用与数据库容器部署
网络·docker·容器
Shacoray1 小时前
K8s 中 Ingress 的 HTTPS 证书 如何生成?
容器·https·kubernetes
开发者联盟league1 小时前
使用Jenkins整合Sonarqube/Gitlab/Harbor/Kubernetes的Demo工程
kubernetes·gitlab·jenkins
Patrick_Wilson1 小时前
Node.js SSR 内存治理:为什么 --max-old-space-size 不等于进程内存
kubernetes·node.js·v8
开发者联盟league1 小时前
使用k8s安装Jenkins
容器·kubernetes·jenkins
正经教主2 小时前
【docker基础】 第七课:Docker Compose 多容器实战
运维·docker·容器
正经教主2 小时前
【docker基础】Redis的docker部署
redis·docker·容器
DolphinScheduler社区3 小时前
Apache DolphinScheduler 3.4.2 正式发布!新增 Amazon EMR Serverless 插件,增强监控与补数据能力
大数据·云原生·serverless·apache·海豚调度·版本发版
成为你的宁宁3 小时前
【基于 Prometheus Operator 实现 K8s 环境下 Redis Cluster 集群监控部署】
redis·kubernetes·prometheus
是一个Bug3 小时前
Docker 与 Kubernetes:从“集装箱”到“远洋舰队”
docker·容器·kubernetes