×

要准备在 Azure 上安装 OpenShift Container Platform 集群,请完成以下步骤

OpenShift Container Platform 的互联网访问

在 OpenShift Container Platform 4.17 中,您需要访问互联网才能安装集群。

您必须具有互联网访问权限才能

  • 访问OpenShift 集群管理器以下载安装程序并执行订阅管理。如果集群具有互联网访问权限并且您没有禁用遥测,则该服务会自动授权您的集群。

  • 访问Quay.io以获取安装集群所需的软件包。

  • 获取执行集群更新所需的软件包。

如果您的集群无法直接访问互联网,则可以在您配置的某些类型的基础架构上执行受限网络安装。在此过程中,您将下载所需的内容并使用它来使用安装包填充镜像注册表。对于某些安装类型,您安装集群的环境将不需要互联网访问。在更新集群之前,您需要更新镜像注册表的内容。

生成集群节点 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目录中。

    如果您计划安装一个OpenShift Container Platform集群,该集群仅在x86_64ppc64les390x架构上使用已提交给NIST进行FIPS 140-2/140-3验证的RHEL加密库,请不要创建使用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公钥。

获取安装程序

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

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

步骤
  1. 访问Red Hat混合云控制台上的集群类型页面。如果您有Red Hat帐户,请使用您的凭据登录。如果没有,请创建一个帐户。

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

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

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

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

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

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

    $ tar -xvf openshift-install-linux.tar.gz
  6. 从Red Hat OpenShift集群管理器下载您的安装pull secret。此pull secret允许您对包含的授权机构(包括提供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>

OpenShift Container Platform的遥测访问

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

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

其他资源

准备 Azure 磁盘加密集

OpenShift Container Platform 安装程序可以使用具有用户管理密钥的现有磁盘加密集。要启用此功能,您可以在 Azure 中创建一个磁盘加密集并将密钥提供给安装程序。

步骤
  1. 通过运行以下命令为 Azure 资源组设置以下环境变量

    $ export RESOURCEGROUP="<resource_group>" \(1)
        LOCATION="<location>" (2)
    1 指定您将在其中创建磁盘加密集和加密密钥的 Azure 资源组的名称。为避免在销毁集群后丢失对密钥的访问权限,您应在与安装集群的资源组不同的资源组中创建磁盘加密集。
    2 指定您将在其中创建资源组的 Azure 位置。
  2. 通过运行以下命令为 Azure 密钥保管库和磁盘加密集设置以下环境变量

    $ export KEYVAULT_NAME="<keyvault_name>" \(1)
        KEYVAULT_KEY_NAME="<keyvault_key_name>" \(2)
        DISK_ENCRYPTION_SET_NAME="<disk_encryption_set_name>" (3)
    1 指定您将创建的 Azure 密钥保管库的名称。
    2 指定您将创建的加密密钥的名称。
    3 指定您将创建的磁盘加密集的名称。
  3. 通过运行以下命令设置 Azure 服务主体的 ID 的环境变量

    $ export CLUSTER_SP_ID="<service_principal_id>" (1)
    1 指定您将用于此安装的服务主体的 ID。
  4. 通过运行以下命令启用 Azure 中的主机级加密

    $ az feature register --namespace "Microsoft.Compute" --name "EncryptionAtHost"
    $ az feature show --namespace Microsoft.Compute --name EncryptionAtHost
    $ az provider register -n Microsoft.Compute
  5. 通过运行以下命令创建一个 Azure 资源组来保存磁盘加密集和相关资源

    $ az group create --name $RESOURCEGROUP --location $LOCATION
  6. 通过运行以下命令创建一个 Azure 密钥保管库

    $ az keyvault create -n $KEYVAULT_NAME -g $RESOURCEGROUP -l $LOCATION \
        --enable-purge-protection true
  7. 通过运行以下命令在密钥保管库中创建一个加密密钥

    $ az keyvault key create --vault-name $KEYVAULT_NAME -n $KEYVAULT_KEY_NAME \
        --protection software
  8. 通过运行以下命令捕获密钥保管库的 ID

    $ KEYVAULT_ID=$(az keyvault show --name $KEYVAULT_NAME --query "[id]" -o tsv)
  9. 通过运行以下命令捕获密钥保管库中的密钥 URL

    $ KEYVAULT_KEY_URL=$(az keyvault key show --vault-name $KEYVAULT_NAME --name \
        $KEYVAULT_KEY_NAME --query "[key.kid]" -o tsv)
  10. 通过运行以下命令创建一个磁盘加密集

    $ az disk-encryption-set create -n $DISK_ENCRYPTION_SET_NAME -l $LOCATION -g \
        $RESOURCEGROUP --source-vault $KEYVAULT_ID --key-url $KEYVAULT_KEY_URL
  11. 通过运行以下命令授予 DiskEncryptionSet 资源对密钥保管库的访问权限

    $ DES_IDENTITY=$(az disk-encryption-set show -n $DISK_ENCRYPTION_SET_NAME -g \
        $RESOURCEGROUP --query "[identity.principalId]" -o tsv)
    $ az keyvault set-policy -n $KEYVAULT_NAME -g $RESOURCEGROUP --object-id \
        $DES_IDENTITY --key-permissions wrapkey unwrapkey get
  12. 通过运行以下命令授予 Azure 服务主体读取 DiskEncryptionSet 的权限

    $ DES_RESOURCE_ID=$(az disk-encryption-set show -n $DISK_ENCRYPTION_SET_NAME -g \
        $RESOURCEGROUP --query "[id]" -o tsv)
    $ az role assignment create --assignee $CLUSTER_SP_ID --role "<reader_role>" \(1)
        --scope $DES_RESOURCE_ID -o jsonc
    1 指定具有对磁盘加密集的读取权限的 Azure 角色。您可以使用`Owner`角色或具有必要权限的自定义角色。