Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

第 37 章 替换失败的 etcd 成员

如果一些 etcd 成员失败,但您仍有 etcd 成员的仲裁,您可以使用剩余的 etcd 成员以及添加更多 etcd 成员的数据,而无需 etcd 或集群停机。

37.1. 删除失败的 etcd 节点

在添加新 etcd 节点前,请删除失败的节点。

流程

  1. 在活跃的 etcd 主机中删除失败的 etcd 节点:

    # etcdctl -C https://<surviving host IP>:2379 \
      --ca-file=/etc/etcd/ca.crt     \
      --cert-file=/etc/etcd/peer.crt     \
      --key-file=/etc/etcd/peer.key cluster-health
    
    # etcdctl -C https://<surviving host IP>:2379 \
      --ca-file=/etc/etcd/ca.crt     \
      --cert-file=/etc/etcd/peer.crt     \
      --key-file=/etc/etcd/peer.key member remove <failed member identifier>
  2. 通过删除 etcd pod 定义来停止失败的 etcd 成员中的 etcd 服务:

    # mkdir -p /etc/origin/node/pods-stopped
    # mv /etc/origin/node/pods/* /etc/origin/node/pods-stopped/
  3. 删除 etcd 目录的内容:

    重要

    建议在删除内容前将此目录备份到非集群的位置。您可以在成功恢复后删除此备份。

    # rm -rf /var/lib/etcd/*