29.2.8. 配置高可用性服务
以下示例描述了如何在一组节点上设置具有 IP 故障切换的高可用性 路由器和 geo-cache 网络服务。
标记将用于服务的节点。如果您在 OpenShift Container Platform 集群的所有节点上运行服务,且将使用集群中所有节点的 VIP,则此步骤可以是可选。
以下示例定义了在 US west geography ha-svc-nodes=geo-us-west 中为流量提供服务的节点的标签:
$ oc label nodes openshift-node-{5,6,7,8,9} "ha-svc-nodes=geo-us-west"
创建服务帐户。您可以使用 ipfailover 或在使用路由器(取决于环境策略)时,您可以重复利用之前创建的 router 服务帐户或新的 ipfailover 服务帐户。
以下示例在 default 命名空间中创建一个名为 ipfailover 的新服务帐户:
$ oc create serviceaccount ipfailover -n default
将 default 命名空间中的 ipfailover 服务帐户添加到 特权 SCC:
$ oc adm policy add-scc-to-user privileged system:serviceaccount:default:ipfailover
启动 路由器和 geo-cache 服务。
重要由于 ipfailover 在第 1 步中的所有节点上运行,因此建议在所有第 1 步中运行路由器/服务。
使用与第一步中使用的标签匹配的节点启动路由器。以下示例使用 ipfailover 服务帐户运行五个实例:
$ oc adm router ha-router-us-west --replicas=5 \ --selector="ha-svc-nodes=geo-us-west" \ --labels="ha-svc-nodes=geo-us-west" \ --service-account=ipfailover
使用每个节点上的副本运行 geo-cache 服务。对于运行 geo-cache 服务的信息,请参阅示例配置。
重要确保将文件中引用的 myimages/geo-cache 容器镜像替换为您的预期镜像。将副本数改为 geo-cache 标签的节点数量。检查标签是否与第一步中使用的标签匹配。
$ oc create -n <namespace> -f ./examples/geo-cache.json
为路由器和 geo-cache 服务配置 ipfailover。每个 VIP 都有自己的 VIP,它们都使用标记为第一步中的 ha-svc-nodes=geo-us-west 的节点。确保副本数量与标签设置中列出的节点数匹配第一步。
重要路由器、geo-cache 和 ipfailover 所有创建部署配置,且所有这些配置都必须具有不同的名称。
指定 ipfailover 应该在所需实例上监控的 VIP 和端口号。
路由器的 ipfailover 命令:
$ oc adm ipfailover ipf-ha-router-us-west \ --replicas=5 --watch-port=80 \ --selector="ha-svc-nodes=geo-us-west" \ --virtual-ips="10.245.2.101-105" \ --iptables-chain="INPUT" \ --service-account=ipfailover --create
以下是正在侦听端口 9736 的 geo-cache 服务的
oc adm ipfailover
命令。由于有两种ipfailover
部署配置,必须设置--vrrp-id-offset
,以便每个 VIP 都获得自己的偏移值。在本例中,设置值为10
表示ipf-ha-router-us-west
最多可有 10 个 VIPs(0-9),因为ipf-ha-geo-cache
从 10 开始。$ oc adm ipfailover ipf-ha-geo-cache \ --replicas=5 --watch-port=9736 \ --selector="ha-svc-nodes=geo-us-west" \ --virtual-ips=10.245.3.101-105 \ --vrrp-id-offset=10 \ --service-account=ipfailover --create
在上面的命令中,每个节点上都有 ipfailover, router, 和 geo-cache pod。每个 ipfailover 配置的 VIP 集合不得重叠,且不能在外部或云环境中的其他位置使用。每个示例中的五个 VIP 地址
10.245.{2,3}.101-105
由两个 ipfailover 部署配置提供。IP 故障转移动态选择在其上提供哪个地址。管理员设置外部 DNS 以指向 VIP 地址,知道所有 路由器 VIP 都指向同一 路由器,所有 geo-cache VIP 都指向相同的 geo-cache 服务。只要一个节点保持运行,就会提供所有 VIP 地址。
29.2.8.1. 部署 IP 故障切换 Pod
部署 ipfailover 路由器以监控在节点端口 32439 和外部 IP 地址(如 postgresql-ingress 服务中定义的)的 postgresql 侦听节点: