×

您需要完成以下步骤才能在 vSphere 上安装 OpenShift Container Platform 集群

  • 下载安装程序。

    如果您在脱机环境中安装,则需要从镜像内容中提取安装程序。更多信息,请参见 脱机安装的镜像镜像

  • 安装 OpenShift CLI (oc)。

    如果您在脱机环境中安装,请将 oc 安装到镜像主机。

  • 生成 SSH 密钥对。部署后,您可以使用此密钥对验证 OpenShift Container Platform 集群的节点。

  • 准备用户配置的基础架构。

  • 验证 DNS 解析。

获取安装程序

在安装 OpenShift Container Platform 之前,请在您用于安装的主机上下载安装文件。

先决条件
  • 您需要一台运行 Linux 或 macOS 的计算机,并具有 500 MB 的本地磁盘空间。

步骤
  1. 访问 Red Hat Hybrid Cloud Console 上的集群类型页面。如果您拥有 Red Hat 账户,请使用您的凭据登录。如果没有,请创建一个账户。

  2. 从页面“自行运行”部分选择您的基础设施提供商。

  3. OpenShift 安装程序下的下拉菜单中选择您的主机操作系统和架构,然后点击下载安装程序

  4. 将下载的文件放置到您希望存储安装配置文件的目录中。

    • 安装程序会在您用于安装集群的计算机上创建多个文件。安装集群完成后,您必须保留安装程序和安装程序创建的文件。这两个文件都是删除集群所必需的。

    • 即使集群在安装过程中失败,删除安装程序创建的文件也不会删除您的集群。要删除集群,请完成针对您特定云提供商的 OpenShift Container Platform 卸载过程。

  5. 解压安装程序。例如,在使用 Linux 操作系统的计算机上,运行以下命令:

    $ tar -xvf openshift-install-linux.tar.gz
  6. 从 Red Hat OpenShift 集群管理器下载安装pull 密钥。此 pull 密钥允许您对包含的授权机构提供的服务进行身份验证,包括提供 OpenShift Container Platform 组件容器镜像的 Quay.io。

或者,您可以从Red Hat 客户门户检索安装程序,您可以在其中指定要下载的安装程序版本。但是,您必须拥有有效的订阅才能访问此页面。

安装 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>

为集群节点 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 代理管理对于对集群节点进行无密码 SSH 身份验证是必需的,或者如果您想使用 ./openshift-install gather 命令。

    在某些发行版上,默认的 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 公钥。如果您在您自己配置的基础设施上安装集群,则必须向安装程序提供密钥。

准备用户配置的基础设施

在用户配置的基础设施上安装 OpenShift Container Platform 之前,必须准备底层基础设施。

本节详细介绍了在准备安装 OpenShift Container Platform 之前设置集群基础架构所需的高级步骤。这包括为集群节点配置 IP 网络和网络连接,通过防火墙启用所需端口,以及设置所需的 DNS 和负载均衡基础架构。

准备就绪后,您的集群基础架构必须满足“用户自建基础架构集群的要求”一节中列出的要求。

先决条件
步骤
  1. 如果您使用 DHCP 为集群节点提供 IP 网络配置,请配置您的 DHCP 服务。

    1. 将节点的持久 IP 地址添加到您的 DHCP 服务器配置中。在您的配置中,将相关网络接口的 MAC 地址与每个节点的预期 IP 地址匹配。

    2. 当您使用 DHCP 配置集群机器的 IP 地址时,机器也会通过 DHCP 获取 DNS 服务器信息。通过您的 DHCP 服务器配置定义集群节点使用的持久 DNS 服务器地址。

      如果您不使用 DHCP 服务,则必须在 RHCOS 安装时为节点提供 IP 网络配置和 DNS 服务器地址。如果您是从 ISO 映像安装,则可以将其作为引导参数传递。有关静态 IP 配置和高级网络选项的更多信息,请参阅“安装 RHCOS 并启动 OpenShift Container Platform 引导过程”一节。

    3. 在您的 DHCP 服务器配置中定义集群节点的主机名。有关主机名注意事项的详细信息,请参阅“通过 DHCP 设置集群节点主机名”一节。

      如果您不使用 DHCP 服务,则集群节点将通过反向 DNS 查询获取其主机名。

  2. 确保您的网络基础架构提供集群组件之间所需的网络连接。有关要求的详细信息,请参阅“用户自建基础架构的网络要求”一节。

  3. 配置您的防火墙以启用 OpenShift Container Platform 集群组件通信所需的端口。有关所需端口的详细信息,请参阅“用户自建基础架构的网络要求”一节。

    默认情况下,OpenShift Container Platform 集群的端口1936是可访问的,因为每个控制平面节点都需要访问此端口。

    避免使用 Ingress 负载均衡器公开此端口,因为这样做可能会导致公开敏感信息,例如与 Ingress 控制器相关的统计信息和指标。

  4. 设置集群所需的 DNS 基础架构。

    1. 配置 Kubernetes API、应用程序通配符、引导机器、控制平面机器和计算机器的 DNS 名称解析。

    2. 配置 Kubernetes API、引导机器、控制平面机器和计算机器的反向 DNS 解析。

      有关 OpenShift Container Platform DNS 要求的更多信息,请参阅“用户自建 DNS 要求”一节。

  5. 验证您的 DNS 配置。

    1. 从您的安装节点运行针对 Kubernetes API、通配符路由和集群节点的记录名称的 DNS 查询。验证响应中的 IP 地址是否与正确的组件相对应。

    2. 从您的安装节点运行针对负载均衡器和集群节点的 IP 地址的反向 DNS 查询。验证响应中的记录名称是否与正确的组件相对应。

      有关详细的 DNS 验证步骤,请参阅“验证用户自建基础架构的 DNS 解析”一节。

  6. 配置所需的 API 和应用程序入口负载均衡基础架构。有关要求的更多信息,请参阅“用户自建基础架构的负载均衡要求”一节。

某些负载均衡解决方案需要在初始化负载均衡之前就位集群节点的 DNS 名称解析。

验证用户自建基础架构的 DNS 解析

您可以在用户自建基础架构上安装 OpenShift Container Platform 之前验证您的 DNS 配置。

安装集群之前,必须成功执行本节中详细介绍的验证步骤。

先决条件
  • 您已为用户自建基础架构配置了所需的 DNS 记录。

步骤
  1. 从您的安装节点运行针对 Kubernetes API、通配符路由和集群节点的记录名称的 DNS 查询。验证响应中包含的 IP 地址是否与正确的组件相对应。

    1. 对 Kubernetes API 记录名称执行查询。检查结果是否指向 API 负载均衡器的 IP 地址。

      $ dig +noall +answer @<nameserver_ip> api.<cluster_name>.<base_domain> (1)
      1 <nameserver_ip>替换为名称服务器的 IP 地址,将<cluster_name>替换为您的集群名称,并将<base_domain>替换为您的基础域名。
      示例输出
      api.ocp4.example.com.		604800	IN	A	192.168.1.5
    2. 对 Kubernetes 内部 API 记录名称执行查询。检查结果是否指向 API 负载均衡器的 IP 地址。

      $ dig +noall +answer @<nameserver_ip> api-int.<cluster_name>.<base_domain>
      示例输出
      api-int.ocp4.example.com.		604800	IN	A	192.168.1.5
    3. 测试示例*.apps.<cluster_name>.<base_domain> DNS 通配符查询。所有应用程序通配符查询都必须解析到应用程序入口负载均衡器的 IP 地址。

      $ dig +noall +answer @<nameserver_ip> random.apps.<cluster_name>.<base_domain>
      示例输出
      random.apps.ocp4.example.com.		604800	IN	A	192.168.1.5

      在示例输出中,相同的负载均衡器用于 Kubernetes API 和应用程序入口流量。在生产环境中,您可以分别部署 API 和应用程序入口负载均衡器,以便您可以独立地扩展每个负载均衡器基础架构。

      您可以将random替换为另一个通配符值。例如,您可以查询到 OpenShift Container Platform 控制台的路由。

      $ dig +noall +answer @<nameserver_ip> console-openshift-console.apps.<cluster_name>.<base_domain>
      示例输出
      console-openshift-console.apps.ocp4.example.com. 604800 IN	A 192.168.1.5
    4. 对引导 DNS 记录名称运行查询。检查结果是否指向引导节点的 IP 地址。

      $ dig +noall +answer @<nameserver_ip> bootstrap.<cluster_name>.<base_domain>
      示例输出
      bootstrap.ocp4.example.com.		604800	IN	A	192.168.1.96
    5. 使用此方法对控制平面节点和计算节点的 DNS 记录名称执行查询。检查结果是否与每个节点的 IP 地址相对应。

  2. 从您的安装节点运行针对负载均衡器和集群节点的 IP 地址的反向 DNS 查询。验证响应中包含的记录名称是否与正确的组件相对应。

    1. 对 API 负载均衡器的 IP 地址执行反向查询。检查响应是否包含 Kubernetes API 和 Kubernetes 内部 API 的记录名称。

      $ dig +noall +answer @<nameserver_ip> -x 192.168.1.5
      示例输出
      5.1.168.192.in-addr.arpa. 604800	IN	PTR	api-int.ocp4.example.com. (1)
      5.1.168.192.in-addr.arpa. 604800	IN	PTR	api.ocp4.example.com. (2)
      
      1 提供 Kubernetes 内部 API 的记录名称。
      2 提供 Kubernetes API 的记录名称。

      OpenShift Container Platform 应用程序通配符不需要 PTR 记录。无需针对应用程序入口负载均衡器的 IP 地址执行反向 DNS 解析的验证步骤。

    2. 对引导节点的 IP 地址执行反向查询。检查结果是否指向引导节点的 DNS 记录名称。

      $ dig +noall +answer @<nameserver_ip> -x 192.168.1.96
      示例输出
      96.1.168.192.in-addr.arpa. 604800	IN	PTR	bootstrap.ocp4.example.com.
    3. 使用此方法对控制平面节点和计算节点的 IP 地址执行反向查询。检查结果是否与每个节点的 DNS 记录名称相对应。