Menu Close

Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

29.2.8. 配置高可用性服务

以下示例描述了如何在一组节点上设置带有 IP 故障切换的高可用 路由器geo-cache 网络服务。

  1. 标记将用于服务的节点。如果您在 OpenShift Container Platform 集群中的所有节点上运行服务,并且将使用集群中所有节点中可以浮动的 VIP,则此步骤可以是可选的步骤。

    以下示例为美国 west geo ha-svc-nodes=geo-us-west 中的流量定义了一个标签:

    $ oc label nodes openshift-node-{5,6,7,8,9} "ha-svc-nodes=geo-us-west"
  2. 创建服务帐户。您可以使用 ipfailover 或使用路由器(取决于您的环境策略),您可以重复使用之前创建的 路由器 服务帐户或新的 ipfailover 服务帐户。

    以下示例在 default 命名空间中创建一个名为 ipfailover 的新服务帐户:

    $ oc create serviceaccount ipfailover -n default
  3. default 命名空间中的 ipfailover 服务帐户添加到 特权 SCC:

    $ oc adm policy add-scc-to-user privileged system:serviceaccount:default:ipfailover
  4. 启动 路由器geo-cache 服务。

    重要

    由于 ipfailover 在第 1 步的所有节点上运行,因此建议也在所有步骤 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
    2. 使用每个节点上的副本运行 geo-cache 服务。请参阅运行 geo-cache 服务 的示例配置

      重要

      确保将 文件中引用的 myimages/geo-cache 容器镜像替换为您的预期镜像。将副本数量更改为 geo-cache 标签中的节点数量。检查该标签是否与第一步中使用的标签匹配。

      $ oc create -n <namespace> -f ./examples/geo-cache.json
  5. 路由器geo-cache 服务配置 ipfailover。各自具有自己的 VIP,在第一步中都使用标有 ha-svc-nodes=geo-us-west 的相同节点。在第一步中,确保副本数量与标签设置中列出的节点数量匹配。

    重要

    路由器geo-cache 和 ipfailover all create 部署配置,且它们都必须具有不同的名称。

  6. 指定 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 路由器以监控 postgresql 侦听节点端口 32439 和外部 IP 地址,如 postgresql-ingress 服务中所定义:

$ oc adm ipfailover ipf-ha-postgresql \
    --replicas=1 \ 1
    --selector="app-type=postgresql" \ 2
    --virtual-ips=10.9.54.100 \ 3
    --watch-port=32439 \ 4
    --service-account=ipfailover --create
1 1
指定要部署的实例数。
2
限制部署 ipfailover 的位置。
3
要监控的虚拟 IP 地址。
4
在每个节点上监控 ipfailover 的端口。