29.2.8. 配置高可用性服务


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

  1. 标记将用于服务的节点。如果您在 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"
  2. 创建服务帐户。您可以使用 ipfailover 或在使用路由器(取决于环境策略)时,您可以重复利用之前创建的 router 服务帐户或新的 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 都有自己的 VIP,它们都使用标记为第一步中的 ha-svc-nodes=geo-us-west 的节点。确保副本数量与标签设置中列出的节点数匹配第一步。

    重要

    路由器geo-cache 和 ipfailover 所有创建部署配置,且所有这些配置都必须具有不同的名称。

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

$ 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 的端口。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.