第 10 章 vSphere 上集群的多个区域和区域配置


作为管理员,您可以为在 VMware vSphere 实例上运行的 OpenShift Container Platform 集群指定多个区域和区域。此配置降低了硬件故障或网络中断的风险,从而导致集群失败。

故障域配置列出了创建拓扑的参数。以下列表指出其中一些参数:

  • computeCluster
  • datacenter
  • datastore
  • networks
  • resourcePool

为 OpenShift Container Platform 集群定义了多个区域和区域后,您可以创建或将节点迁移到另一个故障域。

重要

如果要将预先存在的 OpenShift Container Platform 集群计算节点迁移到故障域,您必须为计算节点定义一个新的计算机器集。此新机器集可以根据故障域的拓扑扩展计算节点,并缩减预先存在的计算节点。

云供应商将 topology.kubernetes.io/zonetopology.kubernetes.io/region 标签添加到机器集资源置备的任何计算节点。

如需更多信息,请参阅创建计算机器集

10.1. 在 vSphere 上为集群指定多个区域和区域

您可以配置 infrastructure.config.openshift.io 配置资源,为在 VMware vSphere 实例上运行的 OpenShift Container Platform 集群指定多个区域和区域。

云控制器管理器和 vSphere Container Storage Interface (CSI) Operator 驱动程序的拓扑感知功能需要有关托管 OpenShift Container Platform 集群的 vSphere 拓扑的信息。此拓扑信息存在于 infrastructure.config.openshift.io 配置资源中。

在为集群指定区域和区域前,您必须确保所有数据中心和计算集群都包含标签,以便云供应商可以向节点添加标签。例如,如果 datacenter-1 代表 region-acompute-cluster-1 代表 zone-1,则云供应商会将值为 region-aopenshift-region 目录标签添加到 datacenter-1。另外,云供应商将值为 zone-1openshift-zone 目录标签添加到 compute-cluster-1

注意

您可以将具有 vMotion 功能的 control plane 节点迁移到故障域。将这些节点添加到故障域后,云供应商会为这些节点添加 topology.kubernetes.io/zonetopology.kubernetes.io/region 标签。

先决条件

  • 您在 vCenter 服务器上创建了 openshift-regionopenshift-zone 标签类别。
  • 您可以确保每个数据中心和计算集群都包含代表相关区域或区域的名称的标签,或两者。
  • 可选:如果您为安装程序定义了 APIIngress 静态 IP 地址,您必须确保所有区域和区共享一个通用的第 2 层网络。此配置可确保 API 和 Ingress 虚拟 IP (VIP) 地址可以与集群交互。
重要

如果您在创建节点或迁移节点前没有向所有数据中心和计算机器提供标签,则云供应商无法将 topology.kubernetes.io/zonetopology.kubernetes.io/region 标签添加到节点。这意味着服务无法将流量路由到节点。

流程

  1. 运行以下命令,编辑集群的 infrastructure.config.openshift.io 自定义资源定义(CRD),以指定资源的 failureDomains 部分中的多个区域和区域:

    $ oc edit infrastructures.config.openshift.io cluster

    名为 cluster 的实例的 infrastructure.config.openshift.io CRD 示例,其配置中定义了多个区域和区域

    spec:
      cloudConfig:
        key: config
        name: cloud-provider-config
      platformSpec:
        type: vSphere
        vsphere:
          vcenters:
            - datacenters:
                - <region_a_datacenter>
                - <region_b_datacenter>
              port: 443
              server: <your_vcenter_server>
          failureDomains:
            - name: <failure_domain_1>
              region: <region_a>
              zone: <zone_a>
              server: <your_vcenter_server>
              topology:
                datacenter: <region_a_dc>
                computeCluster: "</region_a_dc/host/zone_a_cluster>"
                resourcePool: "</region_a_dc/host/zone_a_cluster/Resources/resource_pool>"
                datastore: "</region_a_dc/datastore/datastore_a>"
                networks:
                - port-group
            - name: <failure_domain_2>
              region: <region_a>
              zone: <zone_b>
              server: <your_vcenter_server>
              topology:
                computeCluster: </region_a_dc/host/zone_b_cluster>
                datacenter: <region_a_dc>
                datastore: </region_a_dc/datastore/datastore_a>
                networks:
                - port-group
            - name: <failure_domain_3>
              region: <region_b>
              zone: <zone_a>
              server: <your_vcenter_server>
              topology:
                computeCluster: </region_b_dc/host/zone_a_cluster>
                datacenter: <region_b_dc>
                datastore: </region_b_dc/datastore/datastore_b>
                networks:
                - port-group
          nodeNetworking:
            external: {}
            internal: {}

    重要

    创建故障域并在 VMware vSphere 集群的 CRD 中定义后,不得修改或删除故障域。对此配置执行任何操作可能会影响 control plane 机器的可用性和容错。

  2. 保存资源文件以应用更改。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.