第 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}')
运行以下命令,从 OpenShift Container Platform 发行镜像获取 CCO 容器镜像:
$ CCO_IMAGE=$(oc adm release info --image-for='cloud-credential-operator' $RELEASE_IMAGE -a ~/.pull-secret)
注意确保
$RELEASE_IMAGE
的架构与将使用ccoctl
工具的环境架构相匹配。运行以下命令,将 CCO 容器镜像中的
ccoctl
二进制文件提取到 OpenShift Container Platform 发行镜像中:$ oc image extract $CCO_IMAGE \ --file="/usr/bin/ccoctl.<rhel_version>" \1 -a ~/.pull-secret
- 1
- 对于
<rhel_version>
,请指定与主机使用的 Red Hat Enterprise Linux (RHEL) 版本对应的值。如果没有指定值,则默认使用ccoctl.rhel8
。以下值有效:-
rhel8
: 为使用 RHEL 8 的主机指定这个值。 -
rhel9
:为使用 RHEL 9 的主机指定这个值。
-
运行以下命令更改权限以使
ccoctl
可执行:$ chmod 775 ccoctl.<rhel_version>
验证
要验证
ccoctl
是否准备就绪,可以尝试显示帮助文件。运行命令时使用相对文件名,例如:$ ./ccoctl.rhel9
输出示例
OpenShift credentials provisioning tool Usage: ccoctl [command] Available Commands: aws Manage credentials objects for AWS cloud azure Manage credentials objects for Azure gcp Manage credentials objects for Google cloud help Help about any command ibmcloud Manage credentials objects for IBM Cloud nutanix Manage credentials objects for Nutanix Flags: -h, --help help for ccoctl Use "ccoctl [command] --help" for more information about a command.
其他资源