3.9. 创建安装配置文件
您可以自定义在 Red Hat Virtualization(RHV)上安装的 OpenShift Container Platform 集群。
先决条件
- 获取 OpenShift Container Platform 安装程序和集群的 pull secret。
- 在订阅级别获取服务主体权限。
流程
创建
install-config.yaml
文件。进入包含安装程序的目录并运行以下命令:
$ ./openshift-install create install-config --dir <installation_directory> 1
- 1
- 对于
<installation_directory>
,请指定要存储安装程序创建的文件的目录名称。
在指定目录时:
-
验证该目录是否具有
执行
权限。在安装目录中运行 Terraform 二进制文件需要这个权限。 - 使用空目录。有些安装资产,如 bootstrap X.509 证书的过期间隔较短,因此不得重复使用安装目录。如果要重复使用另一个集群安装中的单个文件,您可以将它们复制到您的目录中。但是,安装资产的文件名可能会在发行版本间有所变化。从以前的 OpenShift Container Platform 版本中复制安装文件时请小心。
根据安装程序提示。
对于
SSH 公钥
,请选择免密码公钥,如~/.ssh/id_rsa.pub
。此密钥验证与新 OpenShift Container Platform 集群的连接。注意对于您要在其上执行安装调试或灾难恢复的生产环境 OpenShift Container Platform 集群,请选择
ssh-agent
进程使用的 SSH 密钥。-
对于
Platform
,选择ovirt
。 对于
Enter oVirt's API 端点 URL
,请使用以下格式输入 RHV API 的 URL:https://<engine-fqdn>/ovirt-engine/api 1
- 1
- 对于
<engine-fqdn>
,请指定 RHV 环境的完全限定域名。
例如:
$ curl -k -u ocpadmin@internal:pw123 \ https://rhv-env.virtlab.example.com/ovirt-engine/api
-
对于
Is the oVirt CA local?
,请输入Yes
,因为您已经设置了 CA 证书。否则,请输入No
。 -
对于
oVirt 的 CA 捆绑包
,如果您为之前的问题输入的是Yes
,请从/etc/pki/ca-trust/source/anchors/ca.pem
中复制证书内容并将其粘贴到此处。然后,按Enter 键
两次。如果您对前一个问题输入No
,则不会出现这个问题。 对于
oVirt engine username
,请使用以下格式输入 RHV 管理员的用户名和配置文件:<username>@<profile> 1
- 1
- 对于
<username>
,请指定 RHV 管理员的用户名。对于<profile>,
请指定登录配置集,您可以进入 RHV 管理门户登录页面并查看 Profile 下拉列表。用户名和配置集应类似以下示例:
ocpadmin@internal
-
对于
oVirt engine password
,请输入 RHV admin 密码。 -
对于
oVirt cluster
,请选择用于安装 OpenShift Container Platform 的集群。 -
对于
oVirt 存储域
,请选择安装 OpenShift Container Platform 的存储域。 -
对于
oVirt network
,请选择可访问 RHV Manager REST API 的虚拟网络。 -
对于
Internal API Virtual IP
,请为集群的 REST API 输入您设置的静态 IP 地址。 -
对于
Ingress 虚拟 IP
,请为通配符应用程序域输入您保留的静态 IP 地址。 -
对于
Base Domain
,请输入 OpenShift Container Platform 集群的基域。如果这个集群暴露于外部世界,这必须是 DNS 基础架构识别的有效域。例如: 输入virtlab.example.com
-
对于
Cluster Name
,请输入集群名称。例如:my-cluster
。使用您为 OpenShift Container Platform REST API 创建的外部注册/可解析 DNS 条目的集群名称,并应用域名。安装程序也将此名称提供给 RHV 环境中的集群。 -
对于
Pull Secret
,请从之前下载并粘贴的 pull-secret.txt
文件中复制 pull secret。您还可以从 Red Hat OpenShift Cluster Manager 获取同一 pull secret 的副本。
修改
install-config.yaml
文件。您可以在"安装配置参数"部分找到有关可用参数的更多信息。注意如果您在 Manager 上有任何中间 CA 证书,请验证证书是否出现在
ovirt-config.yaml
文件中以及install-config.yaml
文件中。如果没有显示它们,请按如下所示添加:在
~/.ovirt/ovirt-config.yaml
文件中:[ovirt_ca_bundle]: | -----BEGIN CERTIFICATE----- <MY_TRUSTED_CA> -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- <INTERMEDIATE_CA> -----END CERTIFICATE-----
在
install-config.yaml
文件中:[additionalTrustBundle]: | -----BEGIN CERTIFICATE----- <MY_TRUSTED_CA> -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- <INTERMEDIATE_CA> -----END CERTIFICATE-----
备份
install-config.yaml
文件,以便您可以使用它安装多个集群。重要install-config.yaml
文件会在安装过程中消耗掉。如果要重复使用该文件,您必须立即备份该文件。
3.9.1. Red Hat Virtualization(RHV)的 install-config.yaml
文件示例
您可以通过更改 install-config.yaml
文件中的参数和参数值来自定义安装程序创建的 OpenShift Container Platform 集群。
以下示例专用于在 RHV 上安装 OpenShift Container Platform。
install-config.yaml
位于 <installation_directory>
中,您在运行以下命令时指定的。
$ ./openshift-install create install-config --dir <installation_directory>
-
这些示例文件仅供参考。您必须使用安装程序来获取
install-config.yaml
文件。 -
更改
install-config.yaml
文件可以增加集群所需的资源。验证您的 RHV 环境是否具有这些其他资源。否则,安装或集群将失败。
默认 install-config.yaml
文件示例
apiVersion: v1 baseDomain: example.com compute: - architecture: amd64 hyperthreading: Enabled name: worker platform: ovirt: sparse: false 1 format: raw 2 replicas: 3 controlPlane: architecture: amd64 hyperthreading: Enabled name: master platform: ovirt: sparse: false 3 format: raw 4 replicas: 3 metadata: creationTimestamp: null name: my-cluster networking: clusterNetwork: - cidr: 10.128.0.0/14 hostPrefix: 23 machineNetwork: - cidr: 10.0.0.0/16 networkType: OVNKubernetes 5 serviceNetwork: - 172.30.0.0/16 platform: ovirt: api_vips: - 10.0.0.10 ingress_vips: - 10.0.0.11 ovirt_cluster_id: 68833f9f-e89c-4891-b768-e2ba0815b76b ovirt_storage_domain_id: ed7b0f4e-0e96-492a-8fff-279213ee1468 ovirt_network_name: ovirtmgmt vnicProfileID: 3fa86930-0be5-4052-b667-b79f0a729692 publish: External pullSecret: '{"auths": ...}' sshKey: ssh-ed12345 AAAA...
在 OpenShift Container Platform 4.12 及更新的版本中,api_vip
和 ingress_vip
配置设置已弃用。反之,使用列表格式在 api_vips
和 ingress_vips
配置设置中输入值。
最小 install-config.yaml
文件示例
apiVersion: v1 baseDomain: example.com metadata: name: test-cluster platform: ovirt: api_vips: - 10.46.8.230 ingress_vips: - 10.46.8.232 ovirt_cluster_id: 68833f9f-e89c-4891-b768-e2ba0815b76b ovirt_storage_domain_id: ed7b0f4e-0e96-492a-8fff-279213ee1468 ovirt_network_name: ovirtmgmt vnicProfileID: 3fa86930-0be5-4052-b667-b79f0a729692 pullSecret: '{"auths": ...}' sshKey: ssh-ed12345 AAAA...
在 OpenShift Container Platform 4.12 及更新的版本中,api_vip
和 ingress_vip
配置设置已弃用。反之,使用列表格式在 api_vips
和 ingress_vips
配置设置中输入值。
install-config.yaml
文件中的自定义机器池示例
apiVersion: v1 baseDomain: example.com controlPlane: name: master platform: ovirt: cpu: cores: 4 sockets: 2 memoryMB: 65536 osDisk: sizeGB: 100 vmType: server replicas: 3 compute: - name: worker platform: ovirt: cpu: cores: 4 sockets: 4 memoryMB: 65536 osDisk: sizeGB: 200 vmType: server replicas: 5 metadata: name: test-cluster platform: ovirt: api_vips: - 10.46.8.230 ingress_vips: - 10.46.8.232 ovirt_cluster_id: 68833f9f-e89c-4891-b768-e2ba0815b76b ovirt_storage_domain_id: ed7b0f4e-0e96-492a-8fff-279213ee1468 ovirt_network_name: ovirtmgmt vnicProfileID: 3fa86930-0be5-4052-b667-b79f0a729692 pullSecret: '{"auths": ...}' sshKey: ssh-ed25519 AAAA...
在 OpenShift Container Platform 4.12 及更新的版本中,api_vip
和 ingress_vip
配置设置已弃用。反之,使用列表格式在 api_vips
和 ingress_vips
配置设置中输入值。
非强制关联性组示例
建议添加一个非强制关联性组来分发 control plane 和 worker(如果可能),以便尽可能多地使用集群。
platform: ovirt: affinityGroups: - description: AffinityGroup to place each compute machine on a separate host enforcing: true name: compute priority: 3 - description: AffinityGroup to place each control plane machine on a separate host enforcing: true name: controlplane priority: 5 - description: AffinityGroup to place worker nodes and control plane nodes on separate hosts enforcing: false name: openshift priority: 5 compute: - architecture: amd64 hyperthreading: Enabled name: worker platform: ovirt: affinityGroupsNames: - compute - openshift replicas: 3 controlPlane: architecture: amd64 hyperthreading: Enabled name: master platform: ovirt: affinityGroupsNames: - controlplane - openshift replicas: 3
为非生产实验设置删除所有关联性组示例
对于非生产实验设置,您必须删除所有关联性组,才能将 OpenShift 容器平台集群集中到您拥有的几个主机上。
platform: ovirt: affinityGroups: [] compute: - architecture: amd64 hyperthreading: Enabled name: worker platform: ovirt: affinityGroupsNames: [] replicas: 3 controlPlane: architecture: amd64 hyperthreading: Enabled name: master platform: ovirt: affinityGroupsNames: [] replicas: 3
3.9.2. 安装配置参数
在部署 OpenShift Container Platform 集群前,您可以提供参数值来描述托管集群的云平台中的帐户,并选择性地自定义集群平台。在创建 install-config.yaml
安装配置文件时,您可以通过命令行为所需参数提供值。如果自定义集群,您可以修改 install-config.yaml
文件以提供有关平台的更多详情。
安装后,您无法在 install-config.yaml
文件中修改这些参数。
3.9.2.1. 所需的配置参数
下表描述了所需的安装配置参数:
参数 | 描述 | 值 |
---|---|---|
|
| 字符串 |
|
云供应商的基域。基域用于创建到 OpenShift Container Platform 集群组件的路由。集群的完整 DNS 名称是 |
完全限定域名或子域名,如 |
|
Kubernetes 资源 | 对象 |
|
集群的名称。集群的 DNS 记录是 |
小写字母、连字符( |
|
要执行安装的具体平台配置: | 对象 |
| 从 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" } } } |
3.9.2.2. 网络配置参数
您可以根据现有网络基础架构的要求自定义安装配置。例如,您可以扩展集群网络的 IP 地址块,或者提供不同于默认值的不同 IP 地址块。
仅支持 IPv4 地址。
Red Hat OpenShift Data Foundation 灾难恢复解决方案不支持 Globalnet。对于区域灾难恢复场景,请确保为每个集群中的集群和服务网络使用非重叠的专用 IP 地址。
参数 | 描述 | 值 |
---|---|---|
| 集群网络的配置。 | 对象 注意
您无法在安装后修改 |
| 要安装的 Red Hat OpenShift Networking 网络插件。 |
|
| pod 的 IP 地址块。
默认值为 如果您指定了多个 IP 地址块,块不得重叠。 | 对象数组。例如: networking: clusterNetwork: - cidr: 10.128.0.0/14 hostPrefix: 23 |
|
使用 IPv4 网络。 |
无类别域间路由(CIDR)表示法中的 IP 地址块。IPv4 块的前缀长度介于 |
|
分配给每个节点的子网前缀长度。例如,如果 | 子网前缀。
默认值为 |
|
服务的 IP 地址块。默认值为 OpenShift SDN 和 OVN-Kubernetes 网络插件只支持服务网络的一个 IP 地址块。 | CIDR 格式具有 IP 地址块的数组。例如: networking: serviceNetwork: - 172.30.0.0/16 |
| 机器的 IP 地址块。 如果您指定了多个 IP 地址块,块不得重叠。 | 对象数组。例如: networking: machineNetwork: - cidr: 10.0.0.0/16 |
|
使用 | CIDR 表示法中的 IP 网络块。
例如: 注意
将 |
3.9.2.3. 可选的配置参数
下表描述了可选的安装配置参数:
参数 | 描述 | 值 |
---|---|---|
| 添加到节点可信证书存储中的 PEM 编码 X.509 证书捆绑包。配置了代理时,也可以使用此信任捆绑包。 | 字符串 |
| 控制可选核心组件的安装。您可以通过禁用可选组件来减少 OpenShift Container Platform 集群的空间。如需更多信息,请参阅安装中的"集群功能"页面。 | 字符串数组 |
|
选择要启用的一组初始可选功能。有效值为 | 字符串 |
|
将可选功能集合扩展到您在 | 字符串数组 |
| 组成计算节点的机器的配置。 |
|
|
决定池中机器的指令集合架构。目前,不支持具有不同架构的集群。所有池都必须指定相同的架构。有效值为 | 字符串 |
|
是否在计算机器上启用或禁用并发多 重要 如果您禁用并发多线程,请确保您的容量规划考虑机器性能显著降低的情况。 |
|
|
使用 |
|
|
使用 |
|
| 要置备的计算机器数量,也称为 worker 机器。 |
大于或等于 |
| 为功能集启用集群。功能集是 OpenShift Container Platform 功能的集合,默认情况下不启用。有关在安装过程中启用功能集的更多信息,请参阅"使用功能门启用功能"。 |
字符串.要启用的功能集的名称,如 |
| 组成 control plane 的机器的配置。 |
|
|
决定池中机器的指令集合架构。目前,不支持具有不同架构的集群。所有池都必须指定相同的架构。有效值为 | 字符串 |
|
是否在 control plane 机器上启用或禁用并发多 重要 如果您禁用并发多线程,请确保您的容量规划考虑机器性能显著降低的情况。 |
|
|
使用 |
|
|
使用 |
|
| 要置备的 control plane 机器数量。 |
唯一支持的值是 |
| Cloud Credential Operator(CCO)模式。如果没有指定模式,CCO 会动态尝试决定提供的凭证的功能,在支持多个模式的平台上首选 mint 模式。 注意 不是所有 CCO 模式都支持所有云供应商。如需有关 CCO 模式的更多信息,请参阅集群 Operator 参考内容中的 Cloud Credential Operator 条目。 注意
如果您的 AWS 帐户启用了服务控制策略 (SCP),您必须将 |
|
|
启用或禁用 FIPS 模式。默认值为 重要
要为集群启用 FIPS 模式,您必须从配置为以 FIPS 模式操作的 Red Hat Enterprise Linux (RHEL) 计算机运行安装程序。有关在 RHEL 中配置 FIPS 模式的更多信息,请参阅在 FIPS 模式中安装该系统。只有在 注意 如果使用 Azure File 存储,则无法启用 FIPS 模式。 |
|
| release-image 内容的源和存储库。 |
对象数组。包括一个 |
|
使用 | 字符串 |
| 指定可能还包含同一镜像的一个或多个仓库。 | 字符串数组 |
| 如何发布或公开集群的面向用户的端点,如 Kubernetes API、OpenShift 路由。 |
在非云平台上不支持将此字段设置为 重要
如果将字段的值设为 |
| 用于验证对集群机器的访问的 SSH 密钥。 注意
对于您要在其上执行安装调试或灾难恢复的生产环境 OpenShift Container Platform 集群,请指定 |
例如, |
3.9.2.4. 其他 Red Hat Virtualization(RHV)配置参数
下表中描述了其他 RHV 配置参数:
参数 | 描述 | 值 |
---|---|---|
| 必需。创建虚拟机的群集。 |
字符串.例如: |
| 必需。创建虚拟机磁盘的存储域 ID。 |
字符串.例如: |
| 必需。创建 VM nics 的网络名称。 |
字符串.例如: |
| 必需。VM 网络接口的 vNIC 配置集 ID。如果集群网络只有一个配置集,则可以推断出这个值。 |
字符串.例如: |
| 必需。分配给 API 虚拟 IP(VIP)的机器网络上的 IP 地址。您可以在此端点访问 OpenShift API。对于双栈网络,最多分配两个 IP 地址。主 IP 地址必须来自 IPv4 网络。 注意
在 OpenShift Container Platform 4.12 及更新的版本中, |
字符串.示例: |
| 必需。分配给 Ingress 虚拟 IP(VIP)的机器网络上的 IP 地址。对于双栈网络,最多分配两个 IP 地址。主 IP 地址必须来自 IPv4 网络。 注意
在 OpenShift Container Platform 4.12 及更新的版本中, |
字符串.示例: |
| 可选。要在安装过程中创建的关联性组列表。 | 对象列表. |
|
如果您包含 |
字符串.示例: |
|
如果您包含 |
字符串.示例: |
|
如果您包含 |
字符串.示例: |
|
如果您包含 |
整数.示例: |
3.9.2.5. 机器池的其他 RHV 参数
下表描述了机器池的其他 RHV 配置参数:
参数 | 描述 | 值 |
---|---|---|
| 可选。定义虚拟机的 CPU。 | 对象 |
|
如果使用 | 整数 |
|
如果使用 | 整数 |
| 可选。MiB 中虚拟机的内存. | 整数 |
| 可选。定义虚拟机的第一个可引导磁盘。 | 字符串 |
|
如果使用 | 数字 |
|
可选。虚拟机工作负载类型,如 注意
| 字符串 |
| 可选。应应用于虚拟机的关联性组名称列表。关联性组必须存在于 RHV 中,或者在安装过程中创建,如本主题中 集群的额外 RHV 参数 中所述。此条目可以为空。
本例定义了两个关联性组,名为 <machine-pool>: platform: ovirt: affinityGroupNames: - compute - clusterWideNonEnforcing 这个示例定义了 no affinity 组: <machine-pool>: platform: ovirt: affinityGroupNames: [] | 字符串 |
|
可选。AutoPinningPolicy 定义自动设置 CPU 和 NUMA 设置的策略,包括固定到实例的主机。当省略该字段时,默认值为 | 字符串 |
|
可选。hugepages 是用于在虚拟机中定义大页的 KiB 大小。支持的值: | 整数 |
您可以将 <machine-pool>
替换为 controlPlane
或 compute
。