7.9. 创建安装配置文件
您可以自定义在 Red Hat OpenStack Platform(RHOSP)上安装的 OpenShift Container Platform 集群。
先决条件
- 获取 OpenShift Container Platform 安装程序和集群的 pull secret。对于受限网络安装,这些文件位于您的镜像主机上。
-
具有创建镜像 registry 时生成的
imageContentSources值。 - 获取您的镜像 registry 的证书内容。
- 检索 Red Hat Enterprise Linux CoreOS(RHCOS)镜像,并将其上传到可访问的位置。
- 在订阅级别获取服务主体权限。
流程
创建
install-config.yaml文件。进入包含安装程序的目录并运行以下命令:
./openshift-install create install-config --dir <installation_directory>
$ ./openshift-install create install-config --dir <installation_directory>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 对于
<installation_directory>,请指定要存储安装程序创建的文件的目录名称。
在指定目录时:
-
验证该目录是否具有
执行权限。在安装目录中运行 Terraform 二进制文件需要这个权限。 使用空目录。有些安装资产,如 bootstrap X.509 证书的过期间隔较短,因此不得重复使用安装目录。如果要重复使用另一个集群安装中的单个文件,您可以将它们复制到您的目录中。但是,安装资产的文件名可能会在发行版本间有所变化。从以前的 OpenShift Container Platform 版本中复制安装文件时请小心。
注意始终删除
~/.powervs目录,以避免重复使用过时的配置。运行以下命令:rm -rf ~/.powervs
$ rm -rf ~/.powervsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
在提示符处,提供云的配置详情:
可选: 选择用于访问集群机器的 SSH 密钥。
注意对于您要在其上执行安装调试或灾难恢复的生产环境 OpenShift Container Platform 集群,请指定
ssh-agent进程使用的 SSH 密钥。- 选择 openstack 作为目标平台。
- 指定用于安装集群的 Red Hat OpenStack Platform(RHOSP)外部网络名称。
- 指定用于从外部访问 OpenShift API 的浮动 IP 地址。
- 指定至少有 16 GB RAM 用于 control plane 节点,以及计算节点的 8 GB RAM。
- 选择集群要部署到的基域。所有 DNS 记录都将是这个基域的子域,并且还包括集群名称。
- 为集群输入一个名称。名称长度必须为 14 个或更少字符。
- 粘贴 Red Hat OpenShift Cluster Manager 中的 pull secret。
在
install-config.yaml文件中,将platform.openstack.clusterOSImage的值设置为镜像位置或名称。例如:platform: openstack: clusterOSImage: http://mirror.example.com/images/rhcos-43.81.201912131630.0-openstack.x86_64.qcow2.gz?sha256=ffebbd68e8a1f2a245ca19522c16c86f67f9ac8e4e0c1f0a812b068b16f7265dplatform: openstack: clusterOSImage: http://mirror.example.com/images/rhcos-43.81.201912131630.0-openstack.x86_64.qcow2.gz?sha256=ffebbd68e8a1f2a245ca19522c16c86f67f9ac8e4e0c1f0a812b068b16f7265dCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
install-config.yaml文件,以提供在受限网络中安装所需的额外信息。更新
pullSecret值,使其包含 registry 的身份验证信息:pullSecret: '{"auths":{"<mirror_host_name>:5000": {"auth": "<credentials>","email": "you@example.com"}}}'pullSecret: '{"auths":{"<mirror_host_name>:5000": {"auth": "<credentials>","email": "you@example.com"}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于
<mirror_host_name>,请指定您在镜像 registry 证书中指定的 registry 域名;对于 <credentials>,请指定您的镜像 registry 的 base64 编码用户名和密码。添加
additionalTrustBundle参数和值。additionalTrustBundle: | -----BEGIN CERTIFICATE----- ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ -----END CERTIFICATE-----
additionalTrustBundle: | -----BEGIN CERTIFICATE----- ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ -----END CERTIFICATE-----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 该值必须是您用于镜像 registry 的证书文件内容。证书文件可以是现有的可信证书颁发机构,也可以是您为镜像 registry 生成的自签名证书。
添加镜像内容资源,类似于以下 YAML 摘录:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于这些值,请使用您在创建镜像 registry 时记录的
imageContentSources。
-
对您需要的
install-config.yaml文件进行任何其他修改。您可以在 安装配置参数部分找到有关可用参数 的更多信息。 备份
install-config.yaml文件,以便您可以使用它安装多个集群。重要install-config.yaml文件会在安装过程中消耗掉。如果要重复使用该文件,您必须立即备份该文件。
7.9.1. 在安装过程中配置集群范围的代理 复制链接链接已复制到粘贴板!
生产环境可能会拒绝直接访问互联网,而是提供 HTTP 或 HTTPS 代理。您可以通过在 install-config.yaml 文件中配置代理设置,将新的 OpenShift Container Platform 集群配置为使用代理。
Kuryr 安装默认为 HTTP 代理。
先决条件
对于在使用
Proxy对象的受限网络中的 Kuryr 安装,代理必须能够响应集群使用的路由器。要为代理配置添加静态路由,以 root 用户身份从命令行输入:ip route add <cluster_network_cidr> via <installer_subnet_gateway>
$ ip route add <cluster_network_cidr> via <installer_subnet_gateway>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
受限子网必须具有定义网关,并可用于链接到 Kuryr 创建的
Router资源。 -
您有一个现有的
install-config.yaml文件。 您检查了集群需要访问的站点,并确定它们中的任何站点是否需要绕过代理。默认情况下,所有集群出口流量都经过代理,包括对托管云供应商 API 的调用。如果需要,您将在
Proxy 对象的spec.noProxy字段中添加站点来绕过代理。注意Proxy对象status.noProxy字段使用安装配置中的networking.machineNetwork[].cidr、networking.clusterNetwork[].cidr和networking.serviceNetwork[]字段的值填充。对于在 Amazon Web Services(AWS)、Google Cloud Platform(GCP)、Microsoft Azure 和 Red Hat OpenStack Platform(RHOSP)上安装,
Proxy对象status.noProxy字段也会使用实例元数据端点填充(169.254.169.254)。
流程
编辑
install-config.yaml文件并添加代理设置。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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配置映射的策略。允许的值是Proxyonly和Always。仅在配置了http/https代理时,使用Proxyonly引用user-ca-bundle配置映射。使用Always始终引用user-ca-bundle配置映射。默认值为Proxyonly。
注意安装程序不支持代理的
readinessEndpoints字段。注意如果安装程序超时,重启并使用安装程序的
wait-for命令完成部署。例如:./openshift-install wait-for install-complete --log-level debug
$ ./openshift-install wait-for install-complete --log-level debugCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存该文件并在安装 OpenShift Container Platform 时引用。
安装程序会创建一个名为 cluster 的集群范围代理,该代理 使用 提供的 install-config.yaml 文件中的代理设置。如果没有提供代理设置,仍然会创建一个 cluster Proxy 对象,但它会有一个空 spec。
只支持名为 cluster 的 Proxy 对象,且无法创建额外的代理。
7.9.2. 安装配置参数 复制链接链接已复制到粘贴板!
在部署 OpenShift Container Platform 集群前,您可以提供参数值来描述托管集群的云平台中的帐户,并选择性地自定义集群平台。在创建 install-config.yaml 安装配置文件时,您可以通过命令行为所需参数提供值。如果自定义集群,您可以修改 install-config.yaml 文件以提供有关平台的更多详情。
安装后,您无法更改 install-config.yaml 文件中的这些参数。
7.9.2.1. 所需的配置参数 复制链接链接已复制到粘贴板!
下表描述了所需的安装配置参数:
| 参数 | 描述 | 值 |
|---|---|---|
|
|
| 字符串 |
|
|
云供应商的基域。基域用于创建到 OpenShift Container Platform 集群组件的路由。集群的完整 DNS 名称是 |
完全限定域名或子域名,如 |
|
|
Kubernetes 资源 | 对象 |
|
|
集群的名称。集群的 DNS 记录是 |
小写字母、连字符( |
|
|
要执行安装的具体平台配置: | 对象 |
|
| 从 Red Hat OpenShift Cluster Manager 获取 pull secret,验证从 Quay.io 等服务中下载 OpenShift Container Platform 组件的容器镜像。 |
|
7.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 网络块。
例如: 注意
将 |
7.9.2.3. 可选的配置参数 复制链接链接已复制到粘贴板!
下表描述了可选的安装配置参数:
| 参数 | 描述 | 值 |
|---|---|---|
|
| 添加到节点可信证书存储中的 PEM 编码 X.509 证书捆绑包。配置代理时,也可以使用此信任捆绑包。 | 字符串 |
|
| 控制可选核心组件的安装。您可以通过禁用可选组件来减少 OpenShift Container Platform 集群的空间。如需更多信息,请参阅安装中的"集群功能"页面。 | 字符串数组 |
|
|
选择要启用的一组初始可选功能。有效值为 | 字符串 |
|
|
将可选功能集合扩展到您在 | 字符串数组 |
|
| 启用工作负载分区,它会隔离 OpenShift Container Platform 服务、集群管理工作负载和基础架构 pod,以便在保留的一组 CPU 上运行。您只能在安装过程中启用工作负载分区。您不能在安装后禁用它。虽然此字段启用工作负载分区,但它不会将工作负载配置为使用特定的 CPU。如需更多信息,请参阅 Scalability and Performance 部分中的 Workload partitioning 页面。 |
|
|
| 组成计算节点的机器的配置。 |
|
|
|
决定池中机器的指令集合架构。目前,不支持具有不同架构的集群。所有池都必须指定相同的架构。有效值为默认值: | 字符串 |
| compute: 超线程: |
是否在计算机器上启用或禁用并发多 重要 如果您禁用并发多线程,请确保您的容量规划考虑机器性能显著降低的情况。 |
|
|
|
使用 |
|
|
|
使用 |
|
|
| 要置备的计算机器数量,也称为 worker 机器。 |
大于或等于 |
|
| 为功能集启用集群。功能集是 OpenShift Container Platform 功能的集合,默认情况下不启用。有关在安装过程中启用功能集的更多信息,请参阅"使用功能门启用功能"。 |
字符串.要启用的功能集的名称,如 |
|
| 组成 control plane 的机器的配置。 |
|
|
|
决定池中机器的指令集合架构。目前,不支持具有不同架构的集群。所有池都必须指定相同的架构。有效值为默认值: | 字符串 |
| controlPlane: 超线程: |
是否在 control plane 机器上启用或禁用并发多 重要 如果您禁用并发多线程,请确保您的容量规划考虑机器性能显著降低的情况。 |
|
|
|
使用 |
|
|
|
使用 |
|
|
| 要置备的 control plane 机器数量。 |
唯一支持的值是 |
|
| Cloud Credential Operator(CCO)模式。在没有指定模式时,CCO 会动态尝试决定提供的凭证的功能,在支持多个模式的平台上首选 mint 模式。 注意 不是所有 CCO 模式都支持所有云供应商。如需有关 CCO 模式的更多信息,请参阅集群 Operator 参考内容中的 Cloud Credential Operator 条目。 注意
如果您的 AWS 帐户启用了服务控制策略 (SCP),您必须将 |
|
|
| release-image 内容的源和存储库。 |
对象数组。包括一个 |
|
|
使用 | 字符串 |
|
| 指定可能还包含同一镜像的一个或多个存储库。 | 字符串数组 |
|
| 如何发布或公开集群的面向用户的端点,如 Kubernetes API、OpenShift 路由。 |
在非云平台上不支持将此字段设置为 重要
如果字段的值设为 |
|
| 用于验证对集群机器的访问的 SSH 密钥。 注意
对于您要在其上执行安装调试或灾难恢复的生产环境 OpenShift Container Platform 集群,请指定 |
例如, |
- 不是所有 CCO 模式都支持所有云供应商。有关 CCO 模式的更多信息,请参阅身份验证和授权内容中的"管理云供应商凭证"条目。
7.9.2.4. 其他 Red Hat OpenStack Platform(RHOSP)配置参数 复制链接链接已复制到粘贴板!
下表中描述了其他 RHOSP 配置参数:
| 参数 | 描述 | 值 |
|---|---|---|
|
| 对于计算机器,以 GB 为单位的根卷大小。如果没有设置这个值,机器将使用临时存储。 |
整数,如 |
|
| 对于计算机器,根卷的类型。 |
字符串,如 |
|
| 对于 control plane 机器,以 GB 为单位表示的根卷大小。如果没有设置这个值,机器将使用临时存储。 |
整数,如 |
|
| 对于 control plane 机器,根卷的类型。 |
字符串,如 |
|
|
要使用的 RHOSP 云名称,来自于 |
字符串,如 |
|
| 用于安装的 RHOSP 外部网络名称。 |
字符串,如 |
|
| 用于 control plane 和计算机器的 RHOSP 类别。
此属性已弃用。要将 flavor 用作所有机器池的默认值,请将其添加为 |
字符串,如 |
7.9.2.5. 可选的 RHOSP 配置参数 复制链接链接已复制到粘贴板!
下表描述了可选的 RHOSP 配置参数:
| 参数 | 描述 | 值 |
|---|---|---|
|
| 与计算机器关联的其他网络。不为额外网络创建允许的地址对。 |
一个或多个 UUID 的列表作为字符串。例如: |
|
| 与计算机器关联的其他安全组。 |
一个或多个 UUID 的列表作为字符串。例如, |
|
| RHOSP Compute(Nova)可用区(AZ)在其中安装机器。如果没有设置此参数,安装程序会依赖于配置了 RHOSP 管理员的 Nova 的默认设置。 在使用 Kuryr 的集群上,RHOSP Octavia 不支持可用区。负载均衡器,如果您使用 Amphora 供应商驱动程序,则依赖 Amphora 虚拟机的 OpenShift Container Platform 服务不会根据此属性的值创建。 |
字符串列表。例如: |
|
| 对于计算机器,可在其上安装根卷的可用性区域。如果没有为此参数设置值,安装程序会选择默认的可用性区域。 |
字符串列表,如 |
|
|
要应用到池中包含计算机器的组策略。您不能在创建后更改服务器组策略或关系。支持的选项包括
如果使用严格的 |
应用到机器池的服务器组策略。例如, |
|
| 与 control plane 机器关联的额外网络。不为额外网络创建允许的地址对。 附加到 control plane 机器的额外网络也会附加到 bootstrap 节点。 |
一个或多个 UUID 的列表作为字符串。例如: |
|
| 与 control plane 机器关联的其他安全组。 |
一个或多个 UUID 的列表作为字符串。例如, |
|
| RHOSP Compute(Nova)可用区(AZ)在其中安装机器。如果没有设置此参数,安装程序会依赖于配置了 RHOSP 管理员的 Nova 的默认设置。 在使用 Kuryr 的集群上,RHOSP Octavia 不支持可用区。负载均衡器,如果您使用 Amphora 供应商驱动程序,则依赖 Amphora 虚拟机的 OpenShift Container Platform 服务不会根据此属性的值创建。 |
字符串列表。例如: |
|
| 对于 control plane 机器,安装根卷的可用区。如果没有设置这个值,安装程序会选择默认可用区。 |
字符串列表,如 |
|
|
要应用到池中包含 control plane 机器的组的服务器组策略。您不能在创建后更改服务器组策略或关系。支持的选项包括
如果使用严格的 |
应用到机器池的服务器组策略。例如, |
|
| 安装程序从中下载 RHCOS 镜像的位置。 您必须设置此参数才能在受限网络中执行安装。 | HTTP 或 HTTPS URL,可选使用 SHA-256 校验和。
例如: |
|
|
在 Glance 中添加至安装程序上传的 ClusterOSImage 的属性。如果将
您可以使用此属性超过每个节点 26 个 PV 的 RHOSP 的默认持久性卷(PV)限值。要超过这个限制,请将 virtio-
您还可以使用此属性通过包含值为 | 一组字符串属性。例如: clusterOSImageProperties:
hw_scsi_model: "virtio-scsi"
hw_disk_bus: "scsi"
hw_qemu_guest_agent: "yes"
|
|
| 默认机器池平台配置。 |
|
|
|
与 Ingress 端口关联的现有浮动 IP 地址。要使用此属性,还必须定义 |
IP 地址,如 |
|
|
与 API 负载均衡器关联的现有浮动 IP 地址。要使用此属性,还必须定义 |
IP 地址,如 |
|
| 集群实例用于 DNS 解析的外部 DNS 服务器的 IP 地址。 |
IP 地址列表作为字符串。例如 |
|
|
是否使用默认的内部负载均衡器。如果值设为 |
|
|
| 集群节点使用的 RHOSP 子网的 UUID。在这个子网上创建节点和虚拟 IP(VIP)端口。
如果部署到自定义子网中,则无法将外部 DNS 服务器指定到 OpenShift Container Platform 安装程序。相反,将 DNS 添加到 RHOSP 中的子网中。 |
作为字符串的 UUID。例如: |
7.9.2.6. 故障域的 RHOSP 参数 复制链接链接已复制到粘贴板!
RHOSP 故障域只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
Red Hat OpenStack Platform (RHOSP) 部署没有单一的故障域实现。相反,可用区会为每个服务单独定义,如计算服务、Nova;网络服务、Neutron;存储服务 Cinder。
从 OpenShift Container Platform 4.13 开始,RHOSP 部署有统一的故障域定义,覆盖所有支持的可用区类型。您可以使用故障域从单一位置控制 Nova、Neutron 和 Cinder 配置的相关方面。
在 RHOSP 中,端口描述了网络连接,并映射到计算机器内的接口。一个端口还:
- 由网络或多个子网定义
- 将机器连接到一个或多个子网
故障域使用端口对部署的服务进行分组。如果使用故障域,每台机器都会连接到:
-
对象存在时 ID
control-plane的portTarget对象。 -
本身故障域中的所有非 control-plane
portTarget对象。 -
机器池的
additionalNetworkIDs列表中的所有网络。
要为机器池配置故障域,请编辑 controlPlane.platform.openstack.failureDomains 下的可用区和端口目标参数。
| 参数 | 描述 | 值 |
|---|---|---|
|
| 服务器的可用区。如果没有指定,则使用集群默认。 |
可用区的名称。例如, |
|
| root 卷的可用区。如果没有指定,则使用集群默认。 |
可用区的名称。例如, |
|
|
|
|
|
|
单个端口目标的 ID。要将该端口目标选为机器的第一个网络,请将此参数的值设置为 |
|
|
| 必需。附加到故障域中机器的网络的名称或 ID。 |
包含名称或 UUID 的 network: id: 8db6a48e-375b-4caa-b20b-5b9a7218bfe6
或: network: name: my-network-1
|
|
| 要分配固定 IP 地址的子网。这些子网必须与端口位于同一个网络中。 |
|
您不能组合区域字段和故障域。如果要使用故障域,则必须取消设置 controlPlane.zone 和 controlPlane.rootVolume.zone 字段。
7.9.3. 受限 OpenStack 安装的自定义 install-config.yaml 文件示例 复制链接链接已复制到粘贴板!
这个示例 install-config.yaml 演示了所有可能的 Red Hat OpenStack Platform(RHOSP)自定义选项。
此示例文件仅供参考。您必须使用安装程序来获取 install-config.yaml 文件。