14.2. 在集群中配置 IP 故障切换
作为集群管理员,您可以在整个集群中或在其中的一部分节点(由标签选项器定义)中配置 IP 故障转移。您还可以在集群中配置多个 IP 故障转移部署,每个 IP 故障转移部署相互独立。
IP 故障转移部署确保故障转移 pod 在符合限制或使用的标签的每个节点上运行。
此 pod 运行 Keepalived,它可以监控端点,并在第一个节点无法访问服务或端点时使用 Virtual Router Redundancy Protocol(VRRP)从一个节点切换到另一个节点的虚拟 IP(VIP)。
				对于生产环境,设置一个选择器(selector),用于选择至少两个节点,并设置与所选节点数量相等的副本。
			
先决条件
- 
						以具有 cluster-admin权限的用户身份登录集群。
- 已创建一个 pull secret。
- 仅限 Red Hat OpenStack Platform (RHOSP): - 您在目标环境中安装了 RHOSP 客户端 (RHCOS 文档)。
- 
								您还下载了 RHOSP openrc.shrc 文件 (RHCOS 文档)。
 
流程
- 创建 IP 故障转移服务帐户: - oc create sa ipfailover - $ oc create sa ipfailover- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 为 - hostNetwork更新安全性上下文约束(SCC):- oc adm policy add-scc-to-user privileged -z ipfailover - $ oc adm policy add-scc-to-user privileged -z ipfailover- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - oc adm policy add-scc-to-user hostnetwork -z ipfailover - $ oc adm policy add-scc-to-user hostnetwork -z ipfailover- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 仅限 Red Hat OpenStack Platform (RHOSP):完成以下步骤,使在 RHOSP 端口上可以访问故障转移 VIP 地址。 - 使用 RHOSP CLI 在 RHOSP 集群的 - allowed_address_pairs参数中显示默认的 RHOSP API 和 VIP 地址:- openstack port show <cluster_name> -c allowed_address_pairs - $ openstack port show <cluster_name> -c allowed_address_pairs- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - *Field* *Value* allowed_address_pairs ip_address='192.168.0.5', mac_address='fa:16:3e:31:f9:cb' ip_address='192.168.0.7', mac_address='fa:16:3e:31:f9:cb'- *Field* *Value* allowed_address_pairs ip_address='192.168.0.5', mac_address='fa:16:3e:31:f9:cb' ip_address='192.168.0.7', mac_address='fa:16:3e:31:f9:cb'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 为 IP 故障转移部署设置不同的 VIP 地址,并通过在 RHOSP CLI 中输入以下命令使 RHOSP 端口上的地址访问。不要将任何默认的 RHOSP API 和 VIP 地址设置为 IP 故障转移部署的故障转移 VIP 地址。 - 在 RHOSP 端口中添加 - 1.1.1.1故障转移 IP 地址作为允许的地址的示例。- openstack port set <cluster_name> --allowed-address ip-address=1.1.1.1,mac-address=fa:fa:16:3e:31:f9:cb - $ openstack port set <cluster_name> --allowed-address ip-address=1.1.1.1,mac-address=fa:fa:16:3e:31:f9:cb- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 创建部署 YAML 文件,为您的部署配置 IP 故障切换。请参阅后续步骤中的"IP 故障转移配置的部署 YAML 示例"。
- 在 IP 故障转移部署中指定以下规格,以便将故障转移 VIP 地址传递给 - OPENSHIFT_HA_VIRTUAL_IPS环境变量:- 将 - 1.1.1.1VIP 地址添加到- OPENSHIFT_HA_VIRTUAL_IPS的示例- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
- 创建部署 YAML 文件来配置 IP 故障切换。 注意- 对于 Red Hat OpenStack Platform (RHOSP),您不需要重新创建部署 YAML 文件。您已作为之前说明的一部分创建了此文件。 - IP 故障转移配置的部署 YAML 示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- IP 故障转移部署的名称。
- 2
- 要复制的 IP 地址范围列表。必须提供.例如,1.2.3.4-6,1.2.3.9。
- 3
- 为 VRRP 创建的组数量。如果没有设置,则会为通过OPENSHIFT_HA_VIP_GROUPS变量指定的每个虚拟 IP 范围创建一个组。
- 4
- IP 故障切换用于发送 VRRP 流量的接口名称。默认情况下使用eth0。
- 5
- IP 故障转移 pod 会尝试在每个 VIP 上打开到此端口的 TCP 连接。如果建立连接,则服务将被视为正在运行。如果此端口设为0,则测试会始终通过。默认值为80。
- 6
- 用于设置虚拟路由器 ID 的偏移值。使用不同的偏移值可以在同一集群中存在多个 IP 故障转移配置。默认偏移值为0,允许的范围是0到255。
- 7
- 要创建的副本数。这必须与 IP 故障转移部署配置中的spec.replicas值匹配。默认值为2。
- 8
- iptables链的名称,用于自动添加允许 VRRP 流量的- iptables规则。如果没有设置值,则不会添加- iptables规则。如果链不存在,则不会创建链,Keepalived 在单播模式下运行。默认为- INPUT。
- 9
- 当状态发生变化时运行的脚本的 pod 文件系统的完整路径名称。
- 10
- 定期运行的脚本的 pod 文件系统中的完整路径名称,以验证应用是否正在运行。
- 11
- 处理新的具有更高优先级主机的策略。默认值为preempt_delay 300,这会导致,在有一个较低优先级的 master 提供 VIP 时,Keepalived 实例在 5 分钟后会接管 VIP。
- 12
- 检查脚本运行的期间(以秒为单位)。默认值为2。
- 13
- 在创建部署之前创建 pull secret,否则您将在创建部署时收到错误。