×

在创建使用托管控制平面 (HCP) 的 AWS 上的 Red Hat OpenShift 服务 (ROSA) 集群时,您可以使用您自己的容器网络接口 (CNI) 插件。您可以创建一个没有 CNI 的 ROSA 与 HCP 集群,并在集群创建后安装您自己的 CNI 插件。

对于选择使用自己 CNI 的客户,CNI 插件支持的责任在于客户,并需与其选择的 CNI 供应商协调。

使用托管控制平面的 ROSA 的默认插件是 OVN-Kubernetes 网络插件。此插件是 Red Hat 支持的唯一用于 ROSA 与 HCP 的 CNI 插件。

如果您选择对 ROSA 与 HCP 集群使用您自己的 CNI,强烈建议您在创建集群之前从插件供应商处获得商业支持。对于选择使用自己 CNI 的客户,Red Hat 支持无法协助处理与 CNI 相关的問題,例如 Pod 之间的流量。Red Hat 仍然为所有非 CNI 问题提供支持。如果您需要 Red Hat 提供与 CNI 相关的支持,则必须使用默认的 OVN-Kubernetes 网络插件安装集群。有关更多信息,请参阅 责任矩阵

创建无 CNI 插件的 ROSA 与 HCP 集群

先决条件

创建帐户范围的 STS 角色和策略

在使用 Red Hat OpenShift Service on AWS (ROSA) CLI (rosa) 创建使用托管控制平面 (HCP) 的 Red Hat OpenShift Service on AWS (ROSA) 集群之前,请创建所需的帐户范围角色和策略,包括 Operator 策略。

ROSA 与 HCP 集群需要附加了 AWS 托管策略的帐户和 Operator 角色。不支持客户管理的策略。有关 ROSA 与 HCP 集群的 AWS 托管策略的更多信息,请参阅 AWS 托管策略,用于 ROSA 帐户角色

先决条件
  • 您已完成 ROSA 与 HCP 的 AWS 先决条件。

  • 您有可用的 AWS 服务配额。

  • 您已在 AWS 控制台中启用 ROSA 服务。

  • 您已在安装主机上安装并配置了最新的 ROSA CLI (rosa)。

  • 您已使用 ROSA CLI 登录到您的 Red Hat 帐户。

步骤
  1. 如果它们不存在于您的 AWS 帐户中,请通过运行以下命令创建所需的帐户范围 STS 角色并附加策略

    $ rosa create account-roles --hosted-cp
  2. 可选:通过运行以下命令将您的前缀设置为环境变量

    $ export ACCOUNT_ROLES_PREFIX=<account_role_prefix>
    • 通过运行以下命令查看变量的值

      $ echo $ACCOUNT_ROLES_PREFIX
      示例输出
      ManagedOpenShift

有关 ROSA 的 AWS 托管 IAM 策略的更多信息,请参阅 用于 ROSA 的 AWS 托管 IAM 策略

创建 OpenID Connect 配置

使用 AWS 上的 Red Hat OpenShift 服务集群时,您可以在创建集群之前创建 OpenID Connect (OIDC) 配置。此配置已注册,可与 OpenShift 集群管理器一起使用。

先决条件
  • 您已在安装主机上安装并配置了最新的 Red Hat OpenShift Service on AWS (ROSA) CLI,即 rosa

步骤
  1. 要与 AWS 资源一起创建您的 OIDC 配置,请运行以下命令

    $ rosa create oidc-config --mode=auto --yes

    此命令将返回以下信息。

    示例输出
    ? Would you like to create a Managed (Red Hat hosted) OIDC Configuration Yes
    I: Setting up managed OIDC configuration
    I: To create Operator Roles for this OIDC Configuration, run the following command and remember to replace <user-defined> with a prefix of your choice:
    	rosa create operator-roles --prefix <user-defined> --oidc-config-id 13cdr6b
    If you are going to create a Hosted Control Plane cluster please include '--hosted-cp'
    I: Creating OIDC provider using 'arn:aws:iam::4540112244:user/userName'
    ? Create the OIDC provider? Yes
    I: Created OIDC provider with ARN 'arn:aws:iam::4540112244:oidc-provider/dvbwgdztaeq9o.cloudfront.net/13cdr6b'

    创建集群时,您必须提供 OIDC 配置 ID。CLI 输出为 --mode auto 提供此值,否则您必须根据 aws CLI 输出确定这些值,用于 --mode manual

  2. 可选:您可以将 OIDC 配置 ID 保存为变量,以便稍后使用。运行以下命令保存变量

    $ export OIDC_ID=<oidc_config_id>(1)
    1 在上例输出中,OIDC 配置 ID 为 13cdr6b。
    • 通过运行以下命令查看变量的值

      $ echo $OIDC_ID
      示例输出
      13cdr6b
验证
  • 您可以列出与您的用户组织关联的集群可用的 OIDC 配置。运行以下命令

    $ rosa list oidc-config
    示例输出
    ID                                MANAGED  ISSUER URL                                                             SECRET ARN
    2330dbs0n8m3chkkr25gkkcd8pnj3lk2  true     https://dvbwgdztaeq9o.cloudfront.net/2330dbs0n8m3chkkr25gkkcd8pnj3lk2
    233hvnrjoqu14jltk6lhbhf2tj11f8un  false    https://oidc-r7u1.s3.us-east-1.amazonaws.com                           aws:secretsmanager:us-east-1:242819244:secret:rosa-private-key-oidc-r7u1-tM3MDN
    

创建 Operator 角色和策略

使用 ROSA 与 HCP 集群时,必须创建使用托管控制平面 (HCP) 部署的 Red Hat OpenShift Service on AWS (ROSA) 所需的 Operator IAM 角色。集群 Operator 使用 Operator 角色来获取执行集群操作(例如管理后端存储、云提供商凭据和对集群的外部访问)所需的临时权限。

先决条件
  • 您已完成 ROSA 与 HCP 的 AWS 先决条件。

  • 您已在安装主机上安装并配置了最新的 Red Hat OpenShift Service on AWS ROSA CLI (rosa)。

  • 您已创建帐户范围的 AWS 角色。

步骤
  1. 使用以下命令将您的前缀名称设置为环境变量

    $ export OPERATOR_ROLES_PREFIX=<prefix_name>
  2. 要创建您的 Operator 角色,请运行以下命令

    $ rosa create operator-roles --hosted-cp --prefix=$OPERATOR_ROLES_PREFIX --oidc-config-id=$OIDC_ID --installer-role-arn arn:aws:iam::${AWS_ACCOUNT_ID}:role/${ACCOUNT_ROLES_PREFIX}-HCP-ROSA-Installer-Role

    以下细分提供了 Operator 角色创建的选项。

    $ rosa create operator-roles --hosted-cp
    	--prefix=$OPERATOR_ROLES_PREFIX (1)
    	--oidc-config-id=$OIDC_ID (2)
    	--installer-role-arn arn:aws:iam::${AWS_ACCOUNT_ID}:role/${ACCOUNT_ROLES_PREFIX}-HCP-ROSA-Installer-Role (3)
    1 创建这些 Operator 角色时,必须提供前缀。否则会产生错误。请参阅本节的其他资源,了解有关 Operator 前缀的信息。
    2 此值为为您创建的 ROSA 与 HCP 集群的 OIDC 配置 ID。
    3 此值为创建 ROSA 帐户角色时创建的安装程序角色 ARN。

    您必须包含 --hosted-cp 参数才能为 ROSA 与 HCP 集群创建正确的角色。此命令将返回以下信息。

    示例输出
    ? Role creation mode: auto
    ? Operator roles prefix: <pre-filled_prefix> (1)
    ? OIDC Configuration ID: 23soa2bgvpek9kmes9s7os0a39i13qm4 | https://dvbwgdztaeq9o.cloudfront.net/23soa2bgvpek9kmes9s7os0a39i13qm4 (2)
    ? Create hosted control plane operator roles: Yes
    W: More than one Installer role found
    ? Installer role ARN: arn:aws:iam::4540112244:role/<prefix>-HCP-ROSA-Installer-Role
    ? Permissions boundary ARN (optional):
    I: Reusable OIDC Configuration detected. Validating trusted relationships to operator roles:
    I: Creating roles using 'arn:aws:iam::4540112244:user/<userName>'
    I: Created role '<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials'
    I: Created role '<prefix>-openshift-cloud-network-config-controller-cloud-credenti' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-cloud-network-config-controller-cloud-credenti'
    I: Created role '<prefix>-kube-system-kube-controller-manager' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-kube-controller-manager'
    I: Created role '<prefix>-kube-system-capa-controller-manager' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-capa-controller-manager'
    I: Created role '<prefix>-kube-system-control-plane-operator' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-control-plane-operator'
    I: Created role '<prefix>-kube-system-kms-provider' with ARN 'arn:aws:iam::4540112244:role/<prefix>-kube-system-kms-provider'
    I: Created role '<prefix>-openshift-image-registry-installer-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-image-registry-installer-cloud-credentials'
    I: Created role '<prefix>-openshift-ingress-operator-cloud-credentials' with ARN 'arn:aws:iam::4540112244:role/<prefix>-openshift-ingress-operator-cloud-credentials'
    I: To create a cluster with these roles, run the following command:
    	rosa create cluster --sts --oidc-config-id 23soa2bgvpek9kmes9s7os0a39i13qm4 --operator-roles-prefix <prefix> --hosted-cp
    1 此字段已预先填充您在初始创建命令中设置的前缀。
    2 此字段要求您选择为您的 ROSA 与 HCP 集群创建的 OIDC 配置。

    Operator 角色现已创建并可用于创建您的 ROSA 与 HCP 集群。

验证
  • 您可以列出与您的 ROSA 帐户关联的 Operator 角色。运行以下命令

    $ rosa list operator-roles
    示例输出
    I: Fetching operator roles
    ROLE PREFIX  AMOUNT IN BUNDLE
    <prefix>      8
    ? Would you like to detail a specific prefix Yes (1)
    ? Operator Role Prefix: <prefix>
    ROLE NAME                                                         ROLE ARN                                                                                         VERSION  MANAGED
    <prefix>-kube-system-capa-controller-manager                       arn:aws:iam::4540112244:role/<prefix>-kube-system-capa-controller-manager                       4.13     No
    <prefix>-kube-system-control-plane-operator                        arn:aws:iam::4540112244:role/<prefix>-kube-system-control-plane-operator                        4.13     No
    <prefix>-kube-system-kms-provider                                  arn:aws:iam::4540112244:role/<prefix>-kube-system-kms-provider                                  4.13     No
    <prefix>-kube-system-kube-controller-manager                       arn:aws:iam::4540112244:role/<prefix>-kube-system-kube-controller-manager                       4.13     No
    <prefix>-openshift-cloud-network-config-controller-cloud-credenti  arn:aws:iam::4540112244:role/<prefix>-openshift-cloud-network-config-controller-cloud-credenti  4.13     No
    <prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials       arn:aws:iam::4540112244:role/<prefix>-openshift-cluster-csi-drivers-ebs-cloud-credentials       4.13     No
    <prefix>-openshift-image-registry-installer-cloud-credentials      arn:aws:iam::4540112244:role/<prefix>-openshift-image-registry-installer-cloud-credentials      4.13     No
    <prefix>-openshift-ingress-operator-cloud-credentials              arn:aws:iam::4540112244:role/<prefix>-openshift-ingress-operator-cloud-credentials              4.13     No
    1 命令运行后,它将显示与您的 AWS 帐户关联的所有前缀,并说明有多少角色与该前缀关联。如果您需要查看所有这些角色及其详细信息,请在详细信息提示中输入“是”,以便列出这些角色的具体信息。
其他资源

创建集群

使用 Red Hat OpenShift Service on AWS (ROSA) 命令行界面 (CLI) (`rosa`) 创建集群时,您可以添加可选标志 `--no-cni` 来创建没有 CNI 插件的集群。

先决条件
  • 您已完成 ROSA 与 HCP 的 AWS 先决条件。

  • 您有可用的 AWS 服务配额。

  • 您已在 AWS 控制台中启用 ROSA 服务。

  • 您已在安装主机上安装并配置了最新的 ROSA CLI (`rosa`)。运行 `rosa version` 查看您当前安装的 ROSA CLI 版本。如果可用更新版本,CLI 将提供下载升级的链接。

  • 您已使用 ROSA CLI 登录到您的 Red Hat 帐户。

  • 您已创建 OIDC 配置。

  • 您已验证 AWS 弹性负载均衡 (ELB) 服务角色存在于您的 AWS 帐户中。

步骤
  1. 您可以使用以下命令之一创建带有 HCP 集群的 ROSA。

    创建带有 HCP 集群的 ROSA 时,默认机器无类别域间路由 (CIDR) 为 `10.0.0.0/16`。如果这与您的 VPC 子网的 CIDR 范围不符,请将 `--machine-cidr ` 添加到以下命令中。要了解有关 Red Hat OpenShift Service on AWS 默认 CIDR 范围的更多信息,请参见 CIDR 范围定义

    • 运行以下命令创建具有单个初始机器池、公共可用 API、公共可用 Ingress 和无 CNI 插件的集群

      $ rosa create cluster --cluster-name=<cluster_name> \
          --sts --mode=auto --hosted-cp --operator-roles-prefix <operator-role-prefix> \
          --oidc-config-id <ID-of-OIDC-configuration> --subnet-ids=<public-subnet-id>,<private-subnet-id> --no-cni
    • 运行以下命令创建具有单个初始机器池、私有可用 API、私有可用 Ingress 和无 CNI 插件的集群

      $ rosa create cluster --private --cluster-name=<cluster_name> \
          --sts --mode=auto --hosted-cp --subnet-ids=<private-subnet-id> --no-cni
    • 如果您使用 `OIDC_ID`、`SUBNET_IDS` 和 `OPERATOR_ROLES_PREFIX` 变量准备了您的环境,则可以在创建没有 CNI 插件的集群时继续使用这些变量。例如,运行以下命令

      $ rosa create cluster --hosted-cp --subnet-ids=$SUBNET_IDS --oidc-config-id=$OIDC_ID --cluster-name=<cluster_name> --operator-roles-prefix=$OPERATOR_ROLES_PREFIX --no-cni
  2. 运行以下命令检查集群状态

    $ rosa describe cluster --cluster=<cluster_name>

    集群达到 `ready` 状态后,您第一次登录集群时,节点仍将处于 `not ready` 状态,直到您安装自己的 CNI 插件。安装 CNI 后,节点将变为 `ready`。

    随着集群安装的进行,输出中将列出以下 `State` 字段的更改

    • pending (正在准备帐户)

    • installing (DNS 设置正在进行中)

    • installing

    • ready

      如果安装失败或 `State` 字段在 10 分钟后未更改为 `ready`,请查看安装故障排除文档以了解更多详细信息。有关更多信息,请参见《故障排除安装》。有关联系 Red Hat 支持以获得帮助的步骤,请参见《获取 Red Hat OpenShift Service on AWS 支持》。

  3. 通过监视 Red Hat OpenShift Service on AWS 安装程序日志来跟踪集群创建的进度。要检查日志,请运行以下命令

    $ rosa logs install --cluster=<cluster_name> --watch (1)
    1 可选:要随着安装的进行监视新的日志消息,请使用 `--watch` 参数。

无 CNI 插件集群的预期行为

虽然带有 HCP 集群的 ROSA 安装已完成,但集群在没有 CNI 插件的情况下无法运行。由于节点未就绪,因此无法部署工作负载。例如,Red Hat OpenShift Service on AWS 集群 Web 控制台不可用,因此您必须使用 OpenShift CLI (`oc`) 登录到集群。此外,其他 OpenShift 组件(例如基于 HAProxy 的 Ingress 控制器、镜像注册表和基于 Prometheus 的监控堆栈)也没有运行。在安装 CNI 提供程序之前,这是预期的行为。

后续步骤

  • 安装您的 CNI 插件。然后,节点将从 `not ready` 状态更改为 `ready` 状态。

  • 使用 访问 ROSA 集群 文档访问您的 ROSA 集群。