×

在 AWS 上部署 OpenShift Container Platform 集群之前,您需要提供参数来自定义集群及其所在的平台。创建 `install-config.yaml` 文件时,您可以通过命令行提供必需参数的值。然后,您可以修改 `install-config.yaml` 文件以进一步自定义集群。

AWS 可用的安装配置参数

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

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

必需的配置参数

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

表 1. 必需参数
参数 描述
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:

执行安装的特定平台的配置:awsbaremetalazuregcpibmcloudnutanixopenstackpowervsvsphere{}。有关 platform.<platform> 参数的更多信息,请参阅后面您特定平台的表格。

对象

pullSecret:

从 Red Hat OpenShift 集群管理器获取 pull secret 以验证从 Quay.io 等服务下载 OpenShift Container Platform 组件的容器镜像。

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

网络配置参数

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

仅支持 IPv4 地址。

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

集群网络的配置。

对象

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

networking:
  networkType:

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

OVNKubernetesOVNKubernetes 是适用于 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 块的前缀长度介于 032 之间。

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:

确定池中机器的指令集体系结构。当前不支持具有不同体系结构的集群。所有池都必须指定相同的体系结构。有效值为 amd64arm64。并非所有安装选项都支持 64 位 ARM 体系结构。要验证您的安装选项是否在您的平台上受支持,请参阅《选择集群安装方法并为用户准备集群》中的《不同平台的受支持安装方法》。

字符串

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:

确定池中机器的指令集体系结构。当前不支持具有不同体系结构的集群。所有池都必须指定相同的体系结构。有效值为 amd64arm64。并非所有安装选项都支持 64 位 ARM 体系结构。要验证您的安装选项是否在您的平台上受支持,请参阅《选择集群安装方法并为用户准备集群》中的《不同平台的受支持安装方法》。

字符串

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:

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

字符串数组

platform:
  aws:
    lbType:

在 AWS 中设置 NLB 负载均衡器类型所需。有效值为ClassicNLB。如果未指定值,则安装程序默认为Classic。安装程序在此处提供的 ingress 集群配置对象中设置此处提供的值。如果您没有为其他 Ingress 控制器指定负载均衡器类型,则它们将使用此参数中设置的类型。

ClassicNLB。默认值为Classic

publish:

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

InternalExternal。要部署无法从互联网访问的私有集群,请将publish设置为Internal。默认值为External

sshKey:

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

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

例如,sshKey: ssh-ed25519 AAAA..

+

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

+

将此参数设置为Manual可以替代在kube-system项目中存储管理员级密钥,这需要额外的配置步骤。有关更多信息,请参阅“在 kube-system 项目中存储管理员级密钥的替代方案”。

可选 AWS 配置参数

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

表 4. 可选 AWS 参数
参数 描述
compute:
  platform:
    aws:
      amiID:

用于引导集群计算机的 AWS AMI。对于需要自定义 RHCOS AMI 的区域,这是必需的。

任何属于 AWS 区域集的已发布或自定义 RHCOS AMI。有关可用的 AMI ID,请参阅AWS 基础设施的 RHCOS AMI

compute:
  platform:
    aws:
      iamProfile:

您用于机器的 IAM 实例配置文件的名称。如果您希望安装程序为您创建 IAM 实例配置文件,请不要使用iamProfile参数。您可以指定iamProfileiamRole参数,但不能同时指定两者。

字符串

compute:
  platform:
    aws:
      iamRole:

您用于机器的 IAM 实例角色的名称。当您指定 IAM 角色时,安装程序将创建一个实例配置文件。如果您希望安装程序为您创建 IAM 实例角色,请不要选择iamRole参数。您可以指定iamRoleiamProfile参数,但不能同时指定两者。

字符串

compute:
  platform:
    aws:
      rootVolume:
        iops:

为根卷保留的每秒输入/输出操作数 (IOPS)。

整数,例如4000

compute:
  platform:
    aws:
      rootVolume:
        size:

根卷的大小(以 GiB 为单位)。

整数,例如500

compute:
  platform:
    aws:
      rootVolume:
        type:

根卷的类型。

有效的AWS EBS 卷类型,例如io1

compute:
  platform:
    aws:
      rootVolume:
        kmsKeyARN:

KMS 密钥的 Amazon 资源名称(密钥 ARN)。这是使用特定 KMS 密钥加密工作节点的操作系统卷所必需的。

compute:
  platform:
    aws:
      type:

计算机的 EC2 实例类型。

有效的 AWS 实例类型,例如m4.2xlarge。请参阅后面的支持的 AWS 机器类型表。

compute:
  platform:
    aws:
      zones:

安装程序为计算机器池创建机器的可用区。如果您提供自己的 VPC,则必须在该可用区中提供子网。

有效的 AWS 可用区列表,例如us-east-1c,采用YAML 序列格式。

compute:
  aws:
    region:

安装程序在其中创建计算资源的 AWS 区域。

任何有效的AWS 区域,例如us-east-1。您可以使用 AWS CLI 访问基于所选实例类型可用的区域。例如

aws ec2 describe-instance-type-offerings --filters Name=instance-type,Values=c7g.xlarge

在基于 ARM 的 AWS 实例上运行时,请确保输入 AWS Graviton 处理器可用的区域。请参阅 AWS 文档中的全球可用性地图。目前,AWS Graviton3 处理器仅在部分区域可用。

controlPlane:
  platform:
    aws:
      amiID:

用于引导集群控制平面机器的 AWS AMI。对于需要自定义 RHCOS AMI 的区域,这是必需的。

任何属于 AWS 区域集的已发布或自定义 RHCOS AMI。有关可用的 AMI ID,请参阅AWS 基础设施的 RHCOS AMI

controlPlane:
  platform:
    aws:
      iamProfile:

您用于机器的 IAM 实例配置文件的名称。如果您希望安装程序为您创建 IAM 实例配置文件,请不要使用iamProfile参数。您可以指定iamProfileiamRole参数,但不能同时指定两者。

字符串

controlPlane:
  platform:
    aws:
      iamRole:

您用于机器的 IAM 实例角色的名称。当您指定 IAM 角色时,安装程序将创建一个实例配置文件。如果您希望安装程序为您创建 IAM 实例角色,请不要使用iamRole参数。您可以指定iamRoleiamProfile参数,但不能同时指定两者。

字符串

controlPlane:
  platform:
    aws:
      rootVolume:
        iops:

为控制平面机器上的根卷保留的每秒输入/输出操作数 (IOPS)。

整数,例如4000

controlPlane:
  platform:
    aws:
      rootVolume:
        size:

控制平面机器根卷的大小(以 GiB 为单位)。

整数,例如500

controlPlane:
  platform:
    aws:
      rootVolume:
        type:

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

有效的AWS EBS 卷类型,例如io1

controlPlane:
  platform:
    aws:
      rootVolume:
        kmsKeyARN:

KMS 密钥的 Amazon 资源名称(密钥 ARN)。这是使用特定 KMS 密钥加密控制平面节点的操作系统卷所必需的。

controlPlane:
  platform:
    aws:
      type:

控制平面机器的 EC2 实例类型。

有效的 AWS 实例类型,例如m6i.xlarge。请参阅后面的支持的 AWS 机器类型表。

controlPlane:
  platform:
    aws:
      zones:

安装程序为控制平面机器池创建机器的可用区。

有效的 AWS 可用区列表,例如us-east-1c,采用YAML 序列格式。

controlPlane:
  aws:
    region:

安装程序在其中创建控制平面资源的 AWS 区域。

有效的AWS 区域,例如us-east-1

platform:
  aws:
    amiID:

用于引导集群所有机器的 AWS AMI。如果设置,AMI 必须属于与集群相同的区域。对于需要自定义 RHCOS AMI 的区域,这是必需的。

任何属于 AWS 区域集的已发布或自定义 RHCOS AMI。有关可用的 AMI ID,请参阅AWS 基础设施的 RHCOS AMI

platform:
  aws:
    hostedZone:

集群现有的 Route 53 私有托管区域。只有在也提供您自己的 VPC 时,才能使用预先存在的托管区域。托管区域必须在安装之前已与用户提供的 VPC 关联。此外,托管区域的域名必须是集群域名或集群域名的父域名。如果未定义,安装程序将创建一个新的托管区域。

字符串,例如 Z3URY6TWQ91KVV

platform:
  aws:
    hostedZoneRole:

包含指定托管区域的账户中现有 IAM 角色的 Amazon 资源名称 (ARN)。安装程序和集群操作员将在对托管区域执行操作时承担此角色。只有在将集群安装到共享 VPC 中时,才应使用此参数。

字符串,例如 arn:aws:iam::1234567890:role/shared-vpc-role

platform:
  aws:
    serviceEndpoints:
      - name:
        url:

AWS 服务端点名称和 URL。自定义端点仅在必须使用替代 AWS 端点(例如 FIPS)的情况下才需要。可以为 EC2、S3、IAM、弹性负载均衡、标签、Route 53 和 STS AWS 服务指定自定义 API 端点。

有效的 AWS 服务端点 名称和有效的 AWS 服务端点 URL。

platform:
  aws:
    userTags:

安装程序将其添加为标签的键值对映射,用于它创建的所有资源。

任何有效的 YAML 映射,例如 <key>: <value> 格式的键值对。有关 AWS 标签的更多信息,请参阅 AWS 文档中的 为您的 Amazon EC2 资源添加标签

您最多可以在安装过程中添加 25 个用户定义的标签。其余 25 个标签保留给 OpenShift Container Platform 使用。

platform:
  aws:
    propagateUserTags:

一个标志,指示集群内操作员将指定的用户标签包含在操作员创建的 AWS 资源的标签中。

布尔值,例如 truefalse

platform:
  aws:
    subnets:

如果您提供 VPC,而不是允许安装程序为您创建 VPC,请指定集群要使用的子网。子网必须是您指定的相同 machineNetwork[].cidr 范围的一部分。

对于标准集群,请为每个可用区指定一个公有子网和一个私有子网。

对于私有集群,请为每个可用区指定一个私有子网。

对于使用 AWS 本地区域的集群,必须将 AWS 本地区域子网添加到此列表中,以确保边缘机器池的创建。

有效的子网 ID。

platform:
  aws:
    publicIpv4Pool:

用于在 publish 设置为 External 时分配弹性 IP (EIP) 的公有 IPv4 池 ID。必须在集群的同一 AWS 账户和区域中配置和发布池。您必须确保在池中至少有 2n + 1 个可用的 IPv4 地址,其中 n 是用于部署 API、NAT 网关和引导节点的网络负载均衡器 (NLB) 的 AWS 区域总数。有关在 AWS 中自带 IP 地址 (BYOIP) 的更多信息,请参阅 加入您的 BYOIP

有效的 公有 IPv4 池 ID

只有对于没有网络限制的自定义安装,才能启用 BYOIP。

platform:
  aws:
    preserveBootstrapIgnition:

防止在引导完成之后删除 S3 存储桶。

truefalse。默认值为 false,这将导致删除 S3 存储桶。