×

在 Red Hat OpenStack 平台 (RHOSP) 上部署 OpenShift Container Platform 集群之前,您需要提供参数来自定义集群和托管它的平台。创建 `install-config.yaml` 文件时,您可以通过命令行提供必需参数的值。然后,您可以修改 `install-config.yaml` 文件以进一步自定义您的集群。

OpenStack 可用的安装配置参数

下表指定了在安装过程中可以设置的必需、可选和 OpenStack 特定的安装配置参数。

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

必需的配置参数

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

表 1. 必需参数
参数 描述
apiVersion:

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

字符串

baseDomain:

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

完全限定的域名或子域名,例如 `example.com`。

metadata:

Kubernetes 资源 `ObjectMeta`,其中只使用 `name` 参数。

对象

metadata:
  name:

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

由小写字母、连字符 (-) 和句点 (.) 组成的字符串,例如 `dev`。字符串长度必须为 14 个字符或更少。

platform:

要在其上执行安装的特定平台的配置:`aws`、`baremetal`、`azure`、`gcp`、`ibmcloud`、`nutanix`、`openstack`、`powervs`、`vsphere` 或 `{}`。有关 `platform.<platform>` 参数的更多信息,请参阅您特定平台的后续表格。

对象

pullSecret:

获取 Red Hat OpenShift Cluster Manager 的拉取密钥 以验证从 Quay.io 等服务下载 OpenShift Container Platform 组件的容器镜像。

{
   "auths":{
      "cloud.openshift.com":{
         "auth":"b3Blb=",
         "email":"[email protected]"
      },
      "quay.io":{
         "auth":"b3Blb=",
         "email":"[email protected]"
      }
   }
}

网络配置参数

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

在为集群配置网络参数之前,请考虑以下信息

  • 如果您使用 Red Hat OpenShift Networking OVN-Kubernetes 网络插件,则支持 IPv4 和 IPv6 地址族。

  • 如果您在具有支持 IPv4 和非链路本地 IPv6 地址的网络的 OpenShift Container Platform 集群中部署了节点,请将集群配置为使用双栈网络。

    • 对于配置为双栈网络的集群,IPv4 和 IPv6 流量都必须使用与默认网关相同的网络接口。这确保了在多个网络接口控制器 (NIC) 环境中,集群可以根据可用的网络接口检测要使用的 NIC。有关更多信息,请参阅《关于 OVN-Kubernetes 网络插件》中的“OVN-Kubernetes IPv6 和双栈限制”。

    • 为避免网络连接问题,请不要在支持双栈网络的主机上安装单栈 IPv4 集群。

如果您将集群配置为使用两种 IP 地址族,请查看以下要求

  • 两个 IP 族都必须使用相同的网络接口作为默认网关。

  • 两个 IP 族都必须具有默认网关。

  • 您必须按相同的顺序为所有网络配置参数指定 IPv4 和 IPv6 地址。例如,在以下配置中,IPv4 地址列在 IPv6 地址之前。

    networking:
      clusterNetwork:
      - cidr: 10.128.0.0/14
        hostPrefix: 23
      - cidr: fd00:10:128::/56
        hostPrefix: 64
      serviceNetwork:
      - 172.30.0.0/16
      - fd00:172:16::/112

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

表 2. 网络参数
参数 描述
networking:

集群网络的配置。

对象

安装后,您无法修改 `networking` 对象指定的参数。

networking:
  networkType:

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

`OVNKubernetes`。`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`,则为每个节点分配给定 `cidr` 中的 `/23` 子网。`hostPrefix` 值为 `23` 提供 510 (2^(32 - 23) - 2) 个 Pod IP 地址。

子网前缀。

默认值为 `23`。

networking:
  serviceNetwork:

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

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®虚拟服务器之外的所有平台,默认值为10.0.0.0/16。对于libvirt,默认值为192.168.126.0/24。对于IBM Power®虚拟服务器,默认值为192.168.0.0/24

以CIDR表示法的IP网络块。

例如,10.0.0.0/16

设置networking.machineNetwork以匹配首选网卡所在的CIDR。

可选配置参数

可选的安装配置参数在下面的表格中描述

表3. 可选参数
参数 描述
additionalTrustBundle:

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

字符串

capabilities:

控制可选核心集群组件的安装。您可以通过禁用可选组件来减小OpenShift Container Platform集群的占用空间。更多信息,请参见安装中的“集群功能”页面。

字符串数组

capabilities:
  baselineCapabilitySet:

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

字符串

capabilities:
  additionalEnabledCapabilities:

扩展可选功能集,超出您在baselineCapabilitySet中指定的范围。您可以在此参数中指定多个功能。

字符串数组

cpuPartitioningMode:

启用工作负载分区,这将隔离OpenShift Container Platform服务、集群管理工作负载和基础设施Pod,以便在预留的CPU集上运行。工作负载分区只能在安装期间启用,安装后无法禁用。虽然此字段启用了工作负载分区,但它不会将工作负载配置为使用特定的CPU。更多信息,请参见可扩展性和性能部分中的工作负载分区页面。

NoneAllNodesNone是默认值。

compute:

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

MachinePool对象的数组。

compute:
  architecture:

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

字符串

compute:
  hyperthreading:

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

如果您禁用同时多线程处理,请确保您的容量规划考虑到了机器性能的大幅下降。

EnabledDisabled

compute:
  name:

如果您使用compute,则需要此参数。机器池的名称。

worker

compute:
  platform:

如果您使用compute,则需要此参数。使用此参数指定托管工作机器的云提供商。此参数值必须与controlPlane.platform参数值匹配。

awsazuregcpibmcloudnutanixopenstackpowervsvsphere{}

compute:
  replicas:

要配置的计算机器(也称为工作机器)的数量。

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

featureSet:

为集群启用功能集。功能集是默认情况下未启用的OpenShift Container Platform功能的集合。有关在安装期间启用功能集的更多信息,请参见“使用功能门启用功能”。

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

controlPlane:

构成控制平面的机器的配置。

MachinePool对象的数组。

controlPlane:
  architecture:

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

字符串

controlPlane:
  hyperthreading:

是否在控制平面机器上启用或禁用同时多线程处理,或超线程。默认情况下,启用同时多线程处理以提高机器内核的性能。

如果您禁用同时多线程处理,请确保您的容量规划考虑到了机器性能的大幅下降。

EnabledDisabled

controlPlane:
  name:

如果您使用controlPlane,则需要此参数。机器池的名称。

master

controlPlane:
  platform:

如果您使用controlPlane,则需要此参数。使用此参数指定托管控制平面机器的云提供商。此参数值必须与compute.platform参数值匹配。

awsazuregcpibmcloudnutanixopenstackpowervsvsphere{}

controlPlane:
  replicas:

要配置的控制平面机器的数量。

支持的值为3,或者在部署单节点OpenShift时为1

credentialsMode:

云凭据操作符 (CCO) 模式。如果未指定模式,CCO 将动态尝试确定提供的凭据的功能,在支持多种模式的平台上优先选择 mint 模式。

并非所有CCO模式都支持所有云提供商。有关CCO模式的更多信息,请参见身份验证和授权内容中的“管理云提供商凭据”条目。

MintPassthroughManual或空字符串 ("")。

fips:

启用或禁用FIPS模式。默认为false(禁用)。如果启用了FIPS模式,则运行OpenShift Container Platform的Red Hat Enterprise Linux CoreOS (RHCOS)机器将绕过默认的Kubernetes加密套件,并改用RHCOS提供的加密模块。

要为您的集群启用FIPS模式,您必须从配置为在FIPS模式下运行的Red Hat Enterprise Linux (RHEL)计算机运行安装程序。有关在RHEL上配置FIPS模式的更多信息,请参见切换RHEL到FIPS模式

在FIPS模式下启动的Red Hat Enterprise Linux (RHEL)或Red Hat Enterprise Linux CoreOS (RHCOS)上运行时,OpenShift Container Platform核心组件仅在x86_64、ppc64le和s390x体系结构上使用已提交给NIST进行FIPS 140-2/140-3验证的RHEL加密库。

如果您使用Azure文件存储,则不能启用FIPS模式。

falsetrue

imageContentSources:

发行版映像内容的来源和存储库。

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

imageContentSources:
  source:

如果您使用imageContentSources,则需要此参数。指定用户引用的存储库,例如,在映像拉取规范中。

字符串

imageContentSources:
  mirrors:

指定可能也包含相同映像的一个或多个存储库。

字符串数组

publish:

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

InternalExternal。默认值为External

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

如果将字段的值设置为Internal,则集群将无法正常工作。更多信息,请参考BZ#1953035

sshKey:

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

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

例如,sshKey: ssh-ed25519 AAAA..

其他Red Hat OpenStack Platform (RHOSP)配置参数

其他RHOSP配置参数在下面的表格中描述

表4. 其他RHOSP参数
参数 描述
compute:
  platform:
    openstack:
      rootVolume:
        size:

对于计算机器,根卷的大小(以GB为单位)。如果您不设置此值,机器将使用临时存储。

整数,例如30

compute:
  platform:
    openstack:
      rootVolume:
        types:

对于计算机器,根卷类型。

字符串列表,例如,{performance-host1performance-host2performance-host3}。[1]

compute:
  platform:
    openstack:
      rootVolume:
        type:

对于计算机器,根卷的类型。此属性已弃用,并被compute.platform.openstack.rootVolume.types取代。

字符串,例如,performance[2]

compute:
  platform:
    openstack:
      rootVolume:
        zones:

对于计算机器,要安装根卷的Cinder可用区。如果您未为此参数设置值,安装程序将选择默认可用区。当定义了compute.platform.openstack.zones时,此参数是必需的。

字符串列表,例如["zone-1", "zone-2"]

controlPlane:
  platform:
    openstack:
      rootVolume:
        size:

对于控制平面机器,根卷的大小(以 GB 为单位)。如果未设置此值,则机器使用临时存储。

整数,例如30

controlPlane:
  platform:
    openstack:
      rootVolume:
        types:

对于控制平面机器,根卷的类型。

字符串列表,例如,{performance-host1performance-host2performance-host3}。[1]

controlPlane:
  platform:
    openstack:
      rootVolume:
        type:

对于控制平面机器,根卷的类型。此属性已弃用,已被compute.platform.openstack.rootVolume.types替换。

字符串,例如,performance[2]

controlPlane:
  platform:
    openstack:
      rootVolume:
        zones:

对于控制平面机器,安装根卷的 Cinder 可用区。如果未设置此值,安装程序将选择默认可用区。当定义了controlPlane.platform.openstack.zones时,此参数为必填项。

字符串列表,例如["zone-1", "zone-2"]

platform:
  openstack:
    cloud:

要从clouds.yaml文件中的云列表中使用的 RHOSP 云的名称。

clouds.yaml文件中的云配置中,如果可能,请使用应用程序凭据而不是用户名和密码组合。使用应用程序凭据可以避免由于用户名和密码轮换而导致的秘密传播中断。

字符串,例如MyCloud

platform:
  openstack:
    externalNetwork:

用于安装的 RHOSP 外部网络名称。

字符串,例如external

platform:
  openstack:
    computeFlavor:

用于控制平面和计算机器的 RHOSP 实例规格。

此属性已弃用。要将实例规格用作所有机器池的默认值,请将其添加为platform.openstack.defaultMachinePlatform属性的type键的值。您还可以为每个机器池分别设置实例规格值。

字符串,例如m1.xlarge

  1. 如果机器池定义了zones,类型的数量可以是单个项目,也可以与zones中的项目数量匹配。例如,如果zones中有3个项目,则类型的数量不能为2。

  2. 如果您有任何对该属性的现有引用,安装程序将在controlPlane.platform.openstack.rootVolume.types字段中填充相应的值。

可选 RHOSP 配置参数

可选 RHOSP 配置参数在以下表格中描述

表 5. 可选 RHOSP 参数
参数 描述
compute:
  platform:
    openstack:
      additionalNetworkIDs:

与计算机器关联的其他网络。不会为其他网络创建允许的地址对。

一个或多个 UUID 的列表,以字符串形式表示。例如,fa806b2f-ac49-4bce-b9db-124bc64209bf

compute:
  platform:
    openstack:
      additionalSecurityGroupIDs:

与计算机器关联的其他安全组。

一个或多个 UUID 的列表,以字符串形式表示。例如,7ee219f3-d2e9-48a1-96c2-e7429f1b0da7

compute:
  platform:
    openstack:
      zones:

安装机器的 RHOSP 计算 (Nova) 可用区 (AZ)。如果未设置此参数,安装程序将依赖 RHOSP 管理员配置的 Nova 默认设置。

字符串列表。例如,["zone-1", "zone-2"]

compute:
  platform:
    openstack:
      serverGroupPolicy:

要应用于将包含池中计算机器的组的服务器组策略。创建后无法更改服务器组策略或关联。支持的选项包括anti-affinitysoft-affinitysoft-anti-affinity。默认值为soft-anti-affinity

affinity策略会阻止迁移,因此会影响 RHOSP 升级。不支持affinity策略。

如果您使用严格的anti-affinity策略,则在实例迁移期间需要额外的 RHOSP 主机。

要应用于机器池的服务器组策略。例如,soft-affinity

controlPlane:
  platform:
    openstack:
      additionalNetworkIDs:

与控制平面机器关联的其他网络。不会为其他网络创建允许的地址对。

附加到控制平面机器的其他网络也附加到引导节点。

一个或多个 UUID 的列表,以字符串形式表示。例如,fa806b2f-ac49-4bce-b9db-124bc64209bf

controlPlane:
  platform:
    openstack:
      additionalSecurityGroupIDs:

与控制平面机器关联的其他安全组。

一个或多个 UUID 的列表,以字符串形式表示。例如,7ee219f3-d2e9-48a1-96c2-e7429f1b0da7

controlPlane:
  platform:
    openstack:
      zones:

安装机器的 RHOSP 计算 (Nova) 可用区 (AZ)。如果未设置此参数,安装程序将依赖 RHOSP 管理员配置的 Nova 默认设置。

字符串列表。例如,["zone-1", "zone-2"]

controlPlane:
  platform:
    openstack:
      serverGroupPolicy:

要应用于将包含池中控制平面机器的组的服务器组策略。创建后无法更改服务器组策略或关联。支持的选项包括anti-affinitysoft-affinitysoft-anti-affinity。默认值为soft-anti-affinity

affinity策略会阻止迁移,因此会影响 RHOSP 升级。不支持affinity策略。

如果您使用严格的anti-affinity策略,则在实例迁移期间需要额外的 RHOSP 主机。

要应用于机器池的服务器组策略。例如,soft-affinity

platform:
  openstack:
    clusterOSImage:

安装程序从中下载 RHCOS 镜像的位置。

必须设置此参数才能在受限网络中执行安装。

HTTP 或 HTTPS URL,可选地带有 SHA-256 校验和。

例如,http://mirror.example.com/images/rhcos-43.81.201912131630.0-openstack.x86_64.qcow2.gz?sha256=ffebbd68e8a1f2a245ca19522c16c86f67f9ac8e4e0c1f0a812b068b16f7265d。该值也可以是现有 Glance 镜像的名称,例如my-rhcos

platform:
  openstack:
    clusterOSImageProperties:

要添加到安装程序上传的 Glance 中的 ClusterOSImage 的属性。如果platform.openstack.clusterOSImage设置为现有的 Glance 镜像,则忽略此属性。

您可以使用此属性来超过 RHOSP 的每个节点 26 个 PV 的默认持久卷 (PV) 限制。要超过限制,请将hw_scsi_model属性值设置为virtio-scsi,并将hw_disk_bus值设置为scsi

您还可以使用此属性通过包含值为yeshw_qemu_guest_agent属性来启用 QEMU 客戶端代理。

键值字符串对列表。例如,["hw_scsi_model": "virtio-scsi", "hw_disk_bus": "scsi"]

platform:
  openstack:
    defaultMachinePlatform:

默认机器池平台配置。

{
   "type": "ml.large",
   "rootVolume": {
      "size": 30,
      "type": "performance"
   }
}
platform:
  openstack:
    ingressFloatingIP:

与 Ingress 端口关联的现有浮动 IP 地址。要使用此属性,还必须定义platform.openstack.externalNetwork属性。

IP 地址,例如128.0.0.1

platform:
  openstack:
    apiFloatingIP:

与 API 负载均衡器关联的现有浮动 IP 地址。要使用此属性,还必须定义platform.openstack.externalNetwork属性。

IP 地址,例如128.0.0.1

platform:
  openstack:
    externalDNS:

集群实例用于 DNS 解析的外部 DNS 服务器的 IP 地址。

IP 地址列表,以字符串形式表示。例如,["8.8.8.8", "192.168.1.12"]

platform:
  openstack:
    loadbalancer:

是否使用默认的内部负载均衡器。如果将值设置为UserManaged,则此默认负载均衡器将被禁用,以便您可以部署使用外部用户管理的负载均衡器的集群。如果未设置参数,或者值为OpenShiftManagedDefault,则集群将使用默认负载均衡器。

UserManagedOpenShiftManagedDefault

platform:
  openstack:
    machinesSubnet:

集群节点使用的 RHOSP 子网的 UUID。节点和虚拟 IP (VIP) 端口将在此子网上创建。

networking.machineNetwork中的第一个项目必须与machinesSubnet的值匹配。

如果您部署到自定义子网,则不能将外部 DNS 服务器指定给 OpenShift Container Platform 安装程序。相反,在 RHOSP 中向子网添加 DNS

UUID,以字符串形式表示。例如,fa806b2f-ac49-4bce-b9db-124bc64209bf