题目描述
- 首 先 为 运 行 在 https://127.0.0.1:2379 上 的 现 有 etcd 实 例 创 建 快 照 并 将 快 照 保 存 到 /srv/data/etcd-snapshot.db。
- 然后还原位于/srv/data/etcd-snapshot-previous.db 的现有先前快照。
- 提供了一下 TLS 证书和密钥,以通过 etcdctl 连接到服务器。 CA 证书:/opt/KUIN00601/ca.crt 客户端证书: /opt/KUIN00601/etcd-client.crt 客户端密钥:/opt/KUIN00601/etcd-client.key
根据题目完成预置条件
以下这些操作在考试时,都不需要要,题目中都会给出,这里是用自己创建实验环境的 k8s 集群时,模拟考试环境。
- 找到 etcdctl 的位置
find / -name etcdctl
- 设置 etcdctl 的 alias 别名
alias etcdctl='/var/lib/docker/overlay2/81db967cc7079ac61b211f282300c1e4ce1e8b1eef09b2723375056cb6304501/diff/usr/local/bin/etcdctl'
- 找到etcd证书配置存放位置(考试环境中是会给证书的信息,这个是从实验环境中找到 etcd 的证书)
kubeadm config print init-defaults
解析
-
备份
- 实验环境
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 /cka/etcd-snapshot.db
- 考试
ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \ --cacert=/opt/KUIN00601/ca.crt --cert=/opt/KUIN00601/etcd-client.crt --key=/opt/KUIN00601/etcd-client.key \ snapshot save /srv/data/etcd-snapshot.db
- 验证备份快照
ETCDCTL_API=3 etcdctl --write-out=table snapshot status /cka/etcd-snapshot.db
-
恢复备份
- 实验环境
# 因为实验环境没有/srv/data/etcd-snapshot-previous.db这个快照,我从上一步备份结果复制了一份 cd /cka cp etcd-snapshot.db etcd-snapshot-previous.db ETCDCTL_API=3 etcdctl --endpoints 127.0.0.1:2379 snapshot restore /cka/etcd-snapshot-previous.db
- 考试环境
ETCDCTL_API=3 etcdctl --endpoints 127.0.0.1:2379 snapshot restore /srv/data/etcd-snapshot-previous.db