5. cka题目-etcd备份和恢复

504 阅读1分钟

题目描述

  • 首 先 为 运 行 在  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

image.png

  • 设置 etcdctl 的 alias 别名
alias etcdctl='/var/lib/docker/overlay2/81db967cc7079ac61b211f282300c1e4ce1e8b1eef09b2723375056cb6304501/diff/usr/local/bin/etcdctl'
  • 找到etcd证书配置存放位置(考试环境中是会给证书的信息,这个是从实验环境中找到 etcd 的证书)
kubeadm config print init-defaults

cd75a778452c5790555562d7ca262d3.png

c3e76bab183151f1e3af8964eecb608.png

解析

  • 备份

    • 实验环境
    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
    

    14f60f3cbb2a0f6230bf520c578f89f.png

  • 恢复备份

    • 实验环境
    # 因为实验环境没有/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
    

参考

etcd