4.11. 安装配置参数


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

注意

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

4.11.1. 所需的配置参数

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

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

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。字符串长度必须为 14 个字符或更少。

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"
      }
   }
}

4.11.2. 网络配置参数

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

仅支持 IPv4 地址。

注意

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

表 4.5. 网络参数
参数描述

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 匹配。

4.11.3. 可选的配置参数

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

表 4.6. 可选参数
参数描述

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 模式的更多信息,请参阅身份验证和授权内容中的"管理云供应商凭证"条目。

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

下表中描述了其他 RHOSP 配置参数:

表 4.7. 其他 RHOSP 参数
参数描述

compute.platform.openstack.rootVolume.size

对于计算机器,以 GB 为单位的根卷大小。如果没有设置这个值,机器将使用临时存储。

整数,如 30

compute.platform.openstack.rootVolume.type

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

字符串,如 performance

controlPlane.platform.openstack.rootVolume.size

对于 control plane 机器,以 GB 为单位表示的根卷大小。如果没有设置这个值,机器将使用临时存储。

整数,如 30

controlPlane.platform.openstack.rootVolume.type

对于 control plane 机器,根卷的类型。

字符串,如 performance

platform.openstack.cloud

要使用的 RHOSP 云名称,来自于 clouds.yaml 文件中的云列表。

字符串,如 MyCloud

platform.openstack.externalNetwork

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

字符串,如 external

platform.openstack.computeFlavor

用于 control plane 和计算机器的 RHOSP 类别。

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

字符串,如 m1.xlarge

4.11.5. 可选的 RHOSP 配置参数

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

表 4.8. 可选的 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 Compute(Nova)可用区(AZ)在其中安装机器。如果没有设置此参数,安装程序会依赖于配置了 RHOSP 管理员的 Nova 的默认设置。

在使用 Kuryr 的集群上,RHOSP Octavia 不支持可用区。负载均衡器,如果您使用 Amphora 供应商驱动程序,则依赖 Amphora 虚拟机的 OpenShift Container Platform 服务不会根据此属性的值创建。

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

compute.platform.openstack.rootVolume.zones

对于计算机器,可在其上安装根卷的可用性区域。如果没有为此参数设置值,安装程序会选择默认的可用性区域。

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

compute.platform.openstack.serverGroupPolicy

要应用到包含池中的计算机器的组策略。您不能在创建后更改服务器组策略或关系。支持的选项包括 anti-affinity, soft-affinity, 和 soft-anti-affinity默认值为 soft-anti-affinity

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

如果使用严格的 anti-affinity 策略,实例迁移过程中需要额外的 RHOSP 主机。

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

controlPlane.platform.openstack.additionalNetworkIDs

与 control plane 机器关联的额外网络。不为额外网络创建允许的地址对。

附加到 control plane 机器的额外网络也会附加到 bootstrap 节点。

一个或多个 UUID 的列表作为字符串。例如: fa806b2f-ac49-4bce-b9db-124bc64209bf

controlPlane.platform.openstack.additionalSecurityGroupIDs

与 control plane 机器关联的其他安全组。

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

controlPlane.platform.openstack.zones

RHOSP Compute(Nova)可用区(AZ)在其中安装机器。如果没有设置此参数,安装程序会依赖于配置了 RHOSP 管理员的 Nova 的默认设置。

在使用 Kuryr 的集群上,RHOSP Octavia 不支持可用区。负载均衡器,如果您使用 Amphora 供应商驱动程序,则依赖 Amphora 虚拟机的 OpenShift Container Platform 服务不会根据此属性的值创建。

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

controlPlane.platform.openstack.rootVolume.zones

对于 control plane 机器,安装根卷的可用区。如果没有设置这个值,安装程序会选择默认可用区。

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

controlPlane.platform.openstack.serverGroupPolicy

要应用到池中包含 control plane 机器的组的服务器组策略。您不能在创建后更改服务器组策略或关系。支持的选项包括 anti-affinity, soft-affinity, 和 soft-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 镜像,则此属性将被忽略。

您可以使用此属性超过每个节点 26 个 PV 的 RHOSP 的默认持久性卷(PV)限值。要超过这个限制,请将 virtio- 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 中的第一个项必须与 machine Subnet 的值匹配。

如果部署到自定义子网中,则无法将外部 DNS 服务器指定到 OpenShift Container Platform 安装程序。相反,将 DNS 添加到 RHOSP 中的子网中

作为字符串的 UUID。例如: fa806b2f-ac49-4bce-b9db-124bc64209bf

4.11.6. 故障域的 RHOSP 参数

重要

RHOSP 故障域只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

Red Hat OpenStack Platform (RHOSP) 部署没有单一的故障域实现。相反,可用区会为每个服务单独定义,如计算服务、Nova;网络服务、Neutron;存储服务 Cinder。

从 OpenShift Container Platform 4.13 开始,RHOSP 部署有统一的故障域定义,覆盖所有支持的可用区类型。您可以使用故障域从单一位置控制 Nova、Neutron 和 Cinder 配置的相关方面。

在 RHOSP 中,端口描述了网络连接,并映射到计算机器内的接口。一个端口还:

  • 由网络或多个子网定义
  • 将机器连接到一个或多个子网

故障域使用端口对部署的服务进行分组。如果使用故障域,每台机器都会连接到:

  • 对象存在时 ID control-planeportTarget 对象。
  • 本身故障域中的所有非 control-plane portTarget 对象。
  • 机器池的 additionalNetworkIDs 列表中的所有网络。

要为机器池配置故障域,请编辑 controlPlane.platform.openstack.failureDomains 下的可用区和端口目标参数。

表 4.9. 故障域的 RHOSP 参数
参数描述

platform.openstack.failuredomains.computeAvailabilityZone

服务器的可用区。如果没有指定,则使用集群默认。

可用区的名称。例如,nova-1

platform.openstack.failuredomains.storageAvailabilityZone

root 卷的可用区。如果没有指定,则使用集群默认。

可用区的名称。例如,cinder-1

platform.openstack.failuredomains.portTargets

portTarget 对象列表,各自定义附加到故障域中机器的网络连接。

portTarget 对象列表。

platform.openstack.failuredomains.portTargets.portTarget.id

单个端口目标的 ID。要将该端口目标选为机器的第一个网络,请将此参数的值设置为 control-plane。如果此参数具有不同的值,它将被忽略。

control-plane 或任意字符串。

platform.openstack.failuredomains.portTargets.portTarget.network

必需。附加到故障域中机器的网络的名称或 ID。

包含名称或 UUID 的 network 对象。例如:

network:
  id: 8db6a48e-375b-4caa-b20b-5b9a7218bfe6

或:

network:
  name: my-network-1

platform.openstack.failuredomains.portTargets.portTarget.fixedIPs

要分配固定 IP 地址的子网。这些子网必须与端口位于同一个网络中。

subnet 对象列表。

注意

您不能组合区域字段和故障域。如果要使用故障域,则必须取消设置 controlPlane.zonecontrolPlane.rootVolume.zone 字段。

4.11.7. RHOSP 部署中的自定义子网

另外,您还可以在您选择的 Red Hat OpenStack Platform(RHOSP)子网中部署集群。子网的 GUID 作为 install-config.yaml 文件中的 platform.openstack.machinesSubnet 的值传递。

此子网被用作集群的主子网。默认情况下,其上会创建节点和端口。您可以通过将 platform.openstack.machinesSubnet 属性的值设置为子网的 UUID,在不同的 RHOSP 子网中创建节点和端口。

在使用自定义子网运行 OpenShift Container Platform 安装程序前,请验证您的配置是否满足以下要求:

  • platform.openstack.machinesSubnet 使用的子网启用了 DHCP。
  • platform.openstack.machinesSubnet 的 CIDR 与 networking.machineNetwork 的 CIDR 匹配。
  • 安装程序用户有在此网络上创建端口的权限,包括带有固定 IP 地址的端口。

使用自定义子网的集群有以下限制:

  • 如果您计划安装使用浮动 IP 地址的集群,则必须将 platform.openstack.machinesSubnet 子网附加到连接到 externalNetwork 网络的路由器。
  • 如果在 install-config.yaml 文件中设置了 platform.openstack.machinesSubnet 值,安装程序不会为您的 RHOSP 机器创建专用网络或子网。
  • 您不能与自定义子网同时使用 platform.openstack.externalDNS 属性。要将 DNS 添加到使用自定义子网的集群,请在 RHOSP 网络上配置 DNS。
注意

默认情况下,API VIP 使用 x.x.x.5,Ingress VIP 从网络 CIDR 块获取 x.x.x.7。要覆盖这些默认值,请为 DHCP 分配池之外的 platform.openstack.apiVIPsplatform.openstack.ingressVIPs 设置值。

重要

集群安装后无法调整网络的 CIDR 范围。红帽不提供有关在集群安装过程中确定范围的直接指导,因为它需要仔细考虑每个命名空间创建的 pod 数量。

4.11.8. 使用 Kuryr 的 RHOSP 的自定义 install-config.yaml 文件示例

要使用 Kuryr SDN 而不是默认的 OVN-Kubernetes 网络插件进行部署,您必须修改 install-config.yaml 文件,使其包含 Kuryr 作为所需的 networking.networkType。这个示例 install-config.yaml 演示了所有可能的 Red Hat OpenStack Platform(RHOSP)自定义选项。

重要

此示例文件仅供参考。您必须使用安装程序来获取 install-config.yaml 文件。

apiVersion: v1
baseDomain: example.com
controlPlane:
  name: master
  platform: {}
  replicas: 3
compute:
- name: worker
  platform:
    openstack:
      type: ml.large
  replicas: 3
metadata:
  name: example
networking:
  clusterNetwork:
  - cidr: 10.128.0.0/14
    hostPrefix: 23
  machineNetwork:
  - cidr: 10.0.0.0/16
  serviceNetwork:
  - 172.30.0.0/16 1
  networkType: Kuryr 2
platform:
  openstack:
    cloud: mycloud
    externalNetwork: external
    computeFlavor: m1.xlarge
    apiFloatingIP: 128.0.0.1
    trunkSupport: true 3
    octaviaSupport: true 4
pullSecret: '{"auths": ...}'
sshKey: ssh-ed25519 AAAA...
1
Amphora Octavia 驱动程序在每个负载均衡器创建两个端口。因此,安装程序创建的服务子网是指定为 serviceNetwork 属性值的 CIDR 大小的两倍。需要更大的范围来防止 IP 地址冲突。
2
要安装的集群网络插件。支持的值包括 KuryrOVNKubernetesOpenShiftSDN。默认值为 OVNKubernetes
3 4
安装程序会自动发现 trunkSupport 和 octaviaSupport,因此无需设置它们。但是,如果您的环境不能满足这两个要求,Kuryr SDN 将无法正常工作。需要中继才能将 pod 连接到 RHOSP 网络,并且需要 Octavia 来创建 OpenShift Container Platform 服务。

4.11.9. 使用故障域的安装配置示例

重要

RHOSP 故障域只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

install-config.yaml 文件的以下部分演示了在集群中使用故障域在 Red Hat OpenStack Platform (RHOSP) 上部署:

# ...
controlPlane:
  name: master
  platform:
    openstack:
      type: m1.large
      failureDomains:
      - computeAvailabilityZone: 'nova-1'
        storageAvailabilityZone: 'cinder-1'
        portTargets:
        - id: control-plane
          network:
            id: 8db6a48e-375b-4caa-b20b-5b9a7218bfe6
      - computeAvailabilityZone: 'nova-2'
        storageAvailabilityZone: 'cinder-2'
        portTargets:
        - id: control-plane
          network:
            id: 39a7b82a-a8a4-45a4-ba5a-288569a6edd1
      - computeAvailabilityZone: 'nova-3'
        storageAvailabilityZone: 'cinder-3'
        portTargets:
        - id: control-plane
          network:
            id: 8e4b4e0d-3865-4a9b-a769-559270271242
featureSet: TechPreviewNoUpgrade
# ...

4.11.10. 使用用户管理的负载均衡器在 OpenStack 上安装集群配置

重要

使用用户管理的 Load Balancer 在 OpenStack 上部署只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围

以下示例 install-config.yaml 文件演示了如何配置使用外部用户管理的负载均衡器而不是默认的内部负载均衡器的集群。

apiVersion: v1
baseDomain: mydomain.test
compute:
- name: worker
  platform:
    openstack:
      type: m1.xlarge
  replicas: 3
controlPlane:
  name: master
  platform:
    openstack:
      type: m1.xlarge
  replicas: 3
metadata:
  name: mycluster
networking:
  clusterNetwork:
  - cidr: 10.128.0.0/14
    hostPrefix: 23
  machineNetwork:
  - cidr: 192.168.10.0/24
platform:
  openstack:
    cloud: mycloud
    machinesSubnet: 8586bf1a-cc3c-4d40-bdf6-c243decc603a 1
    apiVIPs:
    - 192.168.10.5
    ingressVIPs:
    - 192.168.10.7
    loadBalancer:
      type: UserManaged 2
featureSet: TechPreviewNoUpgrade 3
1
无论您使用哪个负载均衡器,负载均衡器都会部署到这个子网中。
2
UserManaged 值表示您使用用户管理的负载均衡器。
3
因为用户管理的负载均衡器只是一个技术预览,所以您必须包含 TechPreviewNoUpgrade 值才能部署使用用户管理的负载均衡器的集群。

4.11.11. RHOSP 提供商网络上的集群部署

您可以使用供应商网络上的主网络接口在 Red Hat OpenStack Platform(RHOSP)上部署 OpenShift Container Platform 集群。提供商网络通常用于为项目提供可用于访问互联网的公共网络的直接访问权限。您还可以在项目间共享提供商网络,作为网络创建流程的一部分。

RHOSP 提供商网络直接映射到数据中心内的现有物理网络。RHOSP 管理员必须创建它们。

在以下示例中,OpenShift Container Platform 工作负载使用提供商网络连接到数据中心:

描述 OpenStack 上四个 OpenShift 工作负载的示意图。每个工作负载都通过 NIC 并使用提供商网络连接到外部数据中心。

在提供商网络上安装的 OpenShift Container Platform 集群不需要租户网络或浮动 IP 地址。安装程序不会在安装过程中创建这些资源。

提供商网络类型示例包括 flat(未标记)和 VLAN(802.1Q 标记)。

注意

集群可以在网络类型允许的情况下支持任意数量的提供商网络连接。例如,VLAN 网络通常支持多达 4096 个连接。

您可以在 RHOSP 文档中的 了解更多有关供应商和租户网络的信息。

4.11.11.1. 集群安装的 RHOSP 提供商网络要求

在安装 OpenShift Container Platform 集群前,您的 Red Hat OpenStack Platform(RHOSP)部署和提供商网络必须满足以下多个条件:

  • RHOSP 网络服务(Neutron)通过 RHOSP 网络 API 启用 并访问。
  • RHOSP 网络服务 启用了端口安全性并允许地址对扩展
  • 提供商网络可以与其他租户共享。

    提示

    使用 openstack network create 命令和 --share 标志来创建可共享的网络。

  • 用于安装集群的 RHOSP 项目必须拥有提供商网络以及适当的子网。

    提示
    要为名为"openshift"的项目创建网络,请输入以下命令
    $ openstack network create --project openshift
    要为名为"openshift"的项目创建子网,请输入以下命令
    $ openstack subnet create --project openshift

    要了解更多有关在 RHOSP 上创建网络的信息,请阅读 提供商网络文档

    如果集群归 admin 用户所有,则必须以该用户身份运行安装程序,以便在网络上创建端口。

    重要

    提供商网络必须由用于创建集群的 RHOSP 项目所有。如果没有,则 RHOSP Compute 服务(Nova)无法从该网络请求端口。

  • 验证提供商网络可以访问 RHOSP 元数据服务 IP 地址,默认为 169.254.169.254

    根据 RHOSP SDN 和网络服务配置,您可能需要在创建子网时提供路由。例如:

    $ openstack subnet create --dhcp --host-route destination=169.254.169.254/32,gateway=192.0.2.2 ...
  • 可选: 要保护网络,请创建 基于角色的访问控制(RBAC) 规则,以限制对单个项目的网络访问。

4.11.11.2. 在提供商网络上部署具有主接口的集群

您可以在 Red Hat OpenStack Platform(RHOSP) 提供商网络上部署具有主网络接口的 OpenShift Container Platform 集群。

先决条件

  • 您的 Red Hat OpenStack Platform(RHOSP)部署被配置为"RHOSP 供应商网络要求用于集群安装"。

流程

  1. 在文本编辑器中,打开 install-config.yaml 文件。
  2. platform.openstack.apiVIPs 属性的值设置为 API VIP 的 IP 地址。
  3. platform.openstack.ingressVIPs 属性的值设置为 Ingress VIP 的 IP 地址。
  4. platform.openstack.machinesSubnet 属性的值设置为提供商网络子网的 UUID。
  5. networking.machineNetwork.cidr 属性的值设置为提供商网络子网的 CIDR 块。
重要

platform.openstack.apiVIPsplatform.openstack.ingressVIPs 属性必须从 networking.machineNetwork.cidr 块中取消分配 IP 地址。

依赖于 RHOSP 提供商网络的集群的安装配置文件部分

        ...
        platform:
          openstack:
            apiVIPs: 1
              - 192.0.2.13
            ingressVIPs: 2
              - 192.0.2.23
            machinesSubnet: fa806b2f-ac49-4bce-b9db-124bc64209bf
            # ...
        networking:
          machineNetwork:
          - cidr: 192.0.2.0/24

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

您不能在将提供商网络用于主网络接口时设置 platform.openstack.externalNetworkplatform.openstack.externalDNS 参数。

在部署集群时,安装程序使用 install-config.yaml 文件在提供商网络上部署集群。

提示

您可以将额外的网络(包括提供商网络)添加到 platform.openstack.additionalNetworkIDs 列表中。

部署集群后,您可以将 pod 附加到额外网络。如需更多信息,请参阅 了解多个网络

4.11.12. Kuryr 端口池

Kuryr 端口池在待机时维护多个端口,用于创建 pod。

将端口保留在待机上可最大程度缩短 pod 创建时间。如果没有端口池,Kuryr 必须明确请求在创建或删除 pod 时创建或删除端口。

Kuryr 使用的 Neutron 端口是在绑定到命名空间的子网中创建的。这些 pod 端口也作为子端口添加到 OpenShift Container Platform 集群节点的主端口。

因为 Kuryr 将每个命名空间保留在单独的子网中,所以为每个命名空间 worker 对维护一个单独的端口池。

在安装集群前,您可以在 cluster-network-03-config.yml 清单文件中设置以下参数来配置端口池行为:

  • enablePortPoolsPrepopulation 参数控制池准备工作,它会强制 Kuryr 在命名空间中创建第一个 pod 使用专用网络时将 Neutron 端口添加到池中。默认值为 false
  • poolMinPorts 参数是池中保留的最少可用端口的数量。默认值为 1
  • poolMaxPorts 参数是池中保留的最大可用端口数。值 0 可 禁用此上限。这是默认设置。

    如果您的 OpenStack 端口配额较低,或者 pod 网络上的 IP 地址有限,请考虑设置此选项以确保删除不需要的端口。

  • poolBatchPorts 参数定义一次可以创建的 Neutron 端口的最大数量。默认值为 3

4.11.13. 在安装过程中调整 Kuryr 端口池

在安装过程中,您可以配置 Kuryr 如何管理 Red Hat OpenStack Platform(RHOSP)Neutron 端口,以控制 pod 创建的速度和效率。

先决条件

  • 创建并修改 install-config.yaml 文件。

流程

  1. 在命令行中创建清单文件:

    $ ./openshift-install create manifests --dir <installation_directory> 1
    1
    对于 <installation_directory>,请指定包含集群的 install-config.yaml 文件的目录名称。
  2. <installation_directory>/manifests/ 目录中创建一个名为 cluster-network-03-config.yml 的文件:

    $ touch <installation_directory>/manifests/cluster-network-03-config.yml 1
    1
    对于 <installation_directory>,请指定包含集群的 manifests/ 目录的目录名称。

    创建该文件后,几个网络配置文件位于 manifests/ 目录中,如下所示:

    $ ls <installation_directory>/manifests/cluster-network-*

    输出示例

    cluster-network-01-crd.yml
    cluster-network-02-config.yml
    cluster-network-03-config.yml

  3. 在编辑器中打开 cluster-network-03-config.yml 文件,并输入描述您想要的 Cluster Network Operator 配置的自定义资源(CR):

    $ oc edit networks.operator.openshift.io cluster
  4. 编辑设置以满足您的要求。以下示例提供了以下文件:

    apiVersion: operator.openshift.io/v1
    kind: Network
    metadata:
      name: cluster
    spec:
      clusterNetwork:
      - cidr: 10.128.0.0/14
        hostPrefix: 23
      serviceNetwork:
      - 172.30.0.0/16
      defaultNetwork:
        type: Kuryr
        kuryrConfig:
          enablePortPoolsPrepopulation: false 1
          poolMinPorts: 1 2
          poolBatchPorts: 3 3
          poolMaxPorts: 5 4
          openstackServiceNetwork: 172.30.0.0/15 5
    1
    enablePortPoolsPrepopulation 设置为 true,以便在一个命名空间中为 pod 在网络上创建第一个 pod 时使 Kuryr 创建新的 Neutron 端口。此设置引发 Neutron 端口配额,但可以缩短生成容器集所需的时间。默认值为 false
    2
    如果池中的可用端口数量低于 poolMinPorts 的值,Kuryr 会为池创建新端口。默认值为 1
    3
    poolBatchPorts 控制在可用端口数量低于 poolMinPorts 值时创建的新端口数量。默认值为 3
    4
    如果池中的可用端口数量大于 poolMaxPorts 的值,Kuryr 会删除它们,直到数量与这个值匹配为止。将此值设置为 0 可 禁用此上限,防止池缩小。默认值为 0
    5
    openStackServiceNetwork 参数定义将 IP 地址分配到 RHOSP Octavia 的 LoadBalancer 的网络的 CIDR 范围。

    如果此参数与 Amphora 驱动程序一起使用,则 Octavia 会为每个负载均衡器从这个网络获取两个 IP 地址:一个用于 OpenShift,另一个用于 VRRP 连接。由于这些 IP 地址分别由 OpenShift 容器平台和 Neutron 管理,因此它们必须来自不同的池。因此,open StackServiceNetwork 的值必须至少是 serviceNetwork 值的两倍,service Network 的值必须与 openStackServiceNetwork 定义的范围完全重叠。

    CNO 验证从此参数定义的范围获取的 VRRP IP 地址是否与 serviceNetwork 参数定义的范围不重叠。

    如果没有设置此参数,CNO 将使用 serviceNetwork 扩展值,它由使用 1 减少前缀大小决定。

  5. 保存 cluster-network-03-config.yml 文件,再退出文本编辑器。
  6. 可选:备份 manifests/cluster-network-03-config.yml 文件。安装程序在创建集群时删除 manifests/ 目录。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.