第 6 章 在没有 CNI 插件的情况下带有 HCP 集群的 ROSA
在带有托管的 control plane (HCP)集群的 AWS (ROSA)集群上创建 Red Hat OpenShift Service 时,您可以使用自己的 Container Network Interface (CNI)插件。您可以创建一个没有 CNI 的 HCP 集群的 ROSA,并在集群创建后安装自己的 CNI 插件。
对于选择使用自己的 CNI 的客户,CNI 插件支持的责任属于与所选 CNI 供应商协调的客户。
使用 HCP 的 ROSA 的默认插件是 OVN-Kubernetes 网络插件。此插件是带有 HCP 的 ROSA 唯一支持的 CNI 插件。
如果您选择将自己的 CNI 用于带有 HCP 集群的 ROSA,则强烈建议您在创建集群时从插件供应商获取商业支持。红帽支持无法为选择使用自己的 CNI 的客户提供与 CNI 相关的问题,如 pod 到 pod 流量。红帽仍然为所有非CNI 问题提供支持。如果要红帽与 CNI 相关的支持,则必须使用默认 OVN-Kubernetes 网络插件安装集群。如需更多信息,请参阅 责任列表。
6.1. 创建没有 CNI 插件的带有 HCP 集群的 ROSA
6.1.1. 先决条件
6.1.2. 创建集群范围的 STS 角色和策略
在使用 AWS (ROSA) CLI (rosa
)上的 Red Hat OpenShift Service on AWS (ROSA)使用托管 control plane (HCP)集群创建 Red Hat OpenShift Service 前,请创建所需的集群范围的角色和策略,包括 Operator 策略。
使用 HCP 集群的 ROSA 需要附加 AWS 受管策略的帐户和 Operator 角色。不支持客户管理的策略。有关使用 HCP 集群的 ROSA 的 AWS 管理策略的更多信息,请参阅 ROSA 帐户角色的 AWS 管理策略。
先决条件
- 您已使用 HCP 为 ROSA 完成 AWS 的先决条件。
- 您有可用的 AWS 服务配额。
- 您已在 AWS 控制台中启用了 ROSA 服务。
-
您已在安装主机上安装并配置了最新的 ROSA CLI (
rosa
)。 - 已使用 ROSA CLI 登录到您的红帽帐户。
流程
如果 AWS 帐户中不存在它们,请创建所需的账户范围的 STS 角色,并通过运行以下命令附加策略:
$ rosa create account-roles --hosted-cp
可选:运行以下命令将前缀设置为环境变量:
$ export ACCOUNT_ROLES_PREFIX=<account_role_prefix>
运行以下命令,查看变量的值:
$ echo $ACCOUNT_ROLES_PREFIX
输出示例
ManagedOpenShift
如需有关 ROSA 的 AWS 管理 IAM 策略的更多信息,请参阅 ROSA 的 AWS 管理的 IAM 策略。
6.1.3. 创建 OpenID Connect 配置
当将 ROSA 与 HCP 集群搭配使用时,您必须先创建 OpenID Connect (OIDC)配置。此配置已注册到 OpenShift Cluster Manager。
先决条件
- 您已使用 HCP 为 ROSA 完成 AWS 的先决条件。
- 您已完成 Red Hat OpenShift Service on AWS 的 AWS 先决条件。
-
您已在安装主机上安装并配置了最新的 Red Hat OpenShift Service on AWS (ROSA) CLI (
rosa
)。
流程
要创建 OIDC 配置和 AWS 资源,请运行以下命令:
$ 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
提供这个值,否则您必须根据--mode manual
的aws
CLI 输出来确定这些值。可选: 您可以将 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
6.1.4. 创建 Operator 角色和策略
当将 ROSA 与 HCP 集群搭配使用时,您必须创建带有托管 control plane (HCP)部署的 Red Hat OpenShift Service on AWS (ROSA)所需的 Operator IAM 角色。集群 Operator 使用 Operator 角色获取执行集群操作所需的临时权限,如管理后端存储、云供应商凭证和对集群的外部访问权限。
先决条件
- 您已使用 HCP 为 ROSA 完成 AWS 的先决条件。
-
您已在安装主机上安装和配置了最新的 Red Hat OpenShift Service on AWS ROSA CLI (
rosa
)。 - 您创建了集群范围的 AWS 角色。
流程
使用以下命令将前缀名称设置为环境变量:
$ export OPERATOR_ROLES_PREFIX=<prefix_name>
要创建 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
您必须包含
--hosted-cp
参数,以使用 HCP 集群为 ROSA 创建正确的角色。此命令返回以下信息:输出示例
? 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
Operator 角色现已创建,并可用于使用 HCP 集群创建 ROSA。
验证
您可以列出与 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 帐户关联的所有前缀,并记下与这个前缀关联的角色数量。如果您需要查看所有这些角色及其详情,请在详细信息提示符处输入"是",使这些角色按特定情况列出。
其他资源