$ oc edit infrastructures.config.openshift.io cluster
作为管理员,您可以为在 VMware vSphere 实例上运行的 OpenShift Container Platform 集群指定多个区域和区域。此配置可降低硬件故障或网络中断导致集群故障的风险。
故障域配置列出了创建拓扑的参数。以下列表列出了一些这些参数
computeCluster
datacenter
datastore
networks
resourcePool
定义了 OpenShift Container Platform 集群的多个区域和区域后,您可以创建或将节点迁移到另一个故障域。
如果要将预先存在的 OpenShift Container Platform 集群计算节点迁移到故障域,则必须为计算节点定义新的计算机器集。此新的机器集可以根据故障域的拓扑结构扩展计算节点,并缩减预先存在的计算节点。 云提供商会向机器集资源配置的任何计算节点添加 更多信息,请参见创建计算机器集。 |
您可以配置infrastructures.config.openshift.io
配置资源,以指定在 VMware vSphere 实例上运行的 OpenShift Container Platform 集群的多个区域和区域。
云控制器管理器和 vSphere 容器存储接口 (CSI) 运算符驱动程序的拓扑感知功能需要有关托管 OpenShift Container Platform 集群的 vSphere 拓扑的信息。此拓扑信息存在于infrastructures.config.openshift.io
配置资源中。
在为集群指定区域和区域之前,必须确保所有数据中心和计算集群都包含标签,以便云提供商可以向您的节点添加标签。例如,如果data-center-1
代表region-a
,而compute-cluster-1
代表zone-1
,则云提供商会向data-center-1
添加值为region-a
的openshift-region
类别标签。此外,云提供商还会向compute-cluster-1
添加值为zone-1
的openshift-zone
类别标签。
您可以使用 vMotion 功能将控制平面节点迁移到故障域。将这些节点添加到故障域后,云提供商会向这些节点添加 |
您已在 vCenter 服务器上创建了openshift-region
和openshift-zone
标签类别。
您已确保每个数据中心和计算集群都包含表示其关联区域或区域(或两者)名称的标签。
可选:如果您为安装程序定义了**API**和**Ingress**静态 IP 地址,则必须确保所有区域和区域共享一个公共的 2 层网络。此配置可确保 API 和 Ingress 虚拟 IP (VIP) 地址可以与您的集群交互。
如果您在创建节点或迁移节点之前未向所有数据中心和计算集群提供标签,则云提供商无法向节点添加 |
编辑集群的infrastructures.config.openshift.io
自定义资源定义 (CRD),以在资源的failureDomains
部分中指定多个区域和区域,方法是运行以下命令
$ oc edit infrastructures.config.openshift.io cluster
cluster
的实例的示例infrastructures.config.openshift.io
CRD,其配置中定义了多个区域和可用区spec:
cloudConfig:
key: config
name: cloud-provider-config
platformSpec:
type: vSphere
vsphere:
vcenters:
- datacenters:
- <region_a_data_center>
- <region_b_data_center>
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集群创建并定义故障域后,请勿修改或删除该故障域。对该配置执行任何这些操作都可能会影响控制平面机器的可用性和容错能力。 |
保存资源文件以应用更改。
您可以将集群配置为使用多层2网络配置,以便节点之间的数据传输可以跨越多个网络。
您已配置机器之间的网络连接,以便集群组件可以相互通信。
如果您使用安装程序预配的基础架构安装了集群,则必须确保所有控制平面节点共享一个公共的2层网络。此外,请确保为 Ingress Pod 调度配置的计算节点共享一个公共的2层网络。
如果您需要计算节点跨越多个2层网络,您可以创建可以托管 Ingress Pod 的基础架构节点。
如果您需要跨其他2层网络供应工作负载,您可以创建vSphere上的计算机器集,然后将这些工作负载迁移到目标2层网络。
如果您在您提供(定义为用户预配的基础架构)的基础架构上安装了集群,请完成以下操作以满足您的需求
配置您的API负载均衡器和网络,以便负载均衡器可以访问控制平面节点上的API和机器配置服务器。
配置您的 Ingress 负载均衡器和网络,以便负载均衡器可以访问计算节点或基础架构节点上的 Ingress Pod。
您必须在集群范围的基础架构infrastructures.config.openshift.io
自定义资源定义 (CRD) 中为特定参数设置值,以便为在 VMware vSphere 实例上运行的 OpenShift Container Platform 集群定义多个区域和可用区。
下表列出了为 OpenShift Container Platform 集群定义多个区域和可用区的必填参数
参数 | 描述 |
---|---|
|
OpenShift Container Platform 集群的vCenter服务器。您可以指定单个vCenter,也可以指定最多3个vCenter(目前为技术预览功能)。 |
|
将创建或当前存在与 OpenShift Container Platform 集群关联的虚拟机的 vCenter 数据中心。 |
|
vCenter服务器的TCP端口。 |
|
vCenter服务器的完全限定域名 (FQDN)。 |
|
故障域列表。 |
|
故障域的名称。 |
|
分配给故障域拓扑的 |
|
分配给故障域拓扑的 |
|
与故障域关联的vCenter资源。 |
|
与故障域关联的数据中心。 |
|
与故障域关联的计算集群的完整路径。 |
|
与故障域关联的资源池的完整路径。 |
|
与故障域关联的数据存储的完整路径。 |
|
与故障域关联的端口组列表。只能定义一个端口组。 |