3.5.2. 恢复 etcd 数据
在静态 pod 中恢复 etcd 前:
etcdctl
二进制文件必须可用,或者在容器化安装中,rhel7/etcd
容器必须可用。您可以运行以下命令,使用 etcd 软件包安装
etcdctl
二进制文件:yum install etcd
# yum install etcd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 该软件包还会安装 systemd 服务。禁用并屏蔽该服务,使其在 etcd 在静态 pod 中运行时不会作为 systemd 服务运行。通过禁用并屏蔽该服务,确保您不会意外启动该服务,并防止它在重启系统时自动重启该服务。
systemctl disable etcd.service
# systemctl disable etcd.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl mask etcd.service
# systemctl mask etcd.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
在静态 pod 上恢复 etcd:
如果 pod 正在运行,通过将 pod 清单 YAML 文件移到另一个目录中来停止 etcd pod:
mkdir -p /etc/origin/node/pods-stopped
# mkdir -p /etc/origin/node/pods-stopped
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mv /etc/origin/node/pods/etcd.yaml /etc/origin/node/pods-stopped
# mv /etc/origin/node/pods/etcd.yaml /etc/origin/node/pods-stopped
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 移动所有旧数据:
mv /var/lib/etcd /var/lib/etcd.old
# mv /var/lib/etcd /var/lib/etcd.old
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以使用 etcdctl 在恢复 pod 的节点中重新创建数据。
将 etcd 快照恢复到 etcd pod 的挂载路径:
export ETCDCTL_API=3
# export ETCDCTL_API=3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从 etcd.conf 文件获取集群的适当值。
在数据目录中设置所需的权限和 selinux 上下文:
restorecon -RvF /var/lib/etcd/
# restorecon -RvF /var/lib/etcd/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过将 pod 清单 YAML 文件移到所需目录中来重启 etcd pod:
mv /etc/origin/node/pods-stopped/etcd.yaml /etc/origin/node/pods/
# mv /etc/origin/node/pods-stopped/etcd.yaml /etc/origin/node/pods/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow