This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.第 2 章 替换失败的 master 主机
本文档描述了替换单个 etcd 成员的过程。此流程假设集群中还存在 etcd 仲裁。
如果您丢失了大多数 master 主机,并导致 etcd 仲裁丢失,那么您必须遵循灾难恢复流程来恢复丢失的 master 主机 ,而不是这个过程。
如果 control plane 证书在被替换的成员中无效,则必须遵循从已过期 control plane 证书中恢复的步骤,而不是此过程。
替换单一 master 主机:
- 从 etcd 集群中删除成员。
- 如果 master 主机的 etcd 证书有效,请将 成员重新添加到 etcd 集群。
- 如果 master 主机没有 etcd 证书,或者它们已不再有效,请 生成 etcd 证书并将成员添加到 etcd 集群。
2.1. 从 etcd 集群中删除失败的 master 主机 复制链接链接已复制到粘贴板!
按照以下步骤从 etcd 集群中删除失败的 master 主机。
先决条件
-
您可以使用具有
cluster-admin
角色的用户访问集群。 - 有到 一个活跃的 master 主机的 SSH 访问权限。
流程
查看与 etcd 关联的 Pod 列表。
在一个已连接到集群的终端中,运行以下命令:
oc get pods -n openshift-etcd
$ oc get pods -n openshift-etcd NAME READY STATUS RESTARTS AGE etcd-member-ip-10-0-128-73.us-east-2.compute.internal 2/2 Running 0 15h etcd-member-ip-10-0-147-172.us-east-2.compute.internal 2/2 Running 7 122m etcd-member-ip-10-0-171-108.us-east-2.compute.internal 2/2 Running 0 15h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 访问活跃的 master 主机。
运行
etcd-member-remove.sh
脚本,并传递要删除的 etcd 成员名称:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证 etcd 成员已从集群中成功移除:
连接到正在运行的 etcd 容器:
[core@ip-10-0-128-73 ~] id=$(sudo crictl ps --name etcd-member | awk 'FNR==2{ print $1}') && sudo crictl exec -it $id /bin/sh
[core@ip-10-0-128-73 ~] id=$(sudo crictl ps --name etcd-member | awk 'FNR==2{ print $1}') && sudo crictl exec -it $id /bin/sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 etcd 容器中,导出连接到 etcd 所需的变量:
export ETCDCTL_API=3 ETCDCTL_CACERT=/etc/ssl/etcd/ca.crt ETCDCTL_CERT=$(find /etc/ssl/ -name *peer*crt) ETCDCTL_KEY=$(find /etc/ssl/ -name *peer*key)
sh-4.3# export ETCDCTL_API=3 ETCDCTL_CACERT=/etc/ssl/etcd/ca.crt ETCDCTL_CERT=$(find /etc/ssl/ -name *peer*crt) ETCDCTL_KEY=$(find /etc/ssl/ -name *peer*key)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在etcd容器中,执行
etcdctl member list
并确定删除的成员已不再输出列表中。Copy to Clipboard Copied! Toggle word wrap Toggle overflow