第 11 章 在 Nutanix 上安装

11.1. 准备在 Nutanix 上安装

在安装 OpenShift Container Platform 集群前,请确定您的 Nutanix 环境满足以下要求。

11.1.1. Nutanix 版本要求

您必须将 OpenShift Container Platform 集群安装到符合以下要求的 Nutanix 环境。

表 11.1. Nutanix 虚拟环境的版本要求

组件所需的版本

Nutanix AOS

5.20.4+ 或 6.5.1+

Prism Central

2022.4+

11.1.2. 环境要求

在安装 OpenShift Container Platform 集群前,请查看以下 Nutanix AOS 环境要求。

11.1.2.1. 所需的帐户权限

安装程序需要访问具有所需权限的 Nutanix 帐户,以部署集群并维护其每日操作。以下选项可供您使用:

  • 您可以使用具有管理特权的本地 Prism Central 用户帐户。使用本地帐户是授予对具有所需权限的帐户访问权限的最快的方法。
  • 如果机构的安全策略要求您使用更严格的权限集,请使用下表中列出的权限在 Prism Central 中创建自定义 Cloud Native 角色。然后,您可以将角色分配给作为 Prism Central 身份验证目录成员的用户帐户。在为角色分配实体时,请确保用户只能访问部署虚拟机所需的 Prism Element 和子网。

    如需更多信息,请参阅 Nutanix 文档中关于创建自定义云原生角色分配角色的内容。

例 11.1. 创建自定义云原生角色所需的权限

Nutanix 对象Nutanix API 中所需的权限描述

Categories

Create_Category_Mapping
Create_Or_Update_Name_Category
Create_Or_Update_Value_Category
Delete_Category_Mapping
Delete_Name_Category
Delete_Value_Category
View_Category_Mapping
View_Name_Category
View_Value_Category

创建、读取和删除分配给 OpenShift Container Platform 机器的类别。

镜像

Create_Image
Delete_Image
View_Image

创建、读取和删除用于 OpenShift Container Platform 机器的操作系统镜像。

虚拟机

Create_Virtual_Machine
Delete_Virtual_Machine
View_Virtual_Machine

创建、读取和删除 OpenShift Container Platform 机器。

Clusters

View_Cluster

查看托管 OpenShift Container Platform 机器的 Prism Element 集群。

子网

View_Subnet

查看托管 OpenShift Container Platform 机器的子网。

11.1.2.2. 集群限制

可用资源因集群而异。Nutanix 环境中可能的集群数量主要受可用的存储空间限制,以及与集群所创建的资源相关的限制,以及部署集群所需的资源(如 IP 地址和网络)。

11.1.2.3. 集群资源

使用标准集群至少需要 800 GB 存储。

当您部署使用安装程序置备的基础架构的 OpenShift Container Platform 集群时,安装程序必须能够在 Nutanix 实例中创建多个资源。虽然这些资源使用 856 GB 存储,但 bootstrap 节点会作为安装过程的一部分被销毁。

标准的 OpenShift Container Platform 安装会创建以下资源:

  • 1 个标签
  • 虚拟机:

    • 1 个磁盘镜像
    • 1 个临时 bootstrap 节点
    • 3 个 control plane 节点
    • 3 个计算机器

11.1.2.4. 网络要求

网络必须使用 AHV IP 地址管理 (IPAM),并确保它被配置为为集群机器提供持久的 IP 地址。另外,在安装 OpenShift Container Platform 集群前创建以下网络资源:

  • IP 地址
  • DNS 记录
注意

建议集群中的每个 OpenShift Container Platform 节点都可以访问可通过 DHCP 发现的网络时间协议 (NTP) 服务器。没有 NTP 服务器即可安装。但是,NTP 服务器可防止错误通常与异步服务器时钟相关联。

11.1.2.4.1. 所需的 IP 地址

安装程序置备的安装需要两个静态虚拟 IP (VIP) 地址:

  • API 的 VIP 地址是必需的。此地址用于访问集群 API。
  • 需要一个 ingress 的 VIP 地址。此地址用于集群入口流量。

安装 OpenShift Container Platform 集群时,可以指定这些 IP 地址。

11.1.2.4.2. DNS 记录

您必须在适当的 DNS 服务器中为托管 OpenShift Container Platform 集群的 Nutanix 实例创建两个静态 IP 地址的 DNS 记录。在每个记录中,<cluster_name> 是集群名称,<base_domain> 是您 在安装集群时指定的集群基域。

完整的 DNS 记录采用以下形式: <component>.<cluster_name>.<base_domain>.

表 11.2. 所需的 DNS 记录

组件记录描述

API VIP

api.<cluster_name>.<base_domain>.

此 DNS A/AAAA 或 CNAME 记录必须指向 control plane 机器的负载均衡器。此记录必须由集群外的客户端和集群中的所有节点解析。

Ingress VIP

*.apps.<cluster_name>.<base_domain>.

通配符 DNS A/AAAA 或 CNAME 记录,指向以运行入口路由器 Pod 的机器(默认为 worker 节点)为目标的负载均衡器。此记录必须由集群外的客户端和集群中的所有节点解析。

11.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)。

流程

  1. 运行以下命令来获取 OpenShift Container Platform 发行镜像:

    $ RELEASE_IMAGE=$(./openshift-install version | awk '/release image/ {print $3}')
  2. 运行以下命令,从 OpenShift Container Platform 发行镜像获取 CCO 容器镜像:

    $ CCO_IMAGE=$(oc adm release info --image-for='cloud-credential-operator' $RELEASE_IMAGE -a ~/.pull-secret)
    注意

    确保 $RELEASE_IMAGE 的架构与将使用 ccoctl 工具的环境架构相匹配。

  3. 运行以下命令,将 CCO 容器镜像中的 ccoctl 二进制文件提取到 OpenShift Container Platform 发行镜像中:

    $ oc image extract $CCO_IMAGE --file="/usr/bin/ccoctl" -a ~/.pull-secret
  4. 运行以下命令更改权限以使 ccoctl 可执行:

    $ chmod 775 ccoctl

验证

  • 要验证 ccoctl 是否可使用,请运行以下命令来显示帮助文件:

    $ ccoctl --help

    ccoctl --help 的输出

    OpenShift credentials provisioning tool
    
    Usage:
      ccoctl [command]
    
    Available Commands:
      alibabacloud Manage credentials objects for alibaba cloud
      aws          Manage credentials objects for AWS cloud
      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.