Menu Close

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/*