【CKA 2024】CKA 考前自学 (十五)

本文详细描述了如何在Kubernetes环境中,通过etcdctl在master01主机上创建和恢复etcd快照,包括设置TLS连接、执行快照和恢复操作,以及后续的配置调整和验证步骤。
摘要由CSDN通过智能技术生成

题目内容

设置配置环境:

[candidate@node-1] $ kubectl config use-context xk8s

Task

您必须从 master01 主机执行所需的 etcdctl 命令。

首先,为运行在 https://127.0.0.1:2379 上的现有 etcd 实例创建快照并将快照保存到 /var/lib/backup/etcd-snapshot.db

提供了以下 TLS 证书和密钥,以通过 etcdctl 连接到服务器。

CA 证书: /opt/KUIN00601/ca.crt

客户端证书: /opt/KUIN00601/etcd-client.crt

客户端密钥: /opt/KUIN00601/etcd-client.key

为给定实例创建快照预计能在几秒钟内完成。 如果该操作似乎挂起,则命令可能有问题。用 CTRL + C 来取消操作,然后重试。

然后通过位于/data/backup/etcd-snapshot-previous.db 的先前备份的快照进行还原。


考点相关内容分析

etcdctl

etcd 是 一致且高可用的键值存储,用作 Kubernetes 所有集群数据的后台数据库。

# 单节点 etcd 集群
$ etcd --listen-client-urls=http://$PRIVATE_IP:2379  --advertise-client-urls=http://$PRIVATE_IP:2379
# 多节点启动 Kubernetes API 服务器
$ etcd --listen-client-urls=http://$IP1:2379,http://$IP2:2379,http://$IP3:2379,http://$IP4:2379,http://$IP5:2379 --advertise-client-urls=http://$IP1:2379,http://$IP2:2379,http://$IP3:2379,http://$IP4:2379,http://$IP5:2379
# 制作快照
$ ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \
  --cacert=<trusted-ca-file> --cert=<cert-file> --key=<key-file> \
  snapshot save <backup-file-location>
# 恢复 etcd 集群
$ ETCDCTL_API=3 etcdctl --data-dir <data-dir-location> snapshot restore snapshot.db

题目操作步骤

  1. (标准步骤) 进入题目指定集群
$ kubectl config use-context xk8s
  1. 切换到 master01 节点下
$ ssh master01
$ sudo -i
  1. 制作快照
# 先查看一下当前的 node 节点信息,用于跟回滚后结果进行对比
$ kubectl get pod -A
# 根据题目要求创建快照
$ 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 /var/lib/backup/etcd-snapshot.db

在这里插入图片描述

检查命令

$ ETCDCTL_API=3 etcdctl snapshot status /var/lib/backup/etcd-snapshot.db -wtable

在这里插入图片描述

  1. 执行还原操作
# 新建临时文件夹
$ mkdir -p /opt/linshi
# 备份原 k8s 文件
$ mv /etc/kubernetes/manifests/kube-* /opt/linshi
# 执行还原操作
$ ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 --data-dir=/var/lib/etcd-restore snapshot restore /data/backup/etcd-snapshot-previous.db
# 检查新目录
$ ls /var/lib/etcd-restore

在这里插入图片描述
5. 修改 etcd 配置文件

$ vim /etc/kubernetes/manifests/etcd.yaml

priorityClassName: system-node-critical
  securityContext:
    seccompProfile:
      type: RuntimeDefault
  volumes:
  - hostPath:
      path: /etc/kubernetes/pki/etcd
      type: DirectoryOrCreate
    name: etcd-certs
  - hostPath:
      path: /var/lib/etcd-restore # 修改位置
      type: DirectoryOrCreate
    name: etcd-data
status: {}
  1. 将备份位置复原
# 备份还原
$ mv /opt/linshi/kube-* /etc/kubernetes/manifests/

# 重启 kubelet
$ systemctl daemon-reload
$ systemctl restart kubelet

答完题要退回 node01 使用 exit 或者是 Ctrl + D

检查命令

# 通过复原后的node 信息与 复原前进行比较,不同即为成功
$ kubectl get pod -A

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

在这里插入图片描述

  • 23
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

也言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值