5.13. 创建安装配置文件


您可以自定义在 VMware vSphere 上安装的 OpenShift Container Platform 集群。

先决条件

  • 获取 OpenShift Container Platform 安装程序和集群的 pull secret。对于受限网络安装,这些文件位于您的镜像主机上。
  • 具有创建镜像 registry 时生成的 imageContentSources 值。
  • 获取您的镜像 registry 的证书内容。
  • 检索 Red Hat Enterprise Linux CoreOS(RHCOS)镜像,并将其上传到可访问的位置。
  • 在订阅级别获取服务主体权限。

流程

  1. 创建 install-config.yaml 文件。

    1. 进入包含安装程序的目录并运行以下命令:

      $ ./openshift-install create install-config --dir <installation_directory> 1
      1
      对于 <installation_directory>,请指定要存储安装程序创建的文件的目录名称。

      在指定目录时:

      • 验证该目录是否具有执行权限。在安装目录中运行 Terraform 二进制文件需要这个权限。
      • 使用空目录。有些安装资产,如 bootstrap X.509 证书的过期间隔较短,因此不得重复使用安装目录。如果要重复使用另一个集群安装中的单个文件,您可以将它们复制到您的目录中。但是,安装资产的文件名可能会在发行版本间有所变化。从以前的 OpenShift Container Platform 版本中复制安装文件时请小心。

        注意

        始终删除 ~/.powervs 目录,以避免重复使用过时的配置。运行以下命令:

        $ rm -rf ~/.powervs
    2. 在提示符处,提供云的配置详情:

      1. 可选: 选择用于访问集群机器的 SSH 密钥。

        注意

        对于您要在其上执行安装调试或灾难恢复的生产环境 OpenShift Container Platform 集群,请指定 ssh-agent 进程使用的 SSH 密钥。

      2. Select vsphere 作为目标平台。
      3. 指定 vCenter 实例的名称。
      4. 指定创建集群所需的权限的 vCenter 帐户的用户名和密码。

        安装程序连接到您的 vCenter 实例。

      5. 选择要连接的 vCenter 实例中的数据中心。

        注意

        创建安装配置文件后,您可以修改该文件以创建多个 vSphere 数据中心环境。这意味着您可以将 OpenShift Container Platform 集群部署到在单个 VMware vCenter 中运行的多个 vSphere 数据中心。有关创建此环境的更多信息,请参阅名为 VMware vSphere 区域和区启用的部分。

      6. 选择要使用的默认 vCenter 数据存储。
      7. 选择要在其中安装 OpenShift Container Platform 集群的 vCenter 集群。安装程序使用 vSphere 集群的 root 资源池作为默认资源池。
      8. 选择包含您配置的虚拟 IP 地址和 DNS 记录的 vCenter 实例中的网络。
      9. 输入您为 control plane API 访问配置的虚拟 IP 地址。
      10. 输入您为集群入口配置的虚拟 IP 地址。
      11. 输入基域。这个基域必须与您配置的 DNS 记录中使用的域相同。
      12. 为集群输入描述性名称。您输入的集群名称必须与您在配置 DNS 记录时指定的集群名称匹配。
      13. 粘贴 Red Hat OpenShift Cluster Manager 中的 pull secret
  2. install-config.yaml 文件中,将 platform.vsphere.clusterOSImage 的值设置为镜像位置或名称。例如:

    platform:
      vsphere:
          clusterOSImage: http://mirror.example.com/images/rhcos-43.81.201912131630.0-vmware.x86_64.ova?sha256=ffebbd68e8a1f2a245ca19522c16c86f67f9ac8e4e0c1f0a812b068b16f7265d
  3. 编辑 install-config.yaml 文件,以提供在受限网络中安装所需的额外信息。

    1. 更新 pullSecret 值,使其包含 registry 的身份验证信息:

      pullSecret: '{"auths":{"<mirror_host_name>:5000": {"auth": "<credentials>","email": "you@example.com"}}}'

      对于 <mirror_host_name>,请指定 您在镜像 registry 证书中指定的 registry 域名 ;对于 <credentials>, 请指定您的镜像 registry 的 base64 编码用户名和密码。

    2. 添加 additionalTrustBundle 参数和值。

      additionalTrustBundle: |
        -----BEGIN CERTIFICATE-----
        ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
        -----END CERTIFICATE-----

      该值必须是您用于镜像 registry 的证书文件内容。证书文件可以是现有的可信证书颁发机构,也可以是您为镜像 registry 生成的自签名证书。

    3. 添加镜像内容资源,类似于以下 YAML 摘录:

      imageContentSources:
      - mirrors:
        - <mirror_host_name>:5000/<repo_name>/release
        source: quay.io/openshift-release-dev/ocp-release
      - mirrors:
        - <mirror_host_name>:5000/<repo_name>/release
        source: registry.redhat.io/ocp/release

      对于这些值,请使用您在创建镜像 registry 时记录的 imageContentSources

  4. 对您需要的 install-config.yaml 文件进行任何其他修改。您可以在 安装配置参数部分找到有关可用参数 的更多信息。
  5. 备份 install-config.yaml 文件,以便您可以使用它安装多个集群。

    重要

    install-config.yaml 文件会在安装过程中消耗掉。如果要重复使用该文件,您必须立即备份该文件。

5.13.1. 安装配置参数

在部署 OpenShift Container Platform 集群前,您可以提供参数值来描述托管集群的云平台中的帐户,并选择性地自定义集群平台。在创建 install-config.yaml 安装配置文件时,您可以通过命令行为所需参数提供值。如果自定义集群,您可以修改 install-config.yaml 文件以提供有关平台的更多详情。

注意

安装后,您无法在 install-config.yaml 文件中修改这些参数。

5.13.1.1. 所需的配置参数

下表描述了所需的安装配置参数:

表 5.7. 所需的参数
参数描述

apiVersion

install-config.yaml 内容的 API 版本。当前版本为 v1。安装程序可能还支持旧的 API 版本。

字符串

baseDomain

云供应商的基域。基域用于创建到 OpenShift Container Platform 集群组件的路由。集群的完整 DNS 名称是 baseDomainmetadata.name 参数值的组合,其格式为 <metadata.name>.<baseDomain>

完全限定域名或子域名,如 example.com

metadata

Kubernetes 资源 ObjectMeta,其中只消耗 name 参数。

对象

metadata.name

集群的名称。集群的 DNS 记录是 {{.metadata.name}}.{{.baseDomain}} 的子域。

小写字母和连字符 (-) 的字符串,如 dev

platform

要执行安装的具体平台配置: alibabacloudawsbaremetalazuregcpibmcloudnutanixopenstackovirtpowervsvsphere{}。有关 platform.<platform> 参数的更多信息,请参考下表中您的特定平台。

对象

pullSecret

从 Red Hat OpenShift Cluster Manager 获取 pull secret,验证从 Quay.io 等服务中下载 OpenShift Container Platform 组件的容器镜像。

{
   "auths":{
      "cloud.openshift.com":{
         "auth":"b3Blb=",
         "email":"you@example.com"
      },
      "quay.io":{
         "auth":"b3Blb=",
         "email":"you@example.com"
      }
   }
}

5.13.1.2. 网络配置参数

您可以根据现有网络基础架构的要求自定义安装配置。例如,您可以扩展集群网络的 IP 地址块,或者提供不同于默认值的不同 IP 地址块。

仅支持 IPv4 地址。

注意

Red Hat OpenShift Data Foundation 灾难恢复解决方案不支持 Globalnet。对于区域灾难恢复场景,请确保为每个集群中的集群和服务网络使用非重叠的专用 IP 地址。

表 5.8. 网络参数
参数描述

networking

集群网络的配置。

对象

注意

您无法在安装后修改 网络 对象指定的参数。

networking.networkType

要安装的 Red Hat OpenShift Networking 网络插件。

OpenShiftSDNOVNKubernetesOpenShiftSDN 是 all-Linux 网络的 CNI 插件。OVNKubernetes 是 Linux 网络和包含 Linux 和 Windows 服务器的混合网络的 CNI 插件。默认值为 OVNKubernetes

networking.clusterNetwork

pod 的 IP 地址块。

默认值为 10.128.0.0/14,主机前缀为 /23

如果您指定了多个 IP 地址块,块不得重叠。

对象数组。例如:

networking:
  clusterNetwork:
  - cidr: 10.128.0.0/14
    hostPrefix: 23

networking.clusterNetwork.cidr

使用 networking.clusterNetwork 时需要此项。IP 地址块。

IPv4 网络。

无类别域间路由(CIDR)表示法中的 IP 地址块。IPv4 块的前缀长度介于 0 到 32 之间

networking.clusterNetwork.hostPrefix

分配给每个节点的子网前缀长度。例如,如果 hostPrefix 设为 23,则每个节点从 given cidr 中分配 a /23 子网。hostPrefix23 提供 510(2^(32 - 23)- 2)pod IP 地址。

子网前缀。

默认值为 23

networking.serviceNetwork

服务的 IP 地址块。默认值为 172.30.0.0/16

OpenShift SDN 和 OVN-Kubernetes 网络插件只支持服务网络的一个 IP 地址块。

CIDR 格式具有 IP 地址块的数组。例如:

networking:
  serviceNetwork:
   - 172.30.0.0/16

networking.machineNetwork

机器的 IP 地址块。

如果您指定了多个 IP 地址块,块不得重叠。

对象数组。例如:

networking:
  machineNetwork:
  - cidr: 10.0.0.0/16

networking.machineNetwork.cidr

使用 networking.machineNetwork 时需要此项。IP 地址块。libvirt 和 IBM Power Virtual Server 以外的所有平台的默认值为 10.0.0.0/16。对于 libvirt,默认值 为 192.168.126.0/24。对于 IBM Power Virtual Server,默认值为 192.168.0.0/24

CIDR 表示法中的 IP 网络块。

例如: 10.0.0.0/16

注意

networking.machineNetwork 设置为与首选 NIC 所在的 CIDR 匹配。

5.13.1.3. 可选的配置参数

下表描述了可选的安装配置参数:

表 5.9. 可选参数
参数描述

additionalTrustBundle

添加到节点可信证书存储中的 PEM 编码 X.509 证书捆绑包。配置了代理时,也可以使用此信任捆绑包。

字符串

功能

控制可选核心组件的安装。您可以通过禁用可选组件来减少 OpenShift Container Platform 集群的空间。如需更多信息,请参阅安装中的"集群功能"页面。

字符串数组

capabilities.baselineCapabilitySet

选择要启用的一组初始可选功能。有效值为 Nonev4.11v4.12vCurrent。默认值为 vCurrent

字符串

capabilities.additionalEnabledCapabilities

将可选功能集合扩展到您在 baselineCapabilitySet 中指定的范围。您可以在此参数中指定多个功能。

字符串数组

cpuPartitioningMode

启用工作负载分区,它会隔离 OpenShift Container Platform 服务、集群管理工作负载和基础架构 pod,以便在保留的一组 CPU 上运行。工作负载分区只能在安装过程中启用,且在安装后无法禁用。虽然此字段启用工作负载分区,但它不会将工作负载配置为使用特定的 CPU。如需更多信息,请参阅 Scalability and Performance 部分中的 Workload partitioning 页面。

NoneAllNodes.None 是默认值。

Compute

组成计算节点的机器的配置。

MachinePool 对象的数组。

compute.architecture

决定池中机器的指令集合架构。目前,不支持具有不同架构的集群。所有池都必须指定相同的架构。有效值为 amd64 (默认值)。

字符串

compute: 超线程:

是否在计算机器上启用或禁用并发多 线程或超线程。默认情况下,启用并发多线程以提高机器内核的性能。

重要

如果您禁用并发多线程,请确保您的容量规划考虑机器性能显著降低的情况。

enabledDisabled

compute.name

使用 compute 时需要此项。机器池的名称。

worker

compute.platform

使用 compute 时需要此项。使用此参数指定托管 worker 机器的云供应商。此参数值必须与 controlPlane.platform 参数值匹配。

alibabacloud,aws,azure,gcp,ibmcloud,nutanix,openstack,ovirt,powervs,vsphere, 或 {}

compute.replicas

要置备的计算机器数量,也称为 worker 机器。

大于或等于 2 的正整数。默认值为 3

featureSet

为功能集启用集群。功能集是 OpenShift Container Platform 功能的集合,默认情况下不启用。有关在安装过程中启用功能集的更多信息,请参阅"使用功能门启用功能"。

字符串.要启用的功能集的名称,如 TechPreviewNoUpgrade

controlPlane

组成 control plane 的机器的配置。

MachinePool 对象的数组。

controlPlane.architecture

决定池中机器的指令集合架构。目前,不支持具有不同架构的集群。所有池都必须指定相同的架构。有效值为 amd64 (默认值)。

字符串

controlPlane: 超线程:

是否在 control plane 机器上启用或禁用并发多 线程或超线程。默认情况下,启用并发多线程以提高机器内核的性能。

重要

如果您禁用并发多线程,请确保您的容量规划考虑机器性能显著降低的情况。

enabledDisabled

controlPlane.name

使用 controlPlane 时需要此项。机器池的名称。

master

controlPlane.platform

使用 controlPlane 时需要此项。使用此参数指定托管 control plane 机器的云供应商。此参数值必须与 compute.platform 参数值匹配。

alibabacloud,aws,azure,gcp,ibmcloud,nutanix,openstack,ovirt,powervs,vsphere, 或 {}

controlPlane.replicas

要置备的 control plane 机器数量。

唯一支持的值是 3,这是默认值。

credentialsMode

Cloud Credential Operator(CCO)模式。如果没有指定模式,CCO 会动态尝试决定提供的凭证的功能,在支持多个模式的平台上首选 mint 模式。

注意

不是所有 CCO 模式都支持所有云供应商。如需有关 CCO 模式的更多信息,请参阅集群 Operator 参考内容中的 Cloud Credential Operator 条目。

注意

如果您的 AWS 帐户启用了服务控制策略 (SCP),您必须将 credentialsMode 参数配置为 MintPassthroughManual

MintPassthroughManual 或空字符串("")。

imageContentSources

release-image 内容的源和存储库。

对象数组。包括一个 source 以及可选的 mirrors,如本表的以下行所述。

imageContentSources.source

使用 imageContentSources 时需要此项。指定用户在镜像拉取规格中引用的存储库。

字符串

imageContentSources.mirrors

指定可能还包含同一镜像的一个或多个仓库。

字符串数组

publish

如何发布或公开集群的面向用户的端点,如 Kubernetes API、OpenShift 路由。

内部或外部 .默认值为 External

在非云平台上不支持将此字段设置为 Internal

重要

如果将字段的值设为 Internal,集群将无法运行。如需更多信息,请参阅 BZ#1953035

sshKey

用于验证对集群机器的访问的 SSH 密钥。

注意

对于您要在其上执行安装调试或灾难恢复的生产环境 OpenShift Container Platform 集群,请指定 ssh-agent 进程使用的 SSH 密钥。

例如,sshKey: ssh-ed25519 AAAA..

  1. 不是所有 CCO 模式都支持所有云供应商。有关 CCO 模式的更多信息,请参阅身份验证和授权内容中的"管理云供应商凭证"条目。

5.13.1.4. 其他 VMware vSphere 配置参数

下表描述了其他 VMware vSphere 配置参数。

注意

platform.vsphere 参数为表中列出的每个参数添加前缀。

表 5.10. 其他 VMware vSphere 集群参数
参数描述
platform:
  vsphere:

描述托管集群的云平台中的帐户。您可以使用参数来自定义平台。如果您为机器池中的 compute 和 control plane 机器提供额外的配置设置,则不需要该参数。您只能为 OpenShift Container Platform 集群指定一个 vCenter 服务器。

vSphere 配置对象的字典

platform:
  vsphere:
    apiVIPs:

为 control plane API 访问配置的虚拟 IP (VIP) 地址。

注意

这个参数只适用于安装程序置备的基础架构,而无需配置外部负载均衡器。您不能在用户置备的基础架构中指定此参数。

多个 IP 地址

platform:
  vsphere:
    diskType:

可选:磁盘置备方法。如果没有设置,则默认值为 vSphere 默认存储策略。

有效值为 thinthickeagerZeroedThick

platform:
  vsphere:
    failureDomains:
      region:

如果为集群定义多个故障域,则必须将标签附加到每个 vCenter 数据中心。要定义区域,请使用 openshift-region 标签类别中的标签。对于单个 vSphere 数据中心环境,您不需要附加标签,但必须为参数输入一个字母数字值,如 datacenter

字符串

platform:
  vsphere:
    failureDomains:
      server:

指定 VMware vCenter 服务器的完全限定主机名或 IP 地址,以便客户端可以访问故障域资源。您必须将 server 器角色应用到 vSphere vCenter 服务器位置。

字符串

platform:
  vsphere:
    failureDomains:
      zone:

如果为集群定义多个故障域,则必须为每个 vCenter 集群附加标签。要定义一个区,请使用 openshift-zone 标签类别中的标签。对于单个 vSphere 数据中心环境,您不需要附加标签,但必须为参数输入一个字母数字值,如 cluster

字符串

platform:
  vsphere:
    failureDomains:
      topology:
        datacenter:

列出并定义 OpenShift Container Platform 虚拟机 (VM) 操作的数据中心。数据中心列表必须与 vcenters 字段中指定的数据中心列表匹配。

字符串

platform:
  vsphere:
    failureDomains:
      topology:
        datastore:

指定为故障域存储虚拟机文件的 vSphere 数据存储的路径。您必须将 datastore 角色应用到 vSphere vCenter 数据存储位置。

字符串

platform:
  vsphere:
    failureDomains:
      topology:
        folder:

可选:用户创建虚拟机的现有文件夹的绝对路径,例如 /<datacenter_name>/vm/<folder_name>/<subfolder_name>。如果没有提供这个值,安装程序会在数据中心虚拟机文件夹中创建一个顶层文件夹,其名称为基础架构 ID。如果您为集群提供基础架构,且您不想使用默认的 StorageClass 对象(名为 thin),您可以从 install-config.yaml 文件中省略 folder 参数。

字符串

platform:
  vsphere:
    failureDomains:
      topology:
        networks:

列出 vCenter 实例中包含您配置的虚拟 IP 地址和 DNS 记录的任何网络。

字符串

platform:
  vsphere:
    failureDomains:
      topology:
        resourcePool:

可选:安装程序创建虚拟机的现有资源池的绝对路径,例如 /<datacenter_name>/host/<cluster_name>/Resources/<resource_pool_name>/<optional_nested_resource_pool_name>。如果没有指定值,安装程序会在 /<datacenter_name>/host/<cluster_name>/Resources 下的集群的 root 中安装资源。

字符串

platform:
  vsphere:
    ingressVIPs:

为集群 Ingress 配置的虚拟 IP (VIP) 地址。

注意

这个参数只适用于安装程序置备的基础架构,而无需配置外部负载均衡器。您不能在用户置备的基础架构中指定此参数。

多个 IP 地址

platform:
  vsphere:
    vcenters:

配置连接详情,以便服务可以与 vCenter 服务器通信。目前,只支持单个 vCenter 服务器。

vCenter 配置对象的数组。

platform:
  vsphere:
    vcenters:
      datacenters:

列出并定义 OpenShift Container Platform 虚拟机 (VM) 操作的数据中心。数据中心列表必须与 failureDomains 字段中指定的数据中心列表匹配。

字符串

platform:
  vsphere:
    vcenters:
      password:

与 vSphere 用户关联的密码。

字符串

platform:
  vsphere:
    vcenters:
      port:

用于与 vCenter 服务器通信的端口号。

整数

platform:
  vsphere:
    vcenters:
      server:

vCenter 服务器的完全限定主机名(FQHN)或 IP 地址。

字符串

platform:
  vsphere:
    vcenters:
      user:

与 vSphere 用户关联的用户名。

字符串

5.13.1.5. 弃用的 VMware vSphere 配置参数

在 OpenShift Container Platform 4.13 中,以下 vSphere 配置参数已弃用。您可以继续使用这些参数,但安装程序不会在 install-config.yaml 文件中自动指定这些参数。

下表列出了每个已弃用的 vSphere 配置参数。

注意

platform.vsphere 参数为表中列出的每个参数添加前缀。

表 5.11. 弃用的 VMware vSphere 集群参数
参数描述
platform:
  vsphere:
    apiVIP:

为 control plane API 访问配置的虚拟 IP(VIP)地址。

注意

在 OpenShift Container Platform 4.12 及更新的版本中,apiVIP 配置设置已弃用。反之,使用 List 格式在 apiVIPs 配置设置中输入值。

IP 地址,如 128.0.0.1

platform:
  vsphere:
    cluster:

安装 OpenShift Container Platform 集群的 vCenter 集群。

字符串

platform:
  vsphere:
    datacenter:

定义 OpenShift Container Platform 虚拟机 (VM) 操作的数据中心。

字符串

platform:
  vsphere:
    defaultDatastore:

用于调配卷的默认数据存储名称。

字符串

platform:
  vsphere:
    folder:

可选:安装程序创建虚拟机的现有文件夹的绝对路径。如果没有提供这个值,安装程序会创建一个文件夹,它的名称为 datacenter 虚拟机文件夹中的基础架构 ID。

字符串,如 /<datacenter_name>/vm/<folder_name>/<subfolder_name>

platform:
  vsphere:
    ingressVIP:

为集群 Ingress 配置的虚拟 IP (VIP) 地址。

注意

在 OpenShift Container Platform 4.12 及更新的版本中,ingressVIP 配置设置已弃用。反之,使用 List 格式在 ingressVIPs 配置设置中输入值。

IP 地址,如 128.0.0.1

platform:
  vsphere:
    network:

包含您配置的虚拟 IP 地址和 DNS 记录的 vCenter 实例中的网络。

字符串

platform:
  vsphere:
    password:

vCenter 用户名的密码。

字符串

platform:
  vsphere:
    resourcePool:

可选:安装程序创建虚拟机的现有资源池的绝对路径。如果没有指定值,安装程序会在 /<datacenter_name>/host/<cluster_name>/Resources 下的集群的 root 中安装资源。

字符串,例如 /<datacenter_name>/host/<cluster_name>/Resources/<resource_pool_name>/<optional_nested_resource_pool_name>

platform:
  vsphere:
    username:

用于连接 vCenter 实例的用户名。此用户必须至少具有 vSphere 中 静态或动态持久性卷置备 所需的角色和权限。

字符串

platform:
  vsphere:
    vCenter:

vCenter 服务器的完全限定主机名或 IP 地址。

字符串

5.13.1.6. 可选的 VMware vSphere 机器池配置参数

下表描述了可选的 VMware vSphere 机器池配置参数。

注意

platform.vsphere 参数为表中列出的每个参数添加前缀。

表 5.12. 可选的 VMware vSphere 机器池参数
参数描述

clusterOSImage

安装程序从中下载 RHCOS 镜像的位置。您必须设置此参数才能在受限网络中执行安装。

HTTP 或 HTTPS URL,可选使用 SHA-256 校验和。例如: https://mirror.openshift.com/images/rhcos-<version>-vmware.<architecture>.ova

osDisk.diskSizeGB

以 GB 为单位的磁盘大小。

整数

cpus

用于分配虚拟机的虚拟处理器内核总数。platform.vsphere.cpus 的值必须是 platform.vsphere.coresPerSocket 值的倍数。

整数

coresPerSocket

虚拟机中每个插槽的内核数。虚拟机上的虚拟套接字数量为 platform .vsphere.cpus/platform.vsphere.coresPerSocket。control plane 节点和 worker 节点的默认值为 42

整数

memoryMB

以 MB 为单位的虚拟机内存大小。

整数

5.13.2. 安装程序置备的 VMware vSphere 集群的 install-config.yaml 文件示例

您可以自定义 install-config.yaml 文件,以指定有关 OpenShift Container Platform 集群平台的更多详情,或修改所需参数的值。

apiVersion: v1
baseDomain: example.com 1
compute: 2
- architecture: amd64
  name:  <worker_node>
  platform: {}
  replicas: 3
controlPlane: 3
  architecture: amd64
  name: <parent_node>
  platform: {}
  replicas: 3
metadata:
  creationTimestamp: null
  name: test 4
platform:
  vsphere: 5
    apiVIPs:
      - 10.0.0.1
    failureDomains: 6
    - name: <failure_domain_name>
      region: <default_region_name>
      server: <fully_qualified_domain_name>
      topology:
        computeCluster: "/<datacenter>/host/<cluster>"
        datacenter: <datacenter>
        datastore: "/<datacenter>/datastore/<datastore>" 7
        networks:
        - <VM_Network_name>
        resourcePool: "/<datacenter>/host/<cluster>/Resources/<resourcePool>" 8
        folder: "/<datacenter_name>/vm/<folder_name>/<subfolder_name>"
      zone: <default_zone_name>
    ingressVIPs:
    - 10.0.0.2
    vcenters:
    - datacenters:
      - <datacenter>
      password: <password>
      port: 443
      server: <fully_qualified_domain_name>
      user: administrator@vsphere.local
    diskType: thin 9
    clusterOSImage: http://mirror.example.com/images/rhcos-47.83.202103221318-0-vmware.x86_64.ova 10
fips: false
pullSecret: '{"auths":{"<local_registry>": {"auth": "<credentials>","email": "you@example.com"}}}' 11
sshKey: 'ssh-ed25519 AAAA...'
additionalTrustBundle: | 12
  -----BEGIN CERTIFICATE-----
  ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
  -----END CERTIFICATE-----
imageContentSources: 13
- mirrors:
  - <mirror_host_name>:<mirror_port>/<repo_name>/release
  source: <source_image_1>
- mirrors:
  - <mirror_host_name>:<mirror_port>/<repo_name>/release-images
  source: <source_image_2>
1
集群的基域。所有 DNS 记录都必须是这个基域的子域,并包含集群名称。
2 3
controlPlane 部分是一个单个映射,但 compute 部分是一系列映射。为满足不同数据结构的要求,compute 部分的第一行必须以连字符 - 开头,controlPlane 部分 的第一行则不以连字符开头。仅使用一个 control plane 池。
4
您在 DNS 记录中指定的集群名称。
5
可选:为 compute 和 control plane 机器提供额外的机器池参数配置。
6
建立地区和区域之间的关系。您可以使用 vCenter 对象(如 datastore 对象)定义故障域。故障域定义 OpenShift Container Platform 集群节点的 vCenter 位置。
7
保存虚拟机文件、模板和 ISO 镜像的 vSphere 数据存储路径。
重要

您可以指定数据存储集群中存在的任何数据存储路径。默认情况下,Storage vMotion 会自动为数据存储集群启用。红帽不支持 Storage vMotion,因此您必须禁用 Storage vMotion 以避免 OpenShift Container Platform 集群的数据丢失问题。

如果需要在多个数据存储间指定虚拟机,请使用 数据存储 对象在集群 install-config.yaml 配置文件中指定故障域。如需更多信息,请参阅"VMware vSphere 区域和区启用"。

8
可选:为创建机器提供现有资源池。如果没有指定值,安装程序将使用 vSphere 集群的 root 资源池。
9
vSphere 磁盘置备方法。
10
可从 bastion 服务器访问的 Red Hat Enterprise Linux CoreOS(RHCOS)镜像的位置。
11
对于 <local_registry>,请指定 registry 域名,以及您的镜像 registry 用来提供内容的可选端口。例如 registry.example.com 或 registry.example.com:5000。对于 <credentials>,请为您的镜像 registry 指定 base64 编码的用户名和密码。
12
提供用于镜像 registry 的证书文件内容。
13
提供命令输出中的 imageContentSources 部分来 镜像存储库。
注意

在 OpenShift Container Platform 4.12 及更新的版本中,apiVIPingressVIP 配置设置已弃用。反之,使用列表格式在 apiVIPsingressVIPs 配置设置中输入值。

5.13.3. 在安装过程中配置集群范围的代理

生产环境可能会拒绝直接访问互联网,而是提供 HTTP 或 HTTPS 代理。您可以通过在 install-config.yaml 文件中配置代理设置,将新的 OpenShift Container Platform 集群配置为使用代理。

先决条件

  • 您有一个现有的 install-config.yaml 文件。
  • 您检查了集群需要访问的站点,并确定它们中的任何站点是否需要绕过代理。默认情况下,所有集群出口流量都经过代理,包括对托管云供应商 API 的调用。如果需要,您将在 Proxy 对象的 spec.noProxy 字段中添加站点来绕过代理。

    注意

    Proxy 对象 status.noProxy 字段使用安装配置中的 networking.machineNetwork[].cidrnetworking.clusterNetwork[].cidrnetworking.serviceNetwork[] 字段的值填充。

    对于在 Amazon Web Services(AWS)、Google Cloud Platform(GCP)、Microsoft Azure 和 Red Hat OpenStack Platform(RHOSP)上安装,Proxy 对象 status.noProxy 字段也会使用实例元数据端点填充(169.254.169.254)。

流程

  1. 编辑 install-config.yaml 文件并添加代理设置。例如:

    apiVersion: v1
    baseDomain: my.domain.com
    proxy:
      httpProxy: http://<username>:<pswd>@<ip>:<port> 1
      httpsProxy: https://<username>:<pswd>@<ip>:<port> 2
      noProxy: example.com 3
    additionalTrustBundle: | 4
        -----BEGIN CERTIFICATE-----
        <MY_TRUSTED_CA_CERT>
        -----END CERTIFICATE-----
    additionalTrustBundlePolicy: <policy_to_add_additionalTrustBundle> 5
    1
    用于创建集群外 HTTP 连接的代理 URL。URL 方案必须是 http
    2
    用于创建集群外 HTTPS 连接的代理 URL。
    3
    要从代理中排除的目标域名、IP 地址或其他网络 CIDR 的逗号分隔列表。在域前面加上 . 以仅匹配子域。例如,.y.com 匹配 x.y.com,但不匹配 y.com。使用 * 绕过所有目的地的代理。您必须包含 vCenter 的 IP 地址以及用于其机器的 IP 范围。
    4
    如果提供,安装程序会在 openshift-config 命名空间中生成名为 user-ca-bundle 的配置映射,其包含代理 HTTPS 连接所需的一个或多个额外 CA 证书。然后,Cluster Network Operator 会创建 trusted-ca-bundle 配置映射,将这些内容与 Red Hat Enterprise Linux CoreOS(RHCOS)信任捆绑包合并, Proxy 对象的 trustedCA 字段中也会引用此配置映射。additionalTrustBundle 字段是必需的,除非代理的身份证书由来自 RHCOS 信任捆绑包的颁发机构签名。
    5
    可选:决定 Proxy 对象的配置以引用 trustedCA 字段中 user-ca-bundle 配置映射的策略。允许的值是 ProxyonlyAlways。仅在配置了 http/https 代理时,使用 Proxyonly 引用 user-ca-bundle 配置映射。使用 Always 始终引用 user-ca-bundle 配置映射。默认值为 Proxyonly
    注意

    安装程序不支持代理的 readinessEndpoints 字段。

    注意

    如果安装程序超时,重启并使用安装程序的 wait-for 命令完成部署。例如:

    $ ./openshift-install wait-for install-complete --log-level debug
  2. 保存该文件并在安装 OpenShift Container Platform 时引用。

安装程序会创建一个名为 cluster 的集群范围代理,该代理 使用 提供的 install-config.yaml 文件中的代理设置。如果没有提供代理设置,仍然会创建一个 cluster Proxy 对象,但它会有一个空 spec

注意

只支持名为 clusterProxy 对象,且无法创建额外的代理。

5.13.4. 为 VMware vCenter 配置区域和区域

您可以修改默认安装配置文件,以便您可以将 OpenShift Container Platform 集群部署到在单个 VMware vCenter 中运行的多个 vSphere 数据中心。

之前版本的 OpenShift Container Platform 的默认 install-config.yaml 文件配置已弃用。您可以继续使用已弃用的默认配置,但 openshift-installer 会提示您显示在配置文件中已弃用字段的警告信息。

重要

这个示例使用 govc 命令。govc 命令是 VMware 提供的开源命令;它不是红帽提供的。红帽支持团队不维护 govc 命令。有关下载和安装 govc 的说明,请参阅 VMware 文档网站

先决条件

  • 您有一个现有的 install-config.yaml 安装配置文件。

    重要

    您必须为 OpenShift Container Platform 集群指定一个故障域,以便您可以为 VMware vCenter 服务器置备数据中心对象。如果您需要在不同的数据中心、集群、数据存储和其他组件中置备虚拟机节点,请考虑指定多个故障域。要启用区域和区域,您必须为 OpenShift Container Platform 集群定义多个故障域。

流程

  1. 输入以下 govc 命令行工具命令,以创建 openshift-regionopenshift-zone vCenter 标签类别:

    重要

    如果为 openshift-regionopenshift-zone vCenter 标签类别指定不同的名称,OpenShift Container Platform 集群的安装会失败。

    $ govc tags.category.create -d "OpenShift region" openshift-region
    $ govc tags.category.create -d "OpenShift zone" openshift-zone
  2. 要为您要部署集群的每个区域 vSphere 数据中心创建一个 region 标签,请在终端中输入以下命令:

    $ govc tags.create -c <region_tag_category> <region_tag>
  3. 要为您要部署集群的每个 vSphere 集群创建一个区标签,请输入以下命令:

    $ govc tags.create -c <zone_tag_category> <zone_tag>
  4. 输入以下命令将区域标签附加到每个 vCenter 数据中心对象:

    $ govc tags.attach -c <region_tag_category> <region_tag_1> /<datacenter_1>
  5. 输入以下命令将区标签附加到每个 vCenter 数据中心对象:

    $ govc tags.attach -c <zone_tag_category> <zone_tag_1> /<datacenter_1>/host/vcs-mdcnc-workload-1
  6. 进入包含安装程序的目录,并根据您选择的安装要求初始化集群部署。

在 vSphere 数据中心中定义的多个数据中心的 install-config.yaml 文件示例

---
compute:
---
  vsphere:
      zones:
        - "<machine_pool_zone_1>"
        - "<machine_pool_zone_2>"
---
controlPlane:
---
vsphere:
      zones:
        - "<machine_pool_zone_1>"
        - "<machine_pool_zone_2>"
---
platform:
  vsphere:
    vcenters:
---
    datacenters:
      - <datacenter1_name>
      - <datacenter2_name>
    failureDomains:
    - name: <machine_pool_zone_1>
      region: <region_tag_1>
      zone: <zone_tag_1>
      server: <fully_qualified_domain_name>
      topology:
        datacenter: <datacenter1>
        computeCluster: "/<datacenter1>/host/<cluster1>"
        networks:
        - <VM_Network1_name>
        datastore: "/<datacenter1>/datastore/<datastore1>"
        resourcePool: "/<datacenter1>/host/<cluster1>/Resources/<resourcePool1>"
        folder: "/<datacenter1>/vm/<folder1>"
    - name: <machine_pool_zone_2>
      region: <region_tag_2>
      zone: <zone_tag_2>
      server: <fully_qualified_domain_name>
      topology:
        datacenter: <datacenter2>
        computeCluster: "/<datacenter2>/host/<cluster2>"
        networks:
        - <VM_Network2_name>
        datastore: "/<datacenter2>/datastore/<datastore2>"
        resourcePool: "/<datacenter2>/host/<cluster2>/Resources/<resourcePool2>"
        folder: "/<datacenter2>/vm/<folder2>"
---

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.