9.3. 在受限网络中的 Nutanix 上安装集群
在 OpenShift Container Platform 4.13 中,您可以通过创建安装发行内容的内部镜像在受限网络中的 Nutanix 基础架构上安装集群。
9.3.1. 先决条件
- 您已查看了有关 OpenShift Container Platform 安装和更新流程的详细信息。
- 安装程序需要访问 Prism Central 和 Prism Element 上的端口 9440。您确认可以访问端口 9440。
如果使用防火墙,已满足以下先决条件:
- 已确认可以访问端口 9440。control plane 节点必须能够访问端口 9440 上的 Prism Central 和 Prism Element 才能成功安装。
- 您已将防火墙配置为授予访问 OpenShift Container Platform 所需站点的访问权限。这包括使用 Telemetry。
如果您的 Nutanix 环境使用默认自签名 SSL/TLS 证书,请将它替换为 CA 签名的证书。安装程序需要一个有效的 CA 签名证书来访问 Prism Central API。有关替换自签名证书的更多信息,请参阅 Nutanix AOS 安全指南。
如果您的 Nutanix 环境使用内部 CA 来发布证书,您必须将集群范围代理配置为安装过程的一部分。如需更多信息,请参阅配置自定义 PKI。
重要使用 2048 位证书。如果您使用带有 Prism Central 2022.x 的 4096 位证书,则安装会失败。
- 您有一个容器镜像 registry,如 Red Hat Quay。如果您还没有 registry,您可以使用 mirror registry for Red Hat OpenShift 创建镜像 registry。
您已使用 oc-mirror OpenShift CLI (oc) 插件将所有所需的 OpenShift Container Platform 内容和其他镜像(包括 Nutanix CSI Operator)镜像到您的 mirror registry。
重要由于安装介质位于镜像主机上,因此您可以使用该计算机完成所有安装步骤。
9.3.2. 关于在受限网络中安装
在 OpenShift Container Platform 4.13 中,可以执行不需要有效的互联网连接来获取软件组件的安装。受限网络安装可以使用安装程序置备的基础架构或用户置备的基础架构完成,具体取决于您要安装集群的云平台。
如果您选择在云平台中执行受限网络安装,您仍需要访问其云 API。有些云功能,比如 Amazon Web Service 的 Route 53 DNS 和 IAM 服务,需要访问互联网。根据您的网络,在裸机硬件、Nutanix 或 VMware vSphere 上安装可能需要较少的互联网访问。
要完成受限网络安装,您必须创建一个 registry,以镜像 OpenShift 镜像 registry 的内容并包含安装介质。您可以在镜像主机上创建此 registry,该主机可同时访问互联网和您的封闭网络,也可以使用满足您的限制条件的其他方法。
9.3.2.1. 其他限制
受限网络中的集群有以下额外限制和限制:
-
ClusterVersion
状态包含一个Unable to retrieve available updates
错误。 - 默认情况下,您无法使用 Developer Catalog 的内容,因为您无法访问所需的镜像流标签。
9.3.3. 为集群节点 SSH 访问生成密钥对
在 OpenShift Container Platform 安装过程中,您可以为安装程序提供 SSH 公钥。密钥通过它们的 Ignition 配置文件传递给 Red Hat Enterprise Linux CoreOS(RHCOS)节点,用于验证对节点的 SSH 访问。密钥添加到每个节点上 core
用户的 ~/.ssh/authorized_keys
列表中,这将启用免密码身份验证。
将密钥传递给节点后,您可以使用密钥对作为用户 核心
通过 SSH 连接到 RHCOS 节点。若要通过 SSH 访问节点,必须由 SSH 为您的本地用户管理私钥身份。
如果要通过 SSH 连接到集群节点来执行安装调试或灾难恢复,则必须在安装过程中提供 SSH 公钥。./openshift-install gather
命令还需要在集群节点上设置 SSH 公钥。
不要在生产环境中跳过这个过程,在生产环境中需要灾难恢复和调试。
您必须使用本地密钥,而不是使用特定平台方法配置 的密钥,如 AWS 密钥对。
流程
如果您在本地计算机上没有可用于在集群节点上进行身份验证的现有 SSH 密钥对,请创建一个。例如,在使用 Linux 操作系统的计算机上运行以下命令:
$ ssh-keygen -t ed25519 -N '' -f <path>/<file_name> 1
- 1
- 指定新 SSH 密钥的路径和文件名,如
~/.ssh/id_ed25519
。如果您已有密钥对,请确保您的公钥位于~/.ssh
目录中。
查看公共 SSH 密钥:
$ cat <path>/<file_name>.pub
例如,运行以下命令来查看
~/.ssh/id_ed25519.pub
公钥:$ cat ~/.ssh/id_ed25519.pub
将 SSH 私钥身份添加到本地用户的 SSH 代理(如果尚未添加)。在集群节点上,或者要使用
./openshift-install gather
命令,需要对该密钥进行 SSH 代理管理,才能在集群节点上进行免密码 SSH 身份验证。注意在某些发行版中,自动管理默认 SSH 私钥身份,如
~/.ssh/id_rsa
和~/.ssh/id_dsa
。如果
ssh-agent
进程尚未为您的本地用户运行,请将其作为后台任务启动:$ eval "$(ssh-agent -s)"
输出示例
Agent pid 31874
将 SSH 私钥添加到
ssh-agent
:$ ssh-add <path>/<file_name> 1
- 1
- 指定 SSH 私钥的路径和文件名,如
~/.ssh/id_ed25519.pub
输出示例
Identity added: /home/<you>/<path>/<file_name> (<computer_name>)
后续步骤
- 安装 OpenShift Container Platform 时,为安装程序提供 SSH 公钥。
9.3.4. 在您的系统信任中添加 Nutanix root CA 证书
因为安装程序需要访问 Prism Central API,所以您必须在安装 OpenShift Container Platform 集群前将 Nutanix 可信根 CA 证书添加到您的系统信任中。
流程
- 在 Prism Central web 控制台中下载 Nutanix root CA 证书。
- 提取包含 Nutanix root CA 证书的压缩文件。
将您的操作系统的文件添加到系统信任中。例如,在 Fedora 操作系统中运行以下命令:
# cp certs/lin/* /etc/pki/ca-trust/source/anchors
更新您的系统信任关系。例如,在 Fedora 操作系统中运行以下命令:
# update-ca-trust extract
9.3.5. 下载 RHCOS 集群镜像
Prism Central 需要访问 Red Hat Enterprise Linux CoreOS (RHCOS) 镜像来安装集群。您可以使用安装程序查找并下载 RHCOS 镜像,并通过内部 HTTP 服务器或 Nutanix 对象提供它。
先决条件
- 获取 OpenShift Container Platform 安装程序和集群的 pull secret。对于受限网络安装,这些文件位于您的镜像主机上。
流程
进入包含安装程序的目录并运行以下命令:
$ ./openshift-install coreos print-stream-json
使用命令的输出来查找 Nutanix 镜像的位置,然后点链接下载它。
输出示例
"nutanix": { "release": "411.86.202210041459-0", "formats": { "qcow2": { "disk": { "location": "https://rhcos.mirror.openshift.com/art/storage/releases/rhcos-4.11/411.86.202210041459-0/x86_64/rhcos-411.86.202210041459-0-nutanix.x86_64.qcow2", "sha256": "42e227cac6f11ac37ee8a2f9528bb3665146566890577fd55f9b950949e5a54b"
- 通过内部 HTTP 服务器或 Nutanix 对象提供镜像。
-
记录下载镜像的位置。在部署集群前,您可以使用镜像的位置更新安装配置文件中的
platform
部分 (install-config.yaml
)。
指定 RHCOS 镜像的 install-config.yaml
文件的片段
platform: nutanix: clusterOSImage: http://example.com/images/rhcos-411.86.202210041459-0-nutanix.x86_64.qcow2
9.3.6. 创建安装配置文件
您可以自定义在 Nutanix 上安装的 OpenShift Container Platform 集群。
先决条件
- 获取 OpenShift Container Platform 安装程序和集群的 pull secret。对于受限网络安装,这些文件位于您的镜像主机上。
-
具有在镜像 registry 时创建的
imageContentSourcePolicy.yaml
文件。 - 具有您下载的 Red Hat Enterprise Linux CoreOS (RHCOS) 镜像的位置。
- 获取您的镜像 registry 的证书内容。
- 检索 Red Hat Enterprise Linux CoreOS(RHCOS)镜像,并将其上传到可访问的位置。
- 验证您是否满足 Nutanix 网络要求。如需更多信息,请参阅"准备在 Nutanix 上安装"。
流程
创建
install-config.yaml
文件。进入包含安装程序的目录并运行以下命令:
$ ./openshift-install create install-config --dir <installation_directory> 1
- 1
- 对于
<installation_directory>
,请指定要存储安装程序创建的文件的目录名称。
在指定目录时:
-
验证该目录是否具有
执行
权限。在安装目录中运行 Terraform 二进制文件需要这个权限。 使用空目录。有些安装资产,如 bootstrap X.509 证书的过期间隔较短,因此不得重复使用安装目录。如果要重复使用另一个集群安装中的单个文件,您可以将它们复制到您的目录中。但是,安装资产的文件名可能会在发行版本间有所变化。从以前的 OpenShift Container Platform 版本中复制安装文件时请小心。
注意始终删除
~/.powervs
目录,以避免重复使用过时的配置。运行以下命令:$ rm -rf ~/.powervs
在提示符处,提供云的配置详情:
可选: 选择用于访问集群机器的 SSH 密钥。
注意对于您要在其上执行安装调试或灾难恢复的生产环境 OpenShift Container Platform 集群,请指定
ssh-agent
进程使用的 SSH 密钥。- 选择 nutanix 作为目标平台。
- 输入 Prism Central 域名或 IP 地址。
- 输入用于登录 Prism Central 的端口。
输入用于登录 Prism Central 的凭证。
安装程序连接到 Prism Central。
- 选择用于管理 OpenShift Container Platform 集群的 Prism Element。
- 选择要使用的网络子网。
- 输入您为 control plane API 访问配置的虚拟 IP 地址。
- 输入您为集群入口配置的虚拟 IP 地址。
- 输入基域。这个基域必须与您在 DNS 记录中配置的域相同。
- 为集群输入描述性名称。您输入的集群名称必须与您在配置 DNS 记录时指定的集群名称匹配。
- 粘贴 Red Hat OpenShift Cluster Manager 中的 pull secret。
在
install-config.yaml
文件中,将platform.nutanix.clusterOSImage
的值设置为镜像位置或名称。例如:platform: nutanix: clusterOSImage: http://mirror.example.com/images/rhcos-47.83.202103221318-0-nutanix.x86_64.qcow2
编辑
install-config.yaml
文件,以提供在受限网络中安装所需的额外信息。更新
pullSecret
值,使其包含 registry 的身份验证信息:pullSecret: '{"auths":{"<mirror_host_name>:5000": {"auth": "<credentials>","email": "you@example.com"}}}'
对于
<mirror_host_name>,请指定
您在镜像 registry 证书中指定的 registry 域名;对于 <credentials>,
请指定您的镜像 registry 的 base64 编码用户名和密码。添加
additionalTrustBundle
参数和值。additionalTrustBundle: | -----BEGIN CERTIFICATE----- ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ -----END CERTIFICATE-----
该值必须是您用于镜像 registry 的证书文件内容。证书文件可以是现有的可信证书颁发机构,也可以是您为镜像 registry 生成的自签名证书。
添加镜像内容资源,类似于以下 YAML 摘录:
imageContentSources: - mirrors: - <mirror_host_name>:5000/<repo_name>/release source: quay.io/openshift-release-dev/ocp-release - mirrors: - <mirror_host_name>:5000/<repo_name>/release source: registry.redhat.io/ocp/release
对于这些值,请使用镜像 registry 时创建的
imageContentSourcePolicy.yaml
文件。
可选:更新
install.config.yaml
文件中的一个或多个默认配置参数,以自定义安装。有关参数的更多信息,请参阅"安装配置参数"。
备份
install-config.yaml
文件,以便您可以使用它安装多个集群。重要install-config.yaml
文件会在安装过程中消耗掉。如果要重复使用该文件,您必须立即备份该文件。
9.3.6.1. 安装配置参数
在部署 OpenShift Container Platform 集群前,您可以提供参数值来描述托管集群的云平台中的帐户,并选择性地自定义集群平台。在创建 install-config.yaml
安装配置文件时,您可以通过命令行为所需参数提供值。如果自定义集群,您可以修改 install-config.yaml
文件以提供有关平台的更多详情。
安装后,您无法在 install-config.yaml
文件中修改这些参数。
9.3.6.1.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" } } } |
9.3.6.1.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 网络块。
例如: 注意
将 |
9.3.6.1.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 模式的更多信息,请参阅身份验证和授权内容中的"管理云供应商凭证"条目。
9.3.6.1.4. 额外的 Nutanix 配置参数
下表描述了额外的 Nutanix 配置参数:
参数 | 描述 | 值 |
---|---|---|
|
应用到计算虚拟机的 prism category 键的名称。此参数必须由 | 字符串 |
|
应用到计算虚拟机的 prism category 键值对的值。此参数必须由 | 字符串 |
| 用于为计算虚拟机选择项目的标识符类型。项目定义用于管理权限、网络和其他参数的用户角色的逻辑组。如需有关项目的更多信息,请参阅项目概述。 |
|
|
与计算机器关联的项目的名称或 UUID。此参数必须由 | 字符串 |
|
计算机器使用的引导类型。您必须在 OpenShift Container Platform 4.13 中使用 |
|
|
应用到 control plane 虚拟机的 prism category 键的名称。此参数必须由 | 字符串 |
|
应用到 control plane 虚拟机的 prism category 键值对的值。此参数必须由 | 字符串 |
| 用于为 control plane 虚拟机选择项目的标识符类型。项目定义用于管理权限、网络和其他参数的用户角色的逻辑组。如需有关项目的更多信息,请参阅项目概述。 |
|
|
与 control plane 虚拟机关联的项目的名称或 UUID。此参数必须由 | 字符串 |
|
适用于所有虚拟机的 prism category 键的名称。此参数必须由 | 字符串 |
|
应用到所有虚拟机的 prism category 键值对的值。此参数必须由 | 字符串 |
| 用于为所有虚拟机选择项目的标识符类型。项目定义用于管理权限、网络和其他参数的用户角色的逻辑组。如需有关项目的更多信息,请参阅项目概述。 |
|
|
与所有虚拟机关联的项目的名称或 UUID。此参数必须由 | 字符串 |
|
所有机器的引导类型。您必须在 OpenShift Container Platform 4.13 中使用 |
|
| 为 control plane API 访问配置的虚拟 IP(VIP)地址。 | IP 地址 |
| 为集群入口配置的虚拟 IP(VIP)地址。 | IP 地址 |
| Prism Central 域名或 IP 地址。 | 字符串 |
| 用于登录到 Prism Central 的端口。 | 字符串 |
| Prism Central 用户名的密码。 | 字符串 |
| 用于登录到 Prism Central 的用户名。 | 字符串 |
| Prism Element 域名或 IP 地址。[1] | 字符串 |
| 用于登录到 Prism Element 的端口。 | 字符串 |
| Prism Element 的通用唯一标识符 (UUID)。 | 字符串 |
| 包含您配置的虚拟 IP 地址和 DNS 记录的 Prism Element 网络的 UUID。[2] | 字符串 |
| 可选: 默认情况下,安装程序会下载并安装 Red Hat Enterprise Linux CoreOS (RHCOS) 镜像。如果 Prism Central 没有互联网访问,您可以通过在任何 HTTP 服务器上托管 RHCOS 镜像来覆盖默认行为,并将安装程序指向镜像。 | HTTP 或 HTTPS URL,可选使用 SHA-256 校验和。例如:http://example.com/images/rhcos-47.83.202103221318-0-nutanix.x86_64.qcow2 |
-
prismElements
部分包含 Prism Elements (clusters) 的列表。Prism Element 包括了所有 Nutanix 资源,如用于托管 OpenShift Container Platform 集群的虚拟机和子网。只支持一个 Prism Element。 - 仅支持每个 OpenShift Container Platform 集群中的一个子网。
9.3.6.2. Nutanix 的自定义 install-config.yaml 文件示例
您可以自定义 install-config.yaml
文件,以指定有关 OpenShift Container Platform 集群平台的更多详情,或修改所需参数的值。
此示例 YAML 文件仅供参考。您必须使用安装程序来获取 install-config.yaml
文件,并进行修改。
apiVersion: v1 baseDomain: example.com 1 compute: 2 - hyperthreading: Enabled 3 name: worker replicas: 3 platform: nutanix: 4 cpus: 2 coresPerSocket: 2 memoryMiB: 8196 osDisk: diskSizeGiB: 120 categories: 5 - key: <category_key_name> value: <category_value> controlPlane: 6 hyperthreading: Enabled 7 name: master replicas: 3 platform: nutanix: 8 cpus: 4 coresPerSocket: 2 memoryMiB: 16384 osDisk: diskSizeGiB: 120 categories: 9 - key: <category_key_name> value: <category_value> metadata: creationTimestamp: null name: test-cluster 10 networking: clusterNetwork: - cidr: 10.128.0.0/14 hostPrefix: 23 machineNetwork: - cidr: 10.0.0.0/16 networkType: OVNKubernetes 11 serviceNetwork: - 172.30.0.0/16 platform: nutanix: apiVIP: 10.40.142.7 12 ingressVIP: 10.40.142.8 13 defaultMachinePlatform: bootType: Legacy categories: 14 - key: <category_key_name> value: <category_value> project: 15 type: name name: <project_name> prismCentral: endpoint: address: your.prismcentral.domainname 16 port: 9440 17 password: <password> 18 username: <username> 19 prismElements: - endpoint: address: your.prismelement.domainname port: 9440 uuid: 0005b0f1-8f43-a0f2-02b7-3cecef193712 subnetUUIDs: - c7938dc6-7659-453e-a688-e26020c68e43 clusterOSImage: http://example.com/images/rhcos-47.83.202103221318-0-nutanix.x86_64.qcow2 20 credentialsMode: Manual publish: External pullSecret: '{"auths":{"<local_registry>": {"auth": "<credentials>","email": "you@example.com"}}}' 21 fips: false 22 sshKey: ssh-ed25519 AAAA... 23 additionalTrustBundle: | 24 -----BEGIN CERTIFICATE----- ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ -----END CERTIFICATE----- imageContentSources: 25 - mirrors: - <local_registry>/<local_repository_name>/release source: quay.io/openshift-release-dev/ocp-release - mirrors: - <local_registry>/<local_repository_name>/release source: quay.io/openshift-release-dev/ocp-v4.0-art-dev
- 1 10 12 13 16 17 18 19
- 必需。安装程序会提示您输入这个值。
- 2 6
controlPlane
部分是一个单个映射,但 compute 部分是一系列映射。为满足不同数据结构的要求,compute
部分的第一行必须以连字符-
开头,controlPlane部分
的第一行则不以连字符开头。虽然这两个部分目前都定义了单一机器池,但未来的 OpenShift Container Platform 版本可能在安装过程中支持定义多个计算池。仅使用一个 control plane 池。- 3 7
- 是否要启用或禁用并发多线程或
超线程
。默认情况下,启用并发多线程以提高机器内核的性能。您可以通过将 参数值设置为Disabled
来禁用它。如果在某些集群机器中禁用并发多线程,则必须在所有集群机器中禁用它。重要如果您禁用并发多线程,请确保您的容量规划考虑机器性能显著降低的情况。
- 4 8
- 可选:为 compute 和 control plane 机器提供额外的机器池参数配置。
- 5 9 14
- 可选:提供一个或多个 prism category 键值对和一个 prism category 值。这些类别键值对必须在 Prism Central 中存在。您可以为计算机器、control plane 机器或所有机器提供单独的类别。
- 11
- 要安装的集群网络插件。支持的值有
OVNKubernetes
和OpenShiftSDN
。默认值为OVNKubernetes
。 - 15
- 可选:指定与其关联的项目。为项目类型指定
name
或uuid
,然后提供对应的 UUID 或项目名称。您可以将项目与计算机器、control plane 机器或所有机器关联。 - 20
- 可选: 默认情况下,安装程序会下载并安装 Red Hat Enterprise Linux CoreOS (RHCOS) 镜像。如果 Prism Central 无法访问互联网,您可以通过在任何 HTTP 服务器或 Nutanix 对象或 Nutanix 对象上托管 RHCOS 镜像来覆盖默认行为,并将安装程序指向镜像。
- 21
- 对于
<local_registry>
,请指定 registry 域名,以及您的镜像 registry 用来提供内容的可选端口。例如registry.example.com 或
registry.example.com:5000
。对于<credentials>
,请为您的镜像 registry 指定 base64 编码的用户名和密码。 - 22
- 是否启用或禁用 FIPS 模式。默认情况下不启用 FIPS 模式。重要
OpenShift Container Platform 4.13 基于 Red Hat Enterprise Linux (RHEL) 9.2。RHEL 9.2 加密模块尚未经过 FIPS 验证。如需更多信息,请参阅 4.13 OpenShift Container Platform 发行注记 中的 "About this release"。
- 23
- 可选:您可以提供用于访问集群中机器的
sshKey
值。注意对于您要在其上执行安装调试或灾难恢复的生产环境 OpenShift Container Platform 集群,请指定
ssh-agent
进程使用的 SSH 密钥。 - 24
- 提供用于镜像 registry 的证书文件内容。
- 25
- 从镜像 registry 时创建的
imageContentSourcePolicy.yaml
文件的metadata.name: release-0
部分提供这些值。
9.3.6.3. 在安装过程中配置集群范围的代理
生产环境可能会拒绝直接访问互联网,而是提供 HTTP 或 HTTPS 代理。您可以通过在 install-config.yaml
文件中配置代理设置,将新的 OpenShift Container Platform 集群配置为使用代理。
先决条件
-
您有一个现有的
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
文件并添加代理设置。例如: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
- 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 Container Platform 时引用。
安装程序会创建一个名为 cluster 的集群范围代理,该代理 使用
提供的 install-config.yaml
文件中的代理设置。如果没有提供代理设置,仍然会创建一个 cluster
Proxy
对象,但它会有一个空 spec
。
只支持名为 cluster
的 Proxy
对象,且无法创建额外的代理。
9.3.7. 通过下载二进制文件安装 OpenShift CLI
您可以安装 OpenShift CLI(oc
)来使用命令行界面与 OpenShift Container Platform 进行交互。您可以在 Linux、Windows 或 macOS 上安装 oc
。
如果安装了旧版本的 oc
,则无法使用 OpenShift Container Platform 4.13 中的所有命令。下载并安装新版本的 oc
。
在 Linux 上安装 OpenShift CLI
您可以按照以下流程在 Linux 上安装 OpenShift CLI(oc
)二进制文件。
流程
- 导航到红帽客户门户网站上的 OpenShift Container Platform 下载页面。
- 从 产品变体 下拉列表中选择架构。
- 从 版本 下拉列表中选择适当的版本。
- 点 OpenShift v4.13 Linux Client 条目旁的 Download Now 来保存文件。
解包存档:
$ tar xvf <file>
将
oc
二进制文件放到PATH 中的目录中
。要查看您的
PATH
,请执行以下命令:$ echo $PATH
验证
安装 OpenShift CLI 后,可以使用
oc
命令:$ oc <command>
在 Windows 上安装 OpenShift CLI
您可以按照以下流程在 Windows 上安装 OpenShift CLI(oc
)二进制文件。
流程
- 导航到红帽客户门户网站上的 OpenShift Container Platform 下载页面。
- 从 版本 下拉列表中选择适当的版本。
- 点 OpenShift v4.13 Windows Client 条目旁的 Download Now 来保存文件。
- 使用 ZIP 程序解压存档。
将
oc
二进制文件移到PATH 中的目录中
。要查看您的
PATH
,请打开命令提示并执行以下命令:C:\> path
验证
安装 OpenShift CLI 后,可以使用
oc
命令:C:\> oc <command>
在 macOS 上安装 OpenShift CLI
您可以按照以下流程在 macOS 上安装 OpenShift CLI(oc
)二进制文件。
流程
- 导航到红帽客户门户网站上的 OpenShift Container Platform 下载页面。
- 从 版本 下拉列表中选择适当的版本。
点 OpenShift v4.13 macOS Client 条目旁的 Download Now 来保存文件。
注意对于 macOS arm64,请选择 OpenShift v4.13 macOS arm64 Client 条目。
- 解包和解压存档。
将
oc
二进制文件移到 PATH 的目录中。要查看您的
PATH
,请打开终端并执行以下命令:$ echo $PATH
验证
安装 OpenShift CLI 后,可以使用
oc
命令:$ oc <command>
9.3.8. 为 Nutanix 配置 IAM
安装集群需要 Cloud Credential Operator(CCO)以手动模式运行。虽然安装程序为手动模式配置 CCO,您必须指定身份和访问管理 secret。
先决条件
-
您已配置了
ccoctl
二进制文件。 -
您有一个
install-config.yaml
文件。
流程
按照以下格式创建一个包含凭证数据的 YAML 文件:
凭证数据格式
credentials: - type: basic_auth 1 data: prismCentral: 2 username: <username_for_prism_central> password: <password_for_prism_central> prismElements: 3 - name: <name_of_prism_element> username: <username_for_prism_element> password: <password_for_prism_element>
运行以下命令,使用安装文件中的发行镜像设置
$RELEASE_IMAGE
变量:$ RELEASE_IMAGE=$(./openshift-install version | awk '/release image/ {print $3}')
运行以下命令,从 OpenShift Container Platform 发行镜像中提取
CredentialsRequest
自定义资源 (CR) 列表:$ oc adm release extract \ --from=$RELEASE_IMAGE \ --credentials-requests \ --cloud=nutanix \ --to=<path_to_directory_with_list_of_credentials_requests>/credrequests 1
- 1
- 指定包含组件
CredentialsRequests
对象文件的目录路径。如果指定的目录不存在,这个命令会创建它。
CredentialsRequest
对象示例apiVersion: cloudcredential.openshift.io/v1 kind: CredentialsRequest metadata: annotations: include.release.openshift.io/self-managed-high-availability: "true" labels: controller-tools.k8s.io: "1.0" name: openshift-machine-api-nutanix namespace: openshift-cloud-credential-operator spec: providerSpec: apiVersion: cloudcredential.openshift.io/v1 kind: NutanixProviderSpec secretRef: name: nutanix-credentials namespace: openshift-machine-api
如果您的集群使用集群功能禁用一个或多个可选组件,请删除任何禁用组件的
CredentialsRequest
自定义资源。Nutanix 上 OpenShift Container Platform 4.13 的
credrequests
目录的内容示例0000_26_cloud-controller-manager-operator_18_credentialsrequest-nutanix.yaml 1 0000_30_machine-api-operator_00_credentials-request.yaml 2
通过运行以下命令,使用
ccoctl
工具处理credrequests
目录中的所有CredentialsRequest
对象:$ ccoctl nutanix create-shared-secrets \ --credentials-requests-dir=<path_to_directory_with_list_of_credentials_requests>/credrequests \1 --output-dir=<ccoctl_output_dir> \2 --credentials-source-filepath=<path_to_credentials_file> 3
编辑
install-config.yaml
配置文件,使credentialsMode
参数设置为Manual
。install-config.yaml
配置文件示例apiVersion: v1 baseDomain: cluster1.example.com credentialsMode: Manual 1 ...
- 1
- 添加这一行,将
credentialsMode
参数设置为Manual
。
运行以下命令来创建安装清单:
$ openshift-install create manifests --dir <installation_directory> 1
- 1
- 指定包含集群的
install-config.yaml
文件的目录路径。
运行以下命令,将生成的凭证文件复制到目标清单目录中:
$ cp <ccoctl_output_dir>/manifests/*credentials.yaml ./<installation_directory>/manifests
验证
确保
manifests
目录中存在适当的 secret。$ ls ./<installation_directory>/manifests
输出示例
cluster-config.yaml cluster-dns-02-config.yml cluster-infrastructure-02-config.yml cluster-ingress-02-config.yml cluster-network-01-crd.yml cluster-network-02-config.yml cluster-proxy-01-config.yaml cluster-scheduler-02-config.yml cvo-overrides.yaml kube-cloud-config.yaml kube-system-configmap-root-ca.yaml machine-config-server-tls-secret.yaml openshift-config-secret-pull-secret.yaml openshift-cloud-controller-manager-nutanix-credentials-credentials.yaml openshift-machine-api-nutanix-credentials-credentials.yaml
9.3.9. 部署集群
您可以在兼容云平台上安装 OpenShift Container Platform。
在初始安装过程中,您只能运行安装程序的 create cluster
命令一次。
先决条件
- 获取 OpenShift Container Platform 安装程序和集群的 pull secret。
- 验证主机上的云供应商帐户是否有部署集群的正确权限。权限不正确的帐户会导致安装过程失败,并显示包括缺失权限的错误消息。
流程
进入包含安装程序的目录并初始化集群部署:
$ ./openshift-install create cluster --dir <installation_directory> \ 1 --log-level=info 2
验证
当集群部署成功完成时:
-
终端会显示用于访问集群的说明,包括指向 Web 控制台和
kubeadmin
用户的凭证的链接。 -
凭证信息还会输出到
<installation_directory>/.openshift_install.log
.
不要删除安装程序或安装程序所创建的文件。需要这两者才能删除集群。
输出示例
... INFO Install complete! INFO To access the cluster as the system:admin user when using 'oc', run 'export KUBECONFIG=/home/myuser/install_dir/auth/kubeconfig' INFO Access the OpenShift web-console here: https://console-openshift-console.apps.mycluster.example.com INFO Login to the console with user: "kubeadmin", and password: "password" INFO Time elapsed: 36m22s
-
安装程序生成的 Ignition 配置文件包含在 24 小时后过期的证书,然后在过期时进行续订。如果在更新证书前关闭集群,且集群在 24 小时后重启,集群会自动恢复过期的证书。一个例外是,您必须手动批准待处理的
node-bootstrapper
证书签名请求(CSR)来恢复 kubelet 证书。如需更多信息,请参阅从过期的 control plane 证书 中恢复的文档。 - 建议您在 Ignition 配置文件生成后的 12 小时内使用它们,因为 24 小时的证书会在集群安装后的 16 小时到 22 小时间进行轮转。通过在 12 小时内使用 Ignition 配置文件,您可以避免在安装过程中因为执行了证书更新而导致安装失败的问题。
9.3.10. 安装后
完成以下步骤以完成集群的配置。
9.3.10.1. 禁用默认的 OperatorHub 目录源
在 OpenShift Container Platform 安装过程中,默认为 OperatorHub 配置由红帽和社区项目提供的源内容的 operator 目录。在受限网络环境中,必须以集群管理员身份禁用默认目录。
流程
通过在
OperatorHub
对象中添加disableAllDefaultSources: true 来
禁用默认目录的源:$ oc patch OperatorHub cluster --type json \ -p '[{"op": "add", "path": "/spec/disableAllDefaultSources", "value": true}]'
或者,您可以使用 Web 控制台管理目录源。在 Administration
9.3.10.2. 将策略资源安装到集群中
使用 oc-mirror OpenShift CLI (oc) 插件镜像 OpenShift Container Platform 内容会创建资源,其中包括 catalogSource-certified-operator-index.yaml
和 imageContentSourcePolicy.yaml
。
-
ImageContentSourcePolicy
资源将镜像 registry 与源 registry 关联,并将在线 registry 中的镜像拉取请求重定向到镜像 registry。 -
Operator Lifecycle Manager (OLM) 使用
CatalogSource
资源来检索有关镜像 registry 中可用 Operator 的信息,允许用户发现和安装 Operator。
安装集群后,您必须将这些资源安装到集群中。
先决条件
- 您已将镜像设置为断开连接的环境中的 registry 镜像。
-
您可以使用具有
cluster-admin
角色的用户访问集群。
流程
-
以具有
cluster-admin
角色的用户身份登录 OpenShift CLI。 将结果目录中的 YAML 文件应用到集群:
$ oc apply -f ./oc-mirror-workspace/results-<id>/
验证
验证
ImageContentSourcePolicy
资源是否已成功安装:$ oc get imagecontentsourcepolicy
验证
CatalogSource
资源是否已成功安装:$ oc get catalogsource --all-namespaces
9.3.10.3. 配置默认存储容器
安装集群后,您必须安装 Nutanix CSI Operator 并为集群配置默认存储容器。
如需更多信息,请参阅 Nutanix 文档安装 CSI Operator 和配置 registry 存储。
9.3.11. OpenShift Container Platform 的 Telemetry 访问
在 OpenShift Container Platform 4.13 中,默认运行的 Telemetry 服务提供有关集群健康状况和成功更新的指标,需要访问互联网。如果您的集群连接到互联网,Telemetry 会自动运行,并且集群会注册到 OpenShift Cluster Manager Hybrid Cloud Console。
确认 OpenShift Cluster Manager Hybrid Cloud Console 清单正确后,可以由 Telemetry 自动维护,也可以使用 OpenShift Cluster Manager 手动维护,使用订阅监控来跟踪帐户或多集群级别的 OpenShift Container Platform 订阅。