1.3.8. 创建安装配置文件

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

先决条件

  • 获取 OpenShift Container Platform 安装程序以及集群的 pull secret。

流程

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

    1. 更改到包含安装程序的目录,再运行以下命令:

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

      指定一个空目录。一些安装信息,如 bootstrap X.509 证书,有较短的过期间隔,因此不要重复使用安装目录。如果要重复使用另一个集群安装中的个别文件,可以将其复制到您的目录中。但是,一些安装数据的文件名可能会在发行版本之间有所改变。从 OpenShift Container Platform 老版本中复制安装文件时要格外小心。

    2. 在提示符处,提供您的云的配置详情:

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

        注意

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

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

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

      5. 选择要连接的 vCenter 实例中的数据中心。
      6. 选择要使用的默认 vCenter 数据存储。
      7. 选择要在其中安装 vCenter 集群的 OpenShift Container Platform 集群。
      8. 选择包含您配置的虚拟 IP 地址和 DNS 记录的 vCenter 实例中的网络。
      9. 输入您为 control plane API 访问配置的虚拟 IP 地址。
      10. 输入您为集群入口配置的虚拟 IP 地址。
      11. 输入基域。这个基域必须与您配置的 DNS 记录中使用的域相同。
      12. 为集群输入一个描述性名称。集群名称必须与您配置的 DNS 记录中使用的相同。
      13. 粘贴从 Red Hat OpenShift Cluster Manager 站点的 Pull Secret 页面中获取的 pull secret。
  2. 修改 install-config.yaml 文件。您可以在安装配置参数部分中找到有关可用参数的更多信息。
  3. 备份 install-config.yaml 文件,以便您可以使用该文件安装多个集群。

    重要

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

1.3.8.1. 安装配置参数

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

注意

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

重要

openshift-install 命令不验证参数的字段名称。如果指定了不正确的名称,则不会创建相关的文件或对象,且不会报告错误。确保所有指定的参数的字段名称都正确。

1.3.8.1.1. 所需的配置参数

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

表 1.12. 所需的参数

参数描述

apiVersion

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

字符串

baseDomain

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

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

metadata

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

对象

metadata.name

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

小写字母、连字符(-)和句点(.)字符串,如 dev

platform

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

对象

pullSecret

https://console.redhat.com/openshift/install/pull-secret 获取 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"
      }
   }
}
1.3.8.1.2. 网络配置参数

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

只支持 IPv4 地址。

表 1.13. 网络参数

参数描述

networking

集群网络的配置。

对象

注意

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

networking.networkType

要安装的集群网络供应商 Container Network Interface(CNI)插件。

OpenShiftSDNOVNKubernetes。默认值为 OpenShiftSDN

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

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 以外的所有平台的默认值是 10.0.0.0/16。对于 libvirt,默认值为 192.168.126.0/24

CIDR 表示法中的 IP 网络块。

例如: 10.0.0.0/16

注意

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

1.3.8.1.3. 可选配置参数

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

表 1.14. 可选参数

参数描述

additionalTrustBundle

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

字符串

compute

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

machine-pool 对象的数组。详情请查看以下"Machine-pool"表。

compute.architecture

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

字符串

compute.hyperthreading

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

重要

如果禁用并发多线程,请确保在容量规划时考虑到机器性能可能会显著降低的问题。

Enabled 或者 Disabled

compute.name

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

worker

compute.platform

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

awsazuregcpopenstackovirtvsphere{}

compute.replicas

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

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

controlPlane

组成 control plane 的机器的配置。

MachinePool 对象的数组。详情请查看以下"Machine-pool"表。

controlPlane.architecture

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

字符串

controlPlane.hyperthreading

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

重要

如果禁用并发多线程,请确保在容量规划时考虑到机器性能可能会显著降低的问题。

Enabled 或者 Disabled

controlPlane.name

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

master

controlPlane.platform

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

awsazuregcpopenstackovirtvsphere{}

controlPlane.replicas

要置备的 control plane 机器数量。

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

credentialsMode

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

注意

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

MintPassthroughManual 或空字符串("")。

fips

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

重要

只有在 x86_64 架构的 OpenShift Container Platform 部署中才支持使用 FIPS 验证的/Modules in Process 加密库。

注意

如果使用 Azure File 存储,则无法启用 FIPS 模式。

false 或者 true

imageContentSources

release-image 内容的源和仓库。

对象数组。包括 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:
  <key1>
  <key2>
  <key3>
1.3.8.1.4. 其他 VMware vSphere 配置参数

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

表 1.15. 其他 VMware vSphere 集群参数

参数描述

platform.vsphere.vCenter

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

字符串

platform.vsphere.username

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

字符串

platform.vsphere.password

vCenter 用户名的密码。

字符串

platform.vsphere.datacenter

要在 vCenter 实例中使用的数据中心的名称。

字符串

platform.vsphere.defaultDatastore

用于置备卷的默认数据存储名称。

字符串

platform.vsphere.folder

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

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

platform.vsphere.network

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

字符串

platform.vsphere.cluster

在其中安装 OpenShift Container Platform 集群的 vCenter 集群。

字符串

platform.vsphere.apiVIP

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

IP 地址,如 128.0.0.1

platform.vsphere.ingressVIP

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

IP 地址,如 128.0.0.1

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

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

表 1.16. 可选的 VMware vSphere 机器池参数

参数描述

platform.vsphere.clusterOSImage

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

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

platform.vsphere.osDisk.diskSizeGB

以 GB 为单位的磁盘大小。

整数

platform.vsphere.cpus

分配虚拟机的虚拟处理器内核总数。

整数

platform.vsphere.coresPerSocket

虚拟机中每个插槽的内核数。虚拟机上的虚拟 CPU(vCPU)数量为 platform.vsphere.cpus/platform.vsphere.coresPerSocket。默认值为 1

整数

platform.vsphere.memoryMB

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

整数