×

先决条件

  • 您已查看有关OpenShift Container Platform 安装和更新流程的详细信息。

  • 安装程序需要访问 Prism Central 和 Prism Element 上的 9440 端口。您已验证 9440 端口是可访问的。

  • 如果您使用防火墙,则您已满足以下先决条件

    • 您已确认 9440 端口可访问。控制平面节点必须能够通过 9440 端口访问 Prism Central 和 Prism Element,安装才能成功。

    • 您已将防火墙配置为授予访问权限OpenShift Container Platform 所需的站点。这包括使用遥测。

  • 如果您的 Nutanix 环境使用默认的自签名 SSL/TLS 证书,请将其替换为由 CA 签名的证书。安装程序需要有效的 CA 签名的证书才能访问 Prism Central API。有关替换自签名证书的更多信息,请参阅Nutanix AOS 安全指南

    如果您的 Nutanix 环境使用内部 CA 来颁发证书,则必须在安装过程中配置集群范围的代理。有关更多信息,请参阅配置自定义 PKI

    使用 2048 位证书。如果您在 Prism Central 2022.x 中使用 4096 位证书,则安装会失败。

  • 您有一个容器镜像注册表,例如 Red Hat Quay。如果您还没有注册表,您可以使用Red Hat OpenShift 的镜像注册表创建一个镜像注册表。

  • 您已使用oc-mirror OpenShift CLI (oc) 插件将所有必需的 OpenShift Container Platform 内容和其他镜像(包括 Nutanix CSI 运算符)镜像到您的镜像注册表。

    由于安装介质位于镜像主机上,您可以使用该计算机完成所有安装步骤。

关于受限网络中的安装

在 OpenShift Container Platform 4.17 中,您可以执行不需要主动连接到互联网即可获取软件组件的安装。受限网络安装可以使用安装程序预配的基础架构或用户预配的基础架构完成,具体取决于您安装集群的云平台。

如果您选择在云平台上执行受限网络安装,您仍然需要访问其云 API。某些云功能(例如 Amazon Web Service 的 Route 53 DNS 和 IAM 服务)需要互联网访问。根据您的网络,您可能需要较少的互联网访问才能在裸机硬件、Nutanix 或 VMware vSphere 上进行安装。

要完成受限网络安装,您必须创建一个注册表,该注册表镜像 OpenShift 镜像注册表的内容并包含安装介质。您可以在镜像主机上创建此注册表,该主机可以访问互联网和您的封闭网络,或者使用满足您限制的其他方法。

其他限制

受限网络中的集群具有以下其他限制。

  • ClusterVersion 状态包含 无法检索可用更新 错误。

  • 默认情况下,您无法使用开发者目录的内容,因为您无法访问所需的镜像流标签。

生成集群节点 SSH 访问的密钥对

在 OpenShift Container Platform 安装过程中,您可以向安装程序提供 SSH 公钥。该密钥通过 Ignition 配置文件传递到 Red Hat Enterprise Linux CoreOS (RHCOS) 节点,并用于验证对节点的 SSH 访问。该密钥将添加到每个节点上 core 用户的 ~/.ssh/authorized_keys 列表中,从而启用无需密码的身份验证。

密钥传递到节点后,您可以使用密钥对以 core 用户身份通过 SSH 登录到 RHCOS 节点。要通过 SSH 访问节点,必须由 SSH 管理本地用户的私钥身份。

如果您想通过 SSH 登录到集群节点以执行安装调试或灾难恢复,则必须在安装过程中提供 SSH 公钥。./openshift-install gather 命令也需要集群节点上存在 SSH 公钥。

在需要灾难恢复和调试的生产环境中,请勿跳过此过程。

您必须使用本地密钥,而不是使用平台特定方法(例如AWS 密钥对)配置的密钥。

步骤
  1. 如果您本地机器上没有现有的 SSH 密钥对用于对集群节点进行身份验证,请创建一个。例如,在使用 Linux 操作系统的计算机上,运行以下命令:

    $ ssh-keygen -t ed25519 -N '' -f <path>/<file_name> (1)
    1 指定新 SSH 密钥的路径和文件名,例如 ~/.ssh/id_ed25519。如果您有现有的密钥对,请确保您的公钥位于 ~/.ssh 目录中。

    如果您计划安装一个使用已提交给 NIST 进行 FIPS 140-2/140-3 验证的 RHEL 加密库的 OpenShift Container Platform 集群(仅限于 x86_64ppc64les390x 架构),请不要创建使用 ed25519 算法的密钥。而是创建使用 rsaecdsa 算法的密钥。

  2. 查看 SSH 公钥

    $ cat <path>/<file_name>.pub

    例如,运行以下命令查看 ~/.ssh/id_ed25519.pub 公钥:

    $ cat ~/.ssh/id_ed25519.pub
  3. 如果尚未添加,请将 SSH 私钥身份添加到本地用户的 SSH 代理。对于无需密码的 SSH 身份验证到您的集群节点,或者如果您想使用 ./openshift-install gather 命令,都需要 SSH 代理管理密钥。

    在某些发行版中,默认的 SSH 私钥身份(例如 ~/.ssh/id_rsa~/.ssh/id_dsa)会自动管理。

    1. 如果本地用户的 ssh-agent 进程尚未运行,请将其作为后台任务启动:

      $ eval "$(ssh-agent -s)"
      示例输出
      Agent pid 31874

      如果您的集群处于 FIPS 模式,则仅使用符合 FIPS 的算法生成 SSH 密钥。密钥必须是 RSA 或 ECDSA。

  4. 将您的 SSH 私钥添加到 ssh-agent

    $ ssh-add <path>/<file_name> (1)
    1 指定 SSH 私钥的路径和文件名,例如 ~/.ssh/id_ed25519
    示例输出
    Identity added: /home/<you>/<path>/<file_name> (<computer_name>)
后续步骤
  • 安装 OpenShift Container Platform 时,请向安装程序提供 SSH 公钥。

将 Nutanix 根 CA 证书添加到系统信任库

由于安装程序需要访问 Prism Central API,因此您必须在安装 OpenShift Container Platform 集群之前将您的 Nutanix 受信任根 CA 证书添加到系统信任库。

步骤
  1. 从 Prism Central Web 控制台下载 Nutanix 根 CA 证书。

  2. 解压包含 Nutanix 根 CA 证书的压缩文件。

  3. 将您的操作系统所需的文件添加到系统信任库。例如,在 Fedora 操作系统上,运行以下命令:

    # cp certs/lin/* /etc/pki/ca-trust/source/anchors
  4. 更新系统信任库。例如,在 Fedora 操作系统上,运行以下命令:

    # update-ca-trust extract

下载 RHCOS 集群镜像

Prism Central 需要访问 Red Hat Enterprise Linux CoreOS (RHCOS) 镜像才能安装集群。您可以使用安装程序查找和下载 RHCOS 镜像,并使其通过内部 HTTP 服务器或 Nutanix Objects 提供。

先决条件
  • 获取 OpenShift Container Platform 安装程序和集群的 pull secret。对于受限网络安装,这些文件位于您的镜像主机上。

步骤
  1. 切换到包含安装程序的目录,然后运行以下命令:

    $ ./openshift-install coreos print-stream-json
  2. 使用该命令的输出查找 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"
  3. 通过内部 HTTP 服务器或 Nutanix Objects 提供镜像。

  4. 记下下载镜像的位置。在部署集群之前,您需要使用镜像位置更新安装配置文件 (install-config.yaml) 中的 platform 部分。

指定 RHCOS 镜像的 install-config.yaml 文件片段
platform:
  nutanix:
    clusterOSImage: http://example.com/images/rhcos-411.86.202210041459-0-nutanix.x86_64.qcow2

创建安装配置文件

您可以自定义在 Nutanix 上安装的 OpenShift Container Platform 集群。

先决条件
  • 您已拥有 OpenShift Container Platform 安装程序和集群的 pull secret。对于受限网络安装,这些文件位于您的镜像主机上。

  • 您已拥有在镜像注册表时创建的 imageContentSourcePolicy.yaml 文件。

  • 您已拥有下载的 Red Hat Enterprise Linux CoreOS (RHCOS) 镜像的位置。

  • 您已获得镜像注册表的证书内容。

  • 您已检索到 Red Hat Enterprise Linux CoreOS (RHCOS) 镜像并将其上传到可访问的位置。

  • 您已验证自己已满足 Nutanix 网络要求。有关更多信息,请参见“准备在 Nutanix 上安装”。

步骤
  1. 创建 install-config.yaml 文件。

    1. 切换到包含安装程序的目录,然后运行以下命令:

      $ ./openshift-install create install-config --dir <installation_directory> (1)
      1 对于 <installation_directory>,请指定用于存储安装程序创建的文件的目录名。

      指定目录时

      • 验证该目录是否具有 execute 权限。此权限是必需的,以便在安装目录下运行 Terraform 二进制文件。

      • 使用空目录。某些安装资源(例如 bootstrap X.509 证书)的有效期很短,因此您不得重用安装目录。如果您想重用另一个集群安装中的单个文件,可以将它们复制到您的目录中。但是,安装资源的文件名可能会在不同版本之间发生变化。从早期 OpenShift Container Platform 版本复制安装文件时,请谨慎操作。

    2. 在提示符下,提供云的配置详细信息。

      1. 可选:选择一个 SSH 密钥来访问您的集群机器。

        对于要在其中执行安装调试或灾难恢复的生产 OpenShift Container Platform 集群,请指定您的 ssh-agent 进程使用的 SSH 密钥。

      2. 选择 **nutanix** 作为目标平台。

      3. 输入 Prism Central 域名或 IP 地址。

      4. 输入用于登录 Prism Central 的端口。

      5. 输入用于登录 Prism Central 的凭据。

        安装程序连接到 Prism Central。

      6. 选择将管理 OpenShift Container Platform 集群的 Prism Element。

      7. 选择要使用的网络子网。

      8. 输入您为控制平面 API 访问配置的虚拟 IP 地址。

      9. 输入您为集群入口配置的虚拟 IP 地址。

      10. 输入基础域。此基础域必须与您在 DNS 记录中配置的域相同。

      11. 输入集群的描述性名称。

        您输入的集群名称必须与您在配置 DNS 记录时指定的集群名称匹配。

  2. install-config.yaml文件中,将platform.nutanix.clusterOSImage的值设置为镜像位置或名称。例如

    platform:
      nutanix:
          clusterOSImage: http://mirror.example.com/images/rhcos-47.83.202103221318-0-nutanix.x86_64.qcow2
  3. 编辑install-config.yaml文件以提供在受限网络中安装所需的附加信息。

    1. 更新pullSecret值以包含注册表的身份验证信息。

      pullSecret: '{"auths":{"<mirror_host_name>:5000": {"auth": "<credentials>","email": "[email protected]"}}}'

      对于<mirror_host_name>,指定您在镜像注册表的证书中指定的注册表域名,对于<credentials>,指定镜像注册表的base64编码的用户名和密码。

    2. 添加additionalTrustBundle参数和值。

      additionalTrustBundle: |
        -----BEGIN CERTIFICATE-----
        ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
        -----END CERTIFICATE-----

      该值必须是您用于镜像注册表的证书文件的内容。证书文件可以是现有的受信任证书颁发机构,也可以是您为镜像注册表生成的自签名证书。

    3. 添加镜像内容资源,类似于以下 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

      对于这些值,使用镜像注册表创建时生成的imageContentSourcePolicy.yaml文件。

    4. 可选:将发布策略设置为Internal

      publish: Internal

      通过设置此选项,您可以创建一个内部 Ingress Controller 和一个私有负载均衡器。

  4. 可选:更新install.config.yaml文件中的一个或多个默认配置参数以自定义安装。

    有关参数的更多信息,请参见“安装配置参数”。

    如果您要安装三节点集群,请确保将compute.replicas参数设置为0。这确保了集群的控制平面是可调度的。有关更多信息,请参见“在{platform}上安装三节点集群”。

  5. 备份install-config.yaml文件,以便您可以使用它来安装多个集群。

    install-config.yaml文件在安装过程中被使用。如果您想重用该文件,您现在必须备份它。

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: (2)
  hyperthreading: Enabled (3)
  name: master
  replicas: 3
  platform:
    nutanix: (4)
      cpus: 4
      coresPerSocket: 2
      memoryMiB: 16384
      osDisk:
        diskSizeGiB: 120
      categories: (5)
      - key: <category_key_name>
        value: <category_value>
metadata:
  creationTimestamp: null
  name: test-cluster (1)
networking:
  clusterNetwork:
  - cidr: 10.128.0.0/14
    hostPrefix: 23
  machineNetwork:
  - cidr: 10.0.0.0/16
  networkType: OVNKubernetes (6)
  serviceNetwork:
  - 172.30.0.0/16
platform:
  nutanix:
    apiVIP: 10.40.142.7 (1)
    ingressVIP: 10.40.142.8 (1)
    defaultMachinePlatform:
      bootType: Legacy
      categories: (5)
      - key: <category_key_name>
        value: <category_value>
      project: (7)
        type: name
        name: <project_name>
    prismCentral:
      endpoint:
        address: your.prismcentral.domainname (1)
        port: 9440 (1)
      password: <password> (1)
      username: <username> (1)
    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 (8)
credentialsMode: Manual
publish: External
pullSecret: '{"auths":{"<local_registry>": {"auth": "<credentials>","email": "[email protected]"}}}' (9)
fips: false (10)
sshKey: ssh-ed25519 AAAA... (11)
additionalTrustBundle: | (12)
  -----BEGIN CERTIFICATE-----
  ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
  -----END CERTIFICATE-----
imageContentSources: (13)
- 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 必需。安装程序会提示您输入此值。
2 controlPlane部分是一个单映射,但compute部分是一系列映射。为了满足不同数据结构的要求,compute部分的第一行必须以连字符-开头,而controlPlane部分的第一行则不能。尽管这两个部分目前都定义了一个单机器池,但 OpenShift Container Platform 的未来版本可能会支持在安装期间定义多个计算池。只使用一个控制平面池。
3 是否启用或禁用同时多线程处理,或超线程。默认情况下,启用同时多线程处理以提高机器内核的性能。您可以通过将参数值设置为Disabled来禁用它。如果您在某些集群机器中禁用了同时多线程处理,则必须在所有集群机器中禁用它。

如果您禁用了同时多线程处理,请确保您的容量规划考虑了机器性能的大幅下降。

4 可选:为计算和控制平面机器的机器池参数提供其他配置。
5 可选:提供一个或多个 Prism 类别键和 Prism 类别值对。这些类别键值对必须存在于 Prism Central 中。您可以为计算机器、控制平面机器或所有机器提供单独的类别。
6 要安装的集群网络插件。默认值OVNKubernetes是唯一受支持的值。
7 可选:指定与 VM 关联的项目。为项目类型指定nameuuid,然后提供相应的 UUID 或项目名称。您可以将项目关联到计算机器、控制平面机器或所有机器。
8 可选:默认情况下,安装程序会下载并安装 Red Hat Enterprise Linux CoreOS (RHCOS) 镜像。如果 Prism Central 没有互联网访问权限,您可以通过在任何 HTTP 服务器或 Nutanix Objects 上托管 RHCOS 镜像并将安装程序指向该镜像来覆盖默认行为。
9 对于<local_registry>,指定您的镜像注册表用于提供内容的注册表域名,以及可选的端口。例如registry.example.comregistry.example.com:5000。对于<credentials>,指定镜像注册表的base64编码的用户名和密码。
10 是否启用或禁用 FIPS 模式。默认情况下,FIPS 模式未启用。如果启用了 FIPS 模式,则运行 OpenShift Container Platform 的 Red Hat Enterprise Linux CoreOS (RHCOS) 机器将绕过默认的 Kubernetes 加密套件,并改用 RHCOS 提供的加密模块。

在以 FIPS 模式启动的 Red Hat Enterprise Linux (RHEL) 或 Red Hat Enterprise Linux CoreOS (RHCOS) 上运行时,OpenShift Container Platform 核心组件仅在 x86_64、ppc64le 和 s390x 架构上使用已提交给 NIST 以进行 FIPS 140-2/140-3 验证的 RHEL 加密库。

11 可选:您可以提供用于访问集群中机器的sshKey值。

对于要在其中执行安装调试或灾难恢复的生产 OpenShift Container Platform 集群,请指定您的 ssh-agent 进程使用的 SSH 密钥。

12 提供您用于镜像注册表的证书文件的内容。
13 从镜像注册表创建时生成的imageContentSourcePolicy.yaml文件的metadata.name: release-0部分提供这些值。

配置故障域

故障域通过在多个 Nutanix Prism Element(集群)之间分发控制平面和计算机器来提高 OpenShift Container Platform 集群的容错能力。

建议您配置三个故障域以确保高可用性。

先决条件
  • 您有一个安装配置文件 (install-config.yaml)。

步骤
  1. 编辑install-config.yaml文件并添加以下节以配置第一个故障域

    apiVersion: v1
    baseDomain: example.com
    compute:
    # ...
    platform:
      nutanix:
        failureDomains:
        - name: <failure_domain_name>
          prismElement:
            name: <prism_element_name>
            uuid: <prism_element_uuid>
          subnetUUIDs:
          - <network_uuid>
    # ...

    其中

    <failure_domain_name>

    指定故障域的唯一名称。名称限制为 64 个或更少字符,可以包含小写字母、数字和连字符 (-)。连字符不能位于名称的开头或结尾位置。

    <prism_element_name>

    可选。指定 Prism Element 的名称。

    <prism_element_uuid>>

    指定 Prism Element 的 UUID。

    <network_uuid>>

    指定 Prism Element 子网对象的 UUID。子网的 IP 地址前缀 (CIDR) 应包含 OpenShift Container Platform 集群使用的虚拟 IP 地址。OpenShift Container Platform 集群中的每个故障域 (Prism Element) 只支持一个子网。

  2. 根据需要,配置额外的故障域。

  3. 要将控制平面和计算机器分布在故障域中,请执行以下操作之一

    • 如果计算和控制平面机器可以共享同一组故障域,请在集群的默认机器配置下添加故障域名称。

      控制平面和计算机器共享一组故障域的示例
      apiVersion: v1
      baseDomain: example.com
      compute:
      # ...
      platform:
        nutanix:
          defaultMachinePlatform:
            failureDomains:
              - failure-domain-1
              - failure-domain-2
              - failure-domain-3
      # ...
    • 如果计算和控制平面机器必须使用不同的故障域,请在各自的机器池下添加故障域名称。

      控制平面和计算机器使用不同故障域的示例
      apiVersion: v1
      baseDomain: example.com
      compute:
      # ...
      controlPlane:
        platform:
          nutanix:
            failureDomains:
              - failure-domain-1
              - failure-domain-2
              - failure-domain-3
      # ...
      compute:
        platform:
          nutanix:
            failureDomains:
              - failure-domain-1
              - failure-domain-2
      # ...
  4. 保存文件。

在安装过程中配置集群范围的代理

生产环境可能会拒绝直接访问互联网,而是提供 HTTP 或 HTTPS 代理。您可以通过在 install-config.yaml 文件中配置代理设置来配置新的 OpenShift Container Platform 集群以使用代理。

先决条件
  • 您拥有现有的 install-config.yaml 文件。

  • 您已查看集群需要访问的站点,并确定其中任何站点是否需要绕过代理。默认情况下,所有集群出站流量都会被代理,包括对托管云提供商 API 的调用。如有必要,您可以将站点添加到 Proxy 对象的 spec.noProxy 字段以绕过代理。

    Proxy 对象的 status.noProxy 字段将填充安装配置中 networking.machineNetwork[].cidrnetworking.clusterNetwork[].cidrnetworking.serviceNetwork[] 字段的值。

    对于在 Amazon Web Services (AWS)、Google Cloud Platform (GCP)、Microsoft Azure 和 Red Hat OpenStack Platform (RHOSP) 上的安装,Proxy 对象的 status.noProxy 字段还会填充实例元数据端点 (169.254.169.254)。

步骤
  1. 编辑您的 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 如果提供,安装程序将生成一个名为 user-ca-bundle 的 config map,位于 openshift-config 命名空间中,其中包含代理 HTTPS 连接所需的一个或多个额外的 CA 证书。然后,集群网络操作员创建一个 trusted-ca-bundle config map,将这些内容与 Red Hat Enterprise Linux CoreOS (RHCOS) 信任捆绑包合并,并且此 config map 在 Proxy 对象的 trustedCA 字段中引用。除非代理的身份证书由 RHCOS 信任捆绑包中的授权机构签名,否则需要 additionalTrustBundle 字段。
    5 可选:确定 Proxy 对象的配置以在 trustedCA 字段中引用 user-ca-bundle config map 的策略。允许的值为 ProxyonlyAlways。使用 Proxyonly 仅在配置 http/https 代理时引用 user-ca-bundle config map。使用 Always 始终引用 user-ca-bundle config map。默认值为 Proxyonly

    安装程序不支持代理 readinessEndpoints 字段。

    如果安装程序超时,请重新启动,然后使用安装程序的 wait-for 命令完成部署。例如

    $ ./openshift-install wait-for install-complete --log-level debug
  2. 保存文件并在安装 OpenShift Container Platform 时引用它。

安装程序创建一个名为 cluster 的集群范围代理,该代理使用提供的 install-config.yaml 文件中的代理设置。如果未提供代理设置,则仍会创建 cluster Proxy 对象,但它将具有 nil spec

仅支持名为 clusterProxy 对象,并且无法创建其他代理。

安装 OpenShift CLI

您可以安装 OpenShift CLI (oc) 以通过命令行界面与 OpenShift Container Platform 交互。您可以在 Linux、Windows 或 macOS 上安装 oc

如果您安装了早期版本的 oc,则无法使用它来完成 OpenShift Container Platform 4.17 中的所有命令。下载并安装新版本的 oc

在 Linux 上安装 OpenShift CLI

您可以使用以下步骤在 Linux 上安装 OpenShift CLI (oc) 二进制文件。

步骤
  1. 导航到 Red Hat 客户门户网站上的 OpenShift Container Platform 下载页面

  2. 从“产品变体”下拉列表中选择体系结构。

  3. 从“版本”下拉列表中选择合适的版本。

  4. 单击“OpenShift v4.17 Linux 客户端”条目旁边的“立即下载”并保存文件。

  5. 解压存档

    $ tar xvf <file>
  6. oc 二进制文件放在 PATH 上的目录中。

    要检查您的 PATH,请执行以下命令

    $ echo $PATH
验证
  • 安装 OpenShift CLI 后,可以使用 oc 命令。

    $ oc <command>

在 Windows 上安装 OpenShift CLI

您可以使用以下步骤在 Windows 上安装 OpenShift CLI (oc) 二进制文件。

步骤
  1. 导航到 Red Hat 客户门户网站上的 OpenShift Container Platform 下载页面

  2. 从“版本”下拉列表中选择合适的版本。

  3. 单击“OpenShift v4.17 Windows 客户端”条目旁边的“立即下载”并保存文件。

  4. 使用 ZIP 程序解压存档。

  5. oc 二进制文件移动到 PATH 上的目录中。

    要检查您的 PATH,请打开命令提示符并执行以下命令

    C:\> path
验证
  • 安装 OpenShift CLI 后,可以使用 oc 命令。

    C:\> oc <command>

在 macOS 上安装 OpenShift CLI

您可以使用以下步骤在 macOS 上安装 OpenShift CLI (oc) 二进制文件。

步骤
  1. 导航到 Red Hat 客户门户网站上的 OpenShift Container Platform 下载页面

  2. 从“版本”下拉列表中选择合适的版本。

  3. 单击“OpenShift v4.17 macOS 客户端”条目旁边的“立即下载”并保存文件。

    对于 macOS arm64,请选择“OpenShift v4.17 macOS arm64 客户端”条目。

  4. 解压存档。

  5. oc 二进制文件移动到 PATH 上的目录中。

    要检查您的 PATH,请打开终端并执行以下命令

    $ echo $PATH
验证
  • 使用 oc 命令验证您的安装

    $ oc <command>

配置 Nutanix 的 IAM

安装集群需要云凭据操作器 (CCO) 以手动模式运行。虽然安装程序会将 CCO 配置为手动模式,但您必须指定身份和访问管理密钥。

先决条件
  • 您已配置ccoctl二进制文件。

  • 您拥有install-config.yaml文件。

步骤
  1. 创建一个包含以下格式凭据数据的 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>
    1 指定身份验证类型。仅支持基本身份验证。
    2 指定 Prism Central 凭据。
    3 可选:指定 Prism Element 凭据。
  2. 通过运行以下命令,使用安装文件中的发行版镜像设置$RELEASE_IMAGE变量

    $ RELEASE_IMAGE=$(./openshift-install version | awk '/release image/ {print $3}')
  3. 通过运行以下命令,从 OpenShift Container Platform 发行版镜像中提取CredentialsRequest自定义资源 (CR) 列表

    $ oc adm release extract \
      --from=$RELEASE_IMAGE \
      --credentials-requests \
      --included \(1)
      --install-config=<path_to_directory_with_installation_configuration>/install-config.yaml \(2)
      --to=<path_to_directory_for_credentials_requests> (3)
    1 --included参数仅包含特定集群配置所需的清单。
    2 指定install-config.yaml文件的路径。
    3 指定要存储CredentialsRequest对象的目录的路径。如果指定的目录不存在,则此命令会创建它。
    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
  4. 通过运行以下命令,使用ccoctl工具处理所有CredentialsRequest对象

    $ ccoctl nutanix create-shared-secrets \
      --credentials-requests-dir=<path_to_credentials_requests_directory> \(1)
      --output-dir=<ccoctl_output_dir> \(2)
      --credentials-source-filepath=<path_to_credentials_file> (3)
    1 指定包含组件CredentialsRequests对象文件的目录的路径。
    2 可选:指定ccoctl实用程序要创建对象的目录。默认情况下,实用程序会在运行命令的目录中创建对象。
    3 可选:指定包含凭据数据 YAML 文件的目录。默认情况下,ccoctl期望此文件位于<home_directory>/.nutanix/credentials
  5. 编辑install-config.yaml配置文件,将credentialsMode参数设置为Manual

    install-config.yaml配置文件示例
    apiVersion: v1
    baseDomain: cluster1.example.com
    credentialsMode: Manual (1)
    ...
    1 添加此行将credentialsMode参数设置为Manual
  6. 通过运行以下命令创建安装清单

    $ openshift-install create manifests --dir <installation_directory> (1)
    1 指定包含集群install-config.yaml文件的目录的路径。
  7. 通过运行以下命令将生成的凭据文件复制到目标清单目录

    $ cp <ccoctl_output_dir>/manifests/*credentials.yaml ./<installation_directory>/manifests
验证
  • 确保manifests目录中存在相应的密钥。

    $ 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

部署集群

您可以在兼容的云平台上安装 OpenShift Container Platform。

您只能在初始安装期间运行安装程序的create cluster命令一次。

先决条件
  • 您拥有 OpenShift Container Platform 安装程序和集群的拉取密钥。

  • 您已验证主机上的云提供商帐户是否具有部署集群的正确权限。权限不正确的帐户会导致安装过程失败,并显示一条错误消息,其中显示缺少的权限。

步骤
  • 切换到包含安装程序的目录并初始化集群部署

    $ ./openshift-install create cluster --dir <installation_directory> \ (1)
        --log-level=info (2)
    
    1 对于<installation_directory>,请指定自定义./install-config.yaml文件的路径。
    2 要查看不同的安装详细信息,请指定warndebugerror代替info
验证

集群部署成功完成后

  • 终端将显示访问集群的方向,包括指向 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 证书。有关更多信息,请参阅有关“从过期的控制平面证书中恢复”的文档。

  • 建议您在生成 Ignition 配置文件后 12 小时内使用它们,因为 24 小时证书会在集群安装后 16 到 22 小时之间轮换。在 12 小时内使用 Ignition 配置文件,可以避免在安装过程中证书更新运行时安装失败。

安装后

完成以下步骤以完成集群的配置。

禁用默认的 OperatorHub 目录源

在 OpenShift Container Platform 安装期间,默认情况下会为 OperatorHub 配置从 Red Hat 和社区项目提供的內容获取内容的操作符目录。在受限网络环境中,您必须以集群管理员身份禁用默认目录。

步骤
  • 通过将disableAllDefaultSources: true添加到OperatorHub对象来禁用默认目录的源

    $ oc patch OperatorHub cluster --type json \
        -p '[{"op": "add", "path": "/spec/disableAllDefaultSources", "value": true}]'

或者,您可以使用 Web 控制台来管理目录源。在**管理**→**集群设置**→**配置**→**OperatorHub**页面上,单击**源**选项卡,您可以在其中创建、更新、删除、禁用和启用各个源。

将策略资源安装到集群中

使用 oc-mirror OpenShift CLI (oc) 插件镜像 OpenShift Container Platform 内容会创建资源,其中包括catalogSource-certified-operator-index.yamlimageContentSourcePolicy.yaml

  • ImageContentSourcePolicy资源将镜像注册表与源注册表关联起来,并将来自在线注册表的镜像拉取请求重定向到镜像注册表。

  • CatalogSource资源由操作符生命周期管理器 (OLM) 用于检索有关镜像注册表中可用操作符的信息,这允许用户发现和安装操作符。

安装集群后,您必须将这些资源安装到集群中。

先决条件
  • 您已将镜像集镜像到断开连接的环境中的注册表。

  • 您可以作为具有cluster-admin角色的用户访问集群。

步骤
  1. 以具有cluster-admin角色的用户身份登录到 OpenShift CLI。

  2. 将结果目录中的 YAML 文件应用于集群

    $ oc apply -f ./oc-mirror-workspace/results-<id>/
验证
  1. 验证ImageContentSourcePolicy资源是否已成功安装

    $ oc get imagecontentsourcepolicy
  2. 验证CatalogSource资源是否已成功安装

    $ oc get catalogsource --all-namespaces

配置默认存储容器

安装集群后,您必须安装 Nutanix CSI Operator 并为集群配置默认存储容器。

有关更多信息,请参阅 Nutanix 文档,了解如何安装 CSI Operator如何配置注册表存储

OpenShift Container Platform 的遥测访问

在 OpenShift Container Platform 4.17 中,默认运行的遥测服务用于提供集群健康状况和更新成功情况的指标,需要访问互联网。如果您的集群连接到互联网,则遥测服务会自动运行,并且您的集群将注册到OpenShift 集群管理器

确认您的OpenShift 集群管理器清单正确无误后(无论是通过遥测自动维护还是手动使用 OpenShift 集群管理器维护),请使用订阅监控来跟踪您在帐户或多集群级别的 OpenShift Container Platform 订阅。

后续步骤