第 9 章 在 Nutanix 上安装
9.1. 准备在 Nutanix 上安装
在安装 OpenShift Container Platform 集群前,请确定您的 Nutanix 环境满足以下要求。
9.1.1. Nutanix 版本要求
您必须将 OpenShift Container Platform 集群安装到符合以下要求的 Nutanix 环境。
| 组件 | 所需的版本 | 
|---|---|
| Nutanix AOS | 6.5.2.7 或更高版本 | 
| Prism Central | pc.2022.6 或更高版本 | 
9.1.2. 环境要求
在安装 OpenShift Container Platform 集群前,请查看以下 Nutanix AOS 环境要求。
9.1.2.1. 所需的帐户权限
安装程序需要访问具有所需权限的 Nutanix 帐户,以部署集群并维护其每日操作。以下选项可供您使用:
- 您可以使用具有管理特权的本地 Prism Central 用户帐户。使用本地帐户是授予对具有所需权限的帐户访问权限的最快的方法。
- 如果机构的安全策略要求您使用更严格的权限集,请使用下表中列出的权限在 Prism Central 中创建自定义 Cloud Native 角色。然后,您可以将角色分配给作为 Prism Central 身份验证目录成员的用户帐户。
管理此用户帐户时请考虑以下几点:
- 在为角色分配实体时,请确保用户只能访问部署虚拟机所需的 Prism Element 和子网。
- 确保该用户是需要为其分配虚拟机的项目的成员。
如需更多信息,请参阅 Nutanix 文档中有关自定义云原生角色, 分配角色, 和为项目添加用户的内容。
例 9.1. 创建自定义云原生角色所需的权限
| Nutanix 对象 | 必要时 | Nutanix API 中所需的权限 | 描述 | 
|---|---|---|---|
| Categories | Always | 
											 | 创建、读取和删除分配给 OpenShift Container Platform 机器的类别。 | 
| 镜像 | Always | 
											 | 创建、读取和删除用于 OpenShift Container Platform 机器的操作系统镜像。 | 
| 虚拟机 | Always | 
											 | 创建、读取和删除 OpenShift Container Platform 机器。 | 
| Clusters | Always | 
											 | 查看托管 OpenShift Container Platform 机器的 Prism Element 集群。 | 
| 子网 | Always | 
											 | 查看托管 OpenShift Container Platform 机器的子网。 | 
| 项目 | 如果您将项目与计算机器、control plane 机器或所有机器关联。 | 
											 | 查看 Prism Central 中定义的项目,并允许将项目分配给 OpenShift Container Platform 机器。 | 
9.1.2.2. 集群限制
可用资源因集群而异。Nutanix 环境中可能的集群数量主要受可用的存储空间限制,以及与集群所创建的资源相关的限制,以及部署集群所需的资源(如 IP 地址和网络)。
9.1.2.3. 集群资源
使用标准集群至少需要 800 GB 存储。
当您部署使用安装程序置备的基础架构的 OpenShift Container Platform 集群时,安装程序必须能够在 Nutanix 实例中创建多个资源。虽然这些资源使用 856 GB 存储,但 bootstrap 节点会作为安装过程的一部分被销毁。
标准的 OpenShift Container Platform 安装会创建以下资源:
- 1 个标签
- 虚拟机: - 1 个磁盘镜像
- 1 个临时 bootstrap 节点
- 3 个 control plane 节点
- 3 个计算机器
 
9.1.2.4. 网络要求
您必须对网络使用 AHV IP 地址管理(IPAM)或动态主机配置协议(DHCP),并确保它被配置为为集群机器提供持久的 IP 地址。另外,在安装 OpenShift Container Platform 集群前创建以下网络资源:
- IP 地址
- DNS 记录
建议集群中的每个 OpenShift Container Platform 节点都可以访问可通过 DHCP 发现的网络时间协议 (NTP) 服务器。没有 NTP 服务器即可安装。但是,NTP 服务器可防止错误通常与异步服务器时钟相关联。
9.1.2.4.1. 所需的 IP 地址
安装程序置备的安装需要两个静态虚拟 IP (VIP) 地址:
- API 的 VIP 地址是必需的。此地址用于访问集群 API。
- 需要一个 ingress 的 VIP 地址。此地址用于集群入口流量。
安装 OpenShift Container Platform 集群时,可以指定这些 IP 地址。
9.1.2.4.2. DNS 记录
							您必须在适当的 DNS 服务器中为托管 OpenShift Container Platform 集群的 Nutanix 实例创建两个静态 IP 地址的 DNS 记录。在每个记录中,<cluster_name> 是集群名称,<base_domain> 是您 在安装集群时指定的集群基域。
						
如果使用自己的 DNS 或 DHCP 服务器,还必须为每个节点创建记录,包括 bootstrap、control plane 和计算节点。
							完整的 DNS 记录采用以下形式: <component>.<cluster_name>.<base_domain>.。
						
| 组件 | 记录 | 描述 | 
|---|---|---|
| API VIP | 
											 | 此 DNS A/AAAA 或 CNAME 记录必须指向 control plane 机器的负载均衡器。此记录必须由集群外的客户端和集群中的所有节点解析。 | 
| Ingress VIP | 
											 | 通配符 DNS A/AAAA 或 CNAME 记录,指向以运行入口路由器 Pod 的机器(默认为 worker 节点)为目标的负载均衡器。此记录必须由集群外的客户端和集群中的所有节点解析。 | 
9.1.3. 配置 Cloud Credential Operator 工具
					Cloud Credential Operator(CCO)将云供应商凭证作为 Kubernetes 自定义资源定义(CRD)进行管理。要在 Nutanix 上安装集群,您必须将 CCO 设置为手动模式,作为安装过程的一部分。
				
					当 Cloud Credential Operator(CCO)以手动模式运行时,要从集群外部创建和管理云凭证,提取并准备 CCO 实用程序(ccoctl)二进制文件。
				
						ccoctl 工具是在 Linux 环境中运行的 Linux 二进制文件。
					
先决条件
- 您可以访问具有集群管理员权限的 OpenShift Container Platform 帐户。
- 
							已安装 OpenShift CLI(oc)。
流程
- 运行以下命令,为 OpenShift Container Platform 发行镜像设置变量: - RELEASE_IMAGE=$(./openshift-install version | awk '/release image/ {print $3}')- $ RELEASE_IMAGE=$(./openshift-install version | awk '/release image/ {print $3}')- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 运行以下命令,从 OpenShift Container Platform 发行镜像获取 CCO 容器镜像: - CCO_IMAGE=$(oc adm release info --image-for='cloud-credential-operator' $RELEASE_IMAGE -a ~/.pull-secret) - $ CCO_IMAGE=$(oc adm release info --image-for='cloud-credential-operator' $RELEASE_IMAGE -a ~/.pull-secret)- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注意- 确保 - $RELEASE_IMAGE的架构与将使用- ccoctl工具的环境架构相匹配。
- 运行以下命令,将 CCO 容器镜像中的 - ccoctl二进制文件提取到 OpenShift Container Platform 发行镜像中:- oc image extract $CCO_IMAGE \ --file="/usr/bin/ccoctl.<rhel_version>" \ -a ~/.pull-secret - $ oc image extract $CCO_IMAGE \ --file="/usr/bin/ccoctl.<rhel_version>" \- 1 - -a ~/.pull-secret- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 对于<rhel_version>,请指定与主机使用的 Red Hat Enterprise Linux (RHEL) 版本对应的值。如果没有指定值,则默认使用ccoctl.rhel8。以下值有效:- 
											rhel8: 为使用 RHEL 8 的主机指定这个值。
- 
											rhel9:为使用 RHEL 9 的主机指定这个值。
 
- 
											
 
- 运行以下命令更改权限以使 - ccoctl可执行:- chmod 775 ccoctl.<rhel_version> - $ chmod 775 ccoctl.<rhel_version>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
- 要验证 - ccoctl是否准备就绪,可以尝试显示帮助文件。运行命令时使用相对文件名,例如:- ./ccoctl.rhel9 - $ ./ccoctl.rhel9- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow