第 4 章 替换 master 主机
您可以替换失败的 master 主机。
首先,从集群中删除失败的 master 主机,然后添加替换的 master 主机。如果失败的 master 主机运行 etcd,请通过在新的 master 主机上添加 etcd 来扩展 etcd。
您必须完成本主题的所有部分。
4.1. 弃用 master 主机
Master 主机运行重要的服务,如 OpenShift Container Platform API 和控制器服务。为了弃用 master 主机,必须停止这些服务。
OpenShift Container Platform API 服务是一个主动/主动服务,因此只要请求发送到单独的 master 服务器,停止该服务不会影响环境。但是,OpenShift Container Platform 控制器服务是一个主动/被动服务,服务使用 etcd 来决定活跃的 master。
在多主控机架构中弃用 master 主机包括从负载均衡器池中移除 master,以避免尝试使用该 master 的新连接。这个过程很大程度上依赖于使用的负载均衡器。以下步骤显示从 haproxy
中删除 master 的详细信息。如果 OpenShift Container Platform 在云供应商上运行或使用 F5
设备,请查看特定的产品文档来从轮转中删除 master。
流程
删除
/etc/haproxy/haproxy.cfg
配置文件中的backend
部分。例如,如果使用haproxy
弃用名为master-0.example.com
的 master,请确保从以下内容中删除主机名:backend mgmt8443 balance source mode tcp # MASTERS 8443 server master-1.example.com 192.168.55.12:8443 check server master-2.example.com 192.168.55.13:8443 check
然后,重新启动
haproxy
服务。$ sudo systemctl restart haproxy
从负载均衡器中删除 master 后,通过将定义文件移出静态 pod dir /etc/origin/node/pods 来禁用 API 和控制器服务:
# mkdir -p /etc/origin/node/pods/disabled # mv /etc/origin/node/pods/controller.yaml /etc/origin/node/pods/disabled/: +
- 由于 master 主机是一个可调度的 OpenShift Container Platform 节点,因此请按照 弃用节点主机 部分中的步骤进行操作。
从
/etc/ansible/hosts
Ansible 清单文件中的[masters]
和[nodes]
组移除 master 主机,以避免在使用该清单文件运行任何 Ansible 任务时出现问题。警告弃用 Ansible 清单中列出的第一个 master 主机需要额外的举措。
/etc/origin/master/ca.serial.txt
文件仅对 Ansible 主机清单中列出的第一个 master 生成。如果您弃用了第一个 master 主机,请在进程前将/etc/origin/master/ca.serial.txt
文件复制到其余 master 主机中。重要在运行多个 master 的 OpenShift Container Platform 3.11 集群中,其中一个 master 节点会包括额外的 CA 证书(
/etc/origin/master
,/etc/etcd/ca
, 和/etc/etcd/generated_certs
)。这些是应用程序节点和 etcd 节点扩展操作所必需的,如果 CA 主机 master 已被弃用,则必须在另一个 master 节点上恢复。kubernetes
服务将 master 主机 IP 作为端点包含在内。要验证 master 已被正确弃用,请查看kubernetes
服务输出并查看已弃用的 master 是否已被删除:$ oc describe svc kubernetes -n default Name: kubernetes Namespace: default Labels: component=apiserver provider=kubernetes Annotations: <none> Selector: <none> Type: ClusterIP IP: 10.111.0.1 Port: https 443/TCP Endpoints: 192.168.55.12:8443,192.168.55.13:8443 Port: dns 53/UDP Endpoints: 192.168.55.12:8053,192.168.55.13:8053 Port: dns-tcp 53/TCP Endpoints: 192.168.55.12:8053,192.168.55.13:8053 Session Affinity: ClientIP Events: <none>
主机成功弃用后,可以安全地删除之前运行主控机的主机。