4.4. 获取安装程序


在安装 OpenShift Container Platform 前,将安装文件下载到您用于安装的主机上。

先决条件

  • 您有一台运行 Linux 或 macOS 的计算机,本地磁盘空间为 500 MB。

流程

  1. 访问 OpenShift Cluster Manager 站点的 Infrastructure Provider 页面。如果您有红帽帐户,请使用您的凭证登录。如果没有,请创建一个帐户。
  2. 选择您的基础架构供应商。
  3. 进入到安装类型的页面,下载与您的主机操作系统和架构对应的安装程序,并将该文件放在您要存储安装配置文件的目录中。

    重要

    安装程序会在用来安装集群的计算机上创建几个文件。在完成集群安装后,您必须保留安装程序和安装程序所创建的文件。这两个文件都需要删除集群。

    重要

    删除安装程序创建的文件不会删除您的集群,即使集群在安装过程中失败也是如此。要删除集群,请为特定云供应商完成 OpenShift Container Platform 卸载流程。

  4. 提取安装程序。例如,在使用 Linux 操作系统的计算机上运行以下命令:

    $ tar -xvf openshift-install-linux.tar.gz
    Copy to Clipboard Toggle word wrap
  5. 从 Red Hat OpenShift Cluster Manager 下载安装 pull secret。此 pull secret 允许您与所含授权机构提供的服务进行身份验证,这些服务包括为 OpenShift Container Platform 组件提供容器镜像的 Quay.io。

4.4.1. 创建安装配置文件

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

先决条件

  • 获取 OpenShift Container Platform 安装程序和集群的 pull secret。
  • 在订阅级别获取服务主体权限。

流程

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

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

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

      在指定目录时:

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

        注意

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

        $ rm -rf ~/.powervs
        Copy to Clipboard Toggle word wrap
    2. 在提示符处,提供云的配置详情:

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

        注意

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

      2. 选择 alibabacloud 作为目标平台。
      3. 选择要将集群部署到的区域。
      4. 选择集群要部署到的基域。基域与您为集群创建的公共 DNS 区对应。
      5. 为集群提供一个描述性名称。
      6. 粘贴 Red Hat OpenShift Cluster Manager 中的 pull secret
  2. 将集群安装到 Alibaba Cloud 中需要 Cloud Credential Operator(CCO)以手动模式运行。修改 install-config.yaml 文件,将 credentialsMode 参数设置为 Manual

    带有 credentialsMode 被设置为 Manual 的 install-config.yaml 配置文件示例

    apiVersion: v1
    baseDomain: cluster1.example.com
    credentialsMode: Manual 
    1
    
    compute:
    - architecture: amd64
      hyperthreading: Enabled
     ...
    Copy to Clipboard Toggle word wrap

    1
    添加此行,将 credentialsMode 设置为 Manual
  3. 修改 install-config.yaml 文件。您可以在"安装配置参数"部分找到有关可用参数的更多信息。
  4. 备份 install-config.yaml 文件,以便您可以使用它安装多个集群。

    重要

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

4.4.2. 生成所需的安装清单

您必须生成 Kubernetes 清单和 Ignition 配置文件,集群需要配置机器。

流程

  1. 从包含安装程序的目录中运行以下命令来生成清单:

    $ openshift-install create manifests --dir <installation_directory>
    Copy to Clipboard Toggle word wrap

    其中:

    <installation_directory>
    指定安装程序在其中创建文件的目录。

您可以使用 OpenShift Container Platform Cloud Credential Operator(CCO)实用程序自动为每个集群组件创建 Alibaba Cloud RAM 用户和策略。

注意

默认情况下,ccoctl 在运行命令的目录中创建对象。要在其他目录中创建对象,请使用 --output-dir 标志。此流程使用 <path_to_ccoctl_output_dir> 来引用这个目录。

先决条件

您必须:

  • 提取并准备好 ccoctl 二进制文件。
  • 创建具有足够权限来创建 OpenShift Container Platform 集群的 RAM 用户。
  • 将 RAM 用户的 AccessKeyID(access_key_id)和 AccessKeySecret(access_key_secret)添加到本地计算机上的 ~/.alibabacloud/credentials 文件中

流程

  1. 运行以下命令设置 $RELEASE_IMAGE 变量:

    $ RELEASE_IMAGE=$(./openshift-install version | awk '/release image/ {print $3}')
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令,从 OpenShift Container Platform 发行镜像中提取 CredentialsRequest 对象列表:

    $ oc adm release extract \
      --from=$RELEASE_IMAGE \
      --credentials-requests \
      --cloud=alibabacloud \
      --to=<path_to_directory_with_list_of_credentials_requests>/credrequests 
    1
    Copy to Clipboard Toggle word wrap
    1
    credrequests 是存储 CredentialsRequest 对象列表的目录。如果该目录不存在,此命令就会创建该目录。
    注意

    运行此命令可能需要一些时间。

  3. 如果您的集群使用集群功能禁用一个或多个可选组件,请删除任何禁用组件的 CredentialsRequest 自定义资源。

    Alibaba Cloud 上 OpenShift Container Platform 4.13 的 credrequests 目录的内容示例

    0000_30_machine-api-operator_00_credentials-request.yaml 
    1
    
    0000_50_cluster-image-registry-operator_01-registry-credentials-request-alibaba.yaml 
    2
    
    0000_50_cluster-ingress-operator_00-ingress-credentials-request.yaml 
    3
    
    0000_50_cluster-storage-operator_03_credentials_request_alibaba.yaml 
    4
    Copy to Clipboard Toggle word wrap

    1
    Machine API Operator CR 是必需的。
    2
    Image Registry Operator CR 是必需的。
    3
    Ingress Operator CR 是必需的。
    4
    Storage Operator CR 是一个可选组件,可能会在集群中禁用。
  4. 使用 ccoctl 工具处理 credrequests 目录中的所有 CredentialsRequest 对象:

    1. 运行以下命令使用该工具:

      $ ccoctl alibabacloud create-ram-users \
        --name <name> \
        --region=<alibaba_region> \
        --credentials-requests-dir=<path_to_directory_with_list_of_credentials_requests>/credrequests \
        --output-dir=<path_to_ccoctl_output_dir>
      Copy to Clipboard Toggle word wrap

      其中:

      • <name> 是用于标记为跟踪而创建的云资源的名称。
      • <alibaba_region> 是创建云资源的 Alibaba Cloud 区域。
      • <path_to_directory_with_list_of_requests>/credrequests 是含有组件 CredentialsRequest 对象的文件的目录。
      • <path_to_ccoctl_output_dir> 是放置所生成的组件凭证 secret 的目录。
      注意

      如果您的集群使用 TechPreviewNoUpgrade 功能集启用的技术预览功能,则必须包含 --enable-tech-preview 参数。

      输出示例

      2022/02/11 16:18:26 Created RAM User: user1-alicloud-openshift-machine-api-alibabacloud-credentials
      2022/02/11 16:18:27 Ready for creating new ram policy user1-alicloud-openshift-machine-api-alibabacloud-credentials-policy-policy
      2022/02/11 16:18:27 RAM policy user1-alicloud-openshift-machine-api-alibabacloud-credentials-policy-policy has created
      2022/02/11 16:18:28 Policy user1-alicloud-openshift-machine-api-alibabacloud-credentials-policy-policy has attached on user user1-alicloud-openshift-machine-api-alibabacloud-credentials
      2022/02/11 16:18:29 Created access keys for RAM User: user1-alicloud-openshift-machine-api-alibabacloud-credentials
      2022/02/11 16:18:29 Saved credentials configuration to: user1-alicloud/manifests/openshift-machine-api-alibabacloud-credentials-credentials.yaml
      ...
      Copy to Clipboard Toggle word wrap

      注意

      RAM 用户可以同时具有两个 accessKeys。如果您运行 ccoctl alibabacloud create-ram-users 两次,则之前生成的 manifests secret 将变为过时,您必须重新应用新生成的 secret。

    2. 验证 OpenShift Container Platform secret 是否已创建:

      $ ls <path_to_ccoctl_output_dir>/manifests
      Copy to Clipboard Toggle word wrap

      输出示例:

      openshift-cluster-csi-drivers-alibaba-disk-credentials-credentials.yaml
      openshift-image-registry-installer-cloud-credentials-credentials.yaml
      openshift-ingress-operator-cloud-credentials-credentials.yaml
      openshift-machine-api-alibabacloud-credentials-credentials.yaml
      Copy to Clipboard Toggle word wrap

      您可以通过查询 Alibaba Cloud 来验证是否创建了 RAM 用户和策略。如需更多信息,请参阅 Alibaba Cloud 文档中有关列出 RAM 用户和策略的内容。

  5. 将生成的凭证文件复制到目标清单目录中:

    $ cp ./<path_to_ccoctl_output_dir>/manifests/*credentials.yaml ./<path_to_installation>dir>/manifests/
    Copy to Clipboard Toggle word wrap

    其中:

    <path_to_ccoctl_output_dir>
    指定 ccoctl alibabacloud create-ram-users 命令创建的目录。
    <path_to_installation_dir>
    指定安装程序在其中创建文件的目录。

4.4.4. 安装配置参数

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

重要

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

4.4.4.1. 所需的配置参数

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

Expand
表 4.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

要执行安装的具体平台配置: 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"
      }
   }
}
Copy to Clipboard Toggle word wrap

4.4.4.2. 网络配置参数

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

仅支持 IPv4 地址。

注意

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

Expand
表 4.2. 网络参数
参数描述

networking

集群网络的配置。

对象

注意

您不能在安装后更改 networking 对象指定的参数。

networking.networkType

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

OpenShiftSDNOVNKubernetesOpenShiftSDN 是 all-Linux 网络的 Container Network Interface (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
Copy to Clipboard Toggle word wrap

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
Copy to Clipboard Toggle word wrap

networking.machineNetwork

机器的 IP 地址块。

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

对象数组。例如:

networking:
  machineNetwork:
  - cidr: 10.0.0.0/16
Copy to Clipboard Toggle word wrap

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.4.4.3. 可选的配置参数

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

Expand
表 4.3. 可选参数
参数描述

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.4.4.4. 其他 Alibaba Cloud 配置参数

下表描述了其他 Alibaba Cloud 配置参数。alibabacloud 参数是在 Alibaba Cloud 上安装时使用的配置。defaultMachinePlatform 参数是在 Alibaba Cloud 上安装用于不定义自身平台配置的机器池时使用的默认配置。

这些参数适用于指定的机器和控制平面机器。

注意

如果定义,则参数 compute.platform.alibabacloudcontrolPlane.platform.alibabacloud 会分别覆盖计算机器和 control plane 机器的 platform.alibabacloud.defaultMachinePlatform 设置。

Expand
表 4.4. 可选的 Alibaba Cloud 参数
参数描述

compute.platform.alibabacloud.imageID

用于创建 ECS 实例的 imageID。imageID 必须与集群属于同一区域。

字符串.

compute.platform.alibabacloud.instanceType

InstanceType 定义 ECS 实例类型。示例: ecs.g6.large

字符串.

compute.platform.alibabacloud.systemDiskCategory

定义系统磁盘的类别。示例: cloud_efficiency,cloud_essd

字符串.

compute.platform.alibabacloud.systemDisksize

以 KB (GiB) 为单位定义系统磁盘大小。

整数.

compute.platform.alibabacloud.zones

可以使用的可用区列表。示例: cn-hangzhou-h,cn-hangzhou-j

字符串列表。

controlPlane.platform.alibabacloud.imageID

用于创建 ECS 实例的 imageID。imageID 必须与集群属于同一区域。

字符串.

controlPlane.platform.alibabacloud.instanceType

InstanceType 定义 ECS 实例类型。示例:ecs.g6.xlarge

字符串.

controlPlane.platform.alibabacloud.systemDiskCategory

定义系统磁盘的类别。示例: cloud_efficiency,cloud_essd

字符串.

controlPlane.platform.alibabacloud.systemDisksize

以 KB (GiB) 为单位定义系统磁盘大小。

整数.

controlPlane.platform.alibabacloud.zones

可以使用的可用区列表。示例: cn-hangzhou-h,cn-hangzhou-j

字符串列表。

platform.alibabacloud.region

必需。创建集群的 Alibaba Cloud 区域。

字符串.

platform.alibabacloud.resourceGroupID

安装集群的现有资源组的 ID。如果为空,安装程序会为集群创建新资源组。

字符串.

platform.alibabacloud.tags

应用到为集群创建的所有 Alibaba Cloud 资源的额外键和值。

对象。

platform.alibabacloud.vpcID

应该安装集群的现有 VPC 的 ID。如果为空,安装程序会为集群创建新 VPC。

字符串.

platform.alibabacloud.vswitchIDs

创建集群资源的现有 VSwitches 的 ID 列表。现有的 VSwitches 只能在使用现有的 VPC 时使用。如果为空,安装程序会为集群创建新的 VSwitches。

字符串列表。

platform.alibabacloud.defaultMachinePlatform.imageID

对于计算机器和控制平面机器,应用于创建 ECS 实例的镜像 ID。如果设置,镜像 ID 应该属于与集群相同的区域。

字符串.

platform.alibabacloud.defaultMachinePlatform.instanceType

对于计算机器和控制平面机器,用于创建 ECS 实例的 ECS 实例类型。示例:ecs.g6.xlarge

字符串.

platform.alibabacloud.defaultMachinePlatform.systemDiskCategory

对于计算机器和控制平面机器,系统磁盘的类别。示例:cloud_efficiency,cloud_essd.

字符串,如 "", cloud_efficiency, cloud_essd

platform.alibabacloud.defaultMachinePlatform.systemDiskSize

对于计算机器和控制平面机器,以 KB (GiB) 为单位的系统磁盘大小。最小值为 120

整数.

platform.alibabacloud.defaultMachinePlatform.zones

对于计算机器和控制平面机器,可以使用的可用区列表。示例: cn-hangzhou-h,cn-hangzhou-j

字符串列表。

platform.alibabacloud.privateZoneID

现有私有区的 ID,在其中为集群的内部 API 添加 DNS 记录。只有同时使用现有的 VPC 时,才可以使用现有私有区。私有区必须与包含子网的 VPC 关联。将私有区保留为不设置,让安装程序代表您创建私有区。

字符串.

您可以自定义安装配置文件(install-config.yaml),以指定集群平台的更多详情,或修改所需参数的值。

apiVersion: v1
baseDomain: alicloud-dev.devcluster.openshift.com
credentialsMode: Manual
compute:
- architecture: amd64
  hyperthreading: Enabled
  name: worker
  platform: {}
  replicas: 3
controlPlane:
  architecture: amd64
  hyperthreading: Enabled
  name: master
  platform: {}
  replicas: 3
metadata:
  creationTimestamp: null
  name: test-cluster 
1

 networking:
  clusterNetwork:
  - cidr: 10.128.0.0/14
    hostPrefix: 23
  machineNetwork:
  - cidr: 10.0.0.0/16
  networkType: OVNKubernetes 
2

  serviceNetwork:
  - 172.30.0.0/16
platform:
  alibabacloud:
    defaultMachinePlatform: 
3

      instanceType: ecs.g6.xlarge
      systemDiskCategory: cloud_efficiency
      systemDiskSize: 200
    region: ap-southeast-1 
4

    resourceGroupID: rg-acfnw6j3hyai 
5

    vpcID: vpc-0xifdjerdibmaqvtjob2b 
6

    vswitchIDs: 
7

    - vsw-0xi8ycgwc8wv5rhviwdq5
    - vsw-0xiy6v3z2tedv009b4pz2
publish: External
pullSecret: '{"auths": {"cloud.openshift.com": {"auth": ... }' 
8

sshKey: |
  ssh-rsa AAAA... 
9
Copy to Clipboard Toggle word wrap
1
必需。安装程序会提示您输入集群名称。
2
要安装的集群网络插件。支持的值有 OVNKubernetesOpenShiftSDN。默认值为 OVNKubernetes
3
可选。为没有定义自身平台配置的机器池指定参数。
4
必需。安装程序会提示您输入要将集群部署到的区域。
5
可选。指定应该安装集群的现有资源组。
8
必需。安装程序会提示您输入 pull secret。
9
可选。安装程序会提示您输入用于访问集群中机器的 SSH 密钥值。
6 7
可选。这些是 vswitchID 值示例。

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

生产环境可能会拒绝直接访问互联网,而是提供 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
    Copy to Clipboard Toggle word wrap
    1
    用于创建集群外 HTTP 连接的代理 URL。URL 方案必须是 http
    2
    用于创建集群外 HTTPS 连接的代理 URL。
    3
    要从代理中排除的目标域名、IP 地址或其他网络 CIDR 的逗号分隔列表。在域前面加上 . 以仅匹配子域。例如,.y.com 匹配 x.y.com,但不匹配 y.com。使用 * 绕过所有目的地的代理。
    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
    Copy to Clipboard Toggle word wrap
  2. 保存该文件并在安装 OpenShift Container Platform 时引用。

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

注意

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

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat