设置高级群集管理插件(仅限部分地区)
高级集群管理(ACM)插件为客户提供了一种简化的方式,可跨多个集群管理监控、工作负载放置和安全策略。
高级群集管理插件仅适用于部分地区。
IBM Cloud 集群不支持从 OperatorHub 安装 ACM。 要安装 ACM,请按照本页上的说明进行操作。
安装 ACM 的群集是集线器群集。 在安装过程中或安装后,您可以指定多个受管群集,以便使用 ACM 进行管理。
准备工作
在安装 ACM 附加组件之前,请查看以下前提步骤和信息。
- 查看 ACM 计划类型 并决定您要使用的计划。 请注意,对于虚拟化 ACM,建议托管群集运行裸机工作节点。
- 确保您的群集满足以下要求。
- 您的集线器群集必须是 VPC 群集,至少有 3 个运行 RHCOS 的工作节点,至少有 6 个 VCPU 和 64GB 内存。 为实现高可用性,请确保群集在 3 个区域中每个区域至少有一个工作节点。
- 每个托管群集必须至少有 3 个运行 RHCOS 的工作节点,至少有 6 个 VCPU 和 64GB 内存。
- 此外,如果要使用 ACM for Virtualization 计划,建议使用裸机工作节点。 对于 ACM for Kubernetes 计划,托管集群可以运行裸机节点或 VSI。
- 查看 ACM 附加组件 自动安装的操作符,以及可以作为增强功能安装的 可选操作符。
- 您必须拥有 IBM Cloud Kubernetes Service 中群集的 管理员平台访问角色和管理器服务访问角色。
- 您必须拥有一个至少有 3 个工作节点的 VPC 集群。 每个工作节点必须至少有 4 个 CPU 和 16GB 内存。 为实现高可用性,请确保群集在 3 个区域中每个区域至少有一个工作节点。
- 在群集上创建用于 ACM 的受信任配置文件。
- 对于要使用 ACM 管理的每个群集,必须在集线器群集上创建一个秘密,其中包含受管群集的访问令牌和服务器 URL。 此步骤可在安装之前或之后完成。 请参阅“为 ACM 准备秘密”。
- 安装或更新 CLI。
为 ACM 创建受信任的配置文件
请按照以下步骤创建用于 ACM 的受信任配置文件。
-
按照步骤 创建受信任的个人资料。 在配置文件的条件中,请务必指定以下访问权限。
- 当命名空间等于
kube-system - Satellite 服务角色 - Satellite Link 管理员、阅读器
- Kubernetes Service 角色 - 经理、编辑
- 计费服务角色 - 阅读器、操作员
- 当命名空间等于
-
创建受信任配置文件后,从控制台的受信任配置文件页面复制 ID。
-
使用受信任配置文件的 ID 创建以下秘密。 保存以下文本并输入您的证书。 您可以按照步骤手动创建密文,也可以使用 shell 脚本 在群集中自动创建密文。
IBMCLOUD_AUTHTYPE=pod-identity IBMCLOUD_PROFILEID=<TRUSTED-PROFILE-ID> -
在群集中创建一个包含受信任配置文件凭据的秘密。 将以下 YAML 保存到名为
ibm-cloud-credentials.yaml的文件中。 在ibm-credentials.env:字段中,输入受信任配置文件的 ID。apiVersion: v1 data: ibm-credentials.env: # Trusted profile ID kind: Secret metadata: name: ibm-cloud-credentials namespace: kube-system type: Opaque -
在集群中创建私钥。
kubectl apply -f ibm-cloud-credentials.yaml
为 ACM 准备秘密
对于要使用 ACM 管理的每个群集,必须在集线器群集上创建一个秘密,其中包括受管群集的访问令牌和服务器 URL。
如果要在 ACM 附加组件安装过程中导入托管群集,请在开始安装前完成以下步骤。 如果选择在集线器群集上安装附加组件后创建机密并导入托管群集,则可以通过 CLI 完成其他步骤。
为要管理的每个群集完成以下步骤。
-
在要使用 ACM 管理的群集上,运行命令查找服务器 URL。 在输出中找到并记录主 URL 值。 这是秘密中要引用的服务器 URL。 您还可以在以下步骤中使用 URL。
ibmcloud oc cluster get -c <cluster_name_or_ID>示例输出。
NAME: mycluster ID: 1234567 State: normal Created: 2025-01-22T19:22:16+0000 Location: dal10 Master URL: https://c100-e.<region>.containers.cloud.ibm.com:<port> ... -
获取 Red Hat OpenShift oauth 服务器的令牌端点。 将
<master_URL>替换为上一步中找到的 URL。 请注意,输出中的值不是访问令牌。curl <master_URL>/.well-known/oauth-authorization-server | jq -r .token_endpoint示例输出。
<token_endpoint>/oauth/token -
使用先前检索的端点登录群集。 将
<URL>替换为上一步中找到的 oauth 服务器的<token_endpoint>。 在输出中,找到位置响应中包含的<access_token>。 这是要包含在密文中的访问令牌。示例 curl 请求:
curl -u 'apikey:<API_key>' -H "X-CSRF-Token: a" '<URL>/oauth/authorize?client_id=openshift-challenging-client&response_type=token' -vvv示例输出。 <access_token> 包含在位置响应字符串中。
< HTTP/1.1 302 Found < Cache-Control: no-cache, no-store, max-age=0, must-revalidate < Cache-Control: no-cache, no-store, max-age=0, must-revalidate < Expires: 0 < Expires: Fri, 01 Jan 2030 00:00:00 GMT < Location: <token_endpoint>/oauth/token/implicit#access_token=<access_token>&expires_in=86400&scope=user%3Afull&token_type=Bearer ... -
在集线器群集上,创建一个包含群集访问令牌和服务器 URL 的密文。 有关创建秘密的信息,请参阅 Kubernetes 文档中的 使用秘密。
秘密示例
apiVersion: v1 kind: Secret metadata: name: <secret_name> namespace: <secret_namespace> # The namespace that the secret is to be created in type: Opaque stringData: token: <access_token> server: <server_url>
从用户界面安装 ACM
使用用户界面将 ACM 附加组件和 ACM 操作员安装到集线器群集。
-
如果要在安装过程中导入一个或多个托管群集来使用 ACM 管理,请按照 为 ACM 准备密 码中 的步骤在集线器群集上创建所需的密码。 保存秘密名称和命名空间。 您也可以暂时跳过这一步,在安装过程结束后再完成,但需要额外的 CLI 步骤。
-
登录 IBM Cloud 控制台并导航至 群集页面。 单击要安装 ACM 的群集。
-
在群集详细信息页面,找到附加组件部分。
-
在 Available to install(可用安装 )下,找到 Red Hat Advanced Cluster Management(高级群集管理 )选项,然后单击 Install(安装 )。
-
在安装页面,选择要安装的 ACM 附加组件版本。
-
选择要使用的 ACM 计划:ACM for Virtualization 或 ACM for Kubernetes。 您可以随时从 ACM for Virtualization 计划升级到 ACM for Kubernetes 计划,但请注意,升级是永久性的,无法逆转。
-
选择导入托管群集的方式。 要在安装插件后导入群集,请选择从 CLI 导入。 如果您在集线器群集上创建了所需的机密,并希望现在导入托管群集,请选择“立即导入”。
您只能在安装过程中使用用户界面导入托管群集。 在集线器群集上安装 ACM 附加组件后,必须 使用 CLI 来导入托管群集。
- 如果选择了“立即导入”选项,请单击弹出菜单中的“导入群集”。
- 要导入账户中存在的群集,请选择群集并输入密名和命名空间。 然后,单击下一步。
- 要导入跨账户或外部群集,请指定群集 ID、密文名称和密文命名空间。 然后,单击导入群集。
-
单击创建。
-
确认群集上已安装插件。
- 导航至 OpenShift Web Console Multicluster Hub。
- 从下拉菜单中选择“车队管理”。
- 查找群集列表,检查群集是否以 Hub 控制平面类型列出。
-
可选:查看您可以安装的 附加操作符,以增强 ACM 功能。
通过 CLI 安装 ACM
使用 CLI 在集线器群集上安装 ACM 附加组件。
-
查找 ACM 附加组件的默认版本。
ibmcloud oc cluster addon versions -
查看 ACM 附加选项。 在命令中,指定上一步中找到的默认版本。 请注意安装附加组件时要包含的任何选项。
ibmcloud oc cluster addon options --addon acm --version <default_version> -
如果要导入群集由附加组件管理,请按照“为 ACM 准备机密”中的步骤(如果尚未完成)进行操作。 请务必保存集群 ID 以及在集线器集群上创建的秘密的名称和命名空间。 您也可以在集线器群集上安装附加组件后完成此过程,但 安装后导入托管群集 需要额外的步骤。
-
运行该命令以启用插件。 如果要在安装过程中导入群集,请务必指定
billingPlan和isLicenseAccepted参数,以及可选的--managedClusters参数。ibmcloud oc ibmcloud oc cluster addon enable acm --cluster HUB_CLUSTER_ID 'managedClusters=["clusterid:CLUSTER_ID;secretname:SECRET_NAME;secretnamespace:SECRET_NAMESPACE;action:IMPORT"]' --param 'billingPlan=PLAN' --param 'isLicenseAccepted=BOOLEAN' --param命令参数。 有关每种参数类型的示例,请参阅下面的示例命令。
--cluster- 必需。 要安装 ACM 附加组件的集线器群的 ID。
--param 'managedClusters=["]-
- 可选。 在插件安装过程中,包含该参数一次或多次可导入托管群集。 您也可以稍后再完成此步骤。 更多信息,请参阅 为 ACM 准备机密。
- 指定以下值:
-
- clusterid :要导入的托管群集的 ID。
-
- secretname :在集线器群集上创建的密文名称。 该秘密包含托管群集的凭证。
-
- 秘密名称空间 :您在中心集群上创建的秘密的命名空间。 该秘密包含托管群集的凭证。
-
- action:IMPORT :指定托管群集 IMPORT 操作的参数。
--param 'billingPlan='- 必需。 您要为 ACM 选择的计费计划。 选项包括
KUBERNETES( ACM for Kubernetes 计划)或VIRTUALIZATION( ACM for Virtualization 计划)。 请注意,以后可以从 ACM for Virtualization 升级到 ACM for Kubernetes,但升级是永久性的,无法逆转。 --param 'isLicenseAccepted='- 必需。 指定
TRUE以接受所选计费计划的许可协议。 接受本许可即表示您同意适用的条款和条件,并确认您了解所选计划中包含的服务。
使用 虚拟化 ACM 计费计划安装 ACM 附加组件并导入托管群集的示例命令。
ibmcloud ks cluster addon enable acm --cluster a5bcde982dfer2nwxq73 --param 'managedClusters=["clusterid:w7rthce34gfbq7ww12d3;secretname:managed-secret-1;secretnamespace:managed-ns1;action:Import"]' --param 'billingPlan=KUBERNETES' --param 'isLicenseAccepted=true' -
确认附加组件已安装。 插件可能需要几分钟才能显示以下输出。
-
在集线器群集上,检查是否已创建
acmhub资源。oc get acmhub示例输出。
NAME AGE acm-auto 1h -
在集线器群集上,检查
acmhub的状态。oc describe acmhubstatus示例输出。
status phase: Ready
-
-
可选:查看您可以安装的 附加操作符,以增强 ACM 功能。
ACM 操作员
查看 ACM 附加组件自动安装的操作符,以及可以作为增强功能安装的可选操作符。
自动安装的操作员
安装 ACM 附加组件时,集线器群集或托管群集上会自动安装以下操作符。
| 运算符 | 描述 |
|---|---|
| 高级群集管理 (ACM) 操作员 | 安装在轮毂组上。 |
| MultiCluster 发动机操作员 | 由 ACM 操作员安装在受管群集上。 |
可选操作员
以下操作符为可选操作符,可安装在集线器群集或托管群集上,以增强 ACM 功能。 请注意,IBM 不负责管理这些操作员。
您有责任管理这些操作员,包括但不限于更新、监控、恢复和重新安装。
| 运算符 | 描述 | 其他信息 |
|---|---|---|
| GitOps 操作员 |
|
GitOps 概况 |
| Red Hat OpenShift 虚拟化操作员 |
|
安装 OpenShift 虚拟化操作器 |
安装 ACM 后导入托管群集
有几种方法可以导入群集,用 ACM 进行管理。 在导入群集之前,请确保 已为 ACM 创建了所需的密文。
ACM 管理的所有群集必须属于一个群集集。 您可以创建新的群集集,也可以向 Default 群集集添加群集。 如果未指定群集集,托管群集将添加到 Default 选项中。
使用 CLI 导入托管群集
要使用 CLI 导入受管群集,请编辑 ACM 资源以包含要管理的群集。
-
运行该命令编辑 ACM 资源。
oc edit acmhub <resource_name> -
在资源的
managedClusters部分,添加群集 ID、为 ACM 创建的群集密文名称、密文命名空间,并指定Import操作。 格式参见下面的示例。 下面的示例导入了cluster_id_1.managedclusters: - clusterid: "cluster_id_1" secretname: "managed-secret-1" secretnamespace: "managed-namespace" # The namespace that the secret was created in action: "Import" -
保存并应用更改。
使用 OpenShift 令牌和 API 服务器导入托管群集 URL
收集要导入群集的 OpenShift 令牌和 API 服务器 URL,然后使用 ACM 控制台导入群集。
-
在 IBM Cloud 控制台中,导航至 群集列表,然后单击要导入的群集。
-
在集群详细信息页面中,单击 OpenShift Web 控制台。
-
单击用户名下拉菜单,显示格式为
IAM#username。 从下拉菜单中单击“复制登录命令”。 -
单击显示令牌,显示登录命令。 找到以
oc login开头的命令,并保存 API 令牌 (sha256~XXXX) 和服务器 URL。 -
导航至 ACM 控制台。 单击基础架构 > 群集 > 导入现有群集。
-
按照提示导入群集,并在参数部分指定 API 令牌和服务器 URL。
使用 kubeconfig 导入托管群集
收集 kubeconfig 详情,然后使用 ACM 控制台导入群集。
-
从 IBM Cloud CLI 运行以下命令,获取要导入群集的 kubeconfig。 保存输出中显示的 kubeconfig 文件内容。
ibmcloud ks cluster config --cluster <cluster_name> --admin --output yaml -
导航至 ACM 控制台。 单击基础架构 > 群集 > 导入现有群集。
-
按照提示导入群集,并在参数部分包含 kubeconfig 内容。
使用生成的命令导入托管群集
使用 ACM 控制台生成导入群集的命令,然后在要导入的群集上运行该命令。
- 导航至 ACM 控制台。 单击基础架构 > 群集 > 导入现有群集。
- 选择选项生成导入命令。 复制命令。
- 登录 IBM Cloud CLI,在要导入的群集上运行命令。
更新或删除托管群集
要从 ACM 实例中删除或更新托管群集,必须编辑集线器群集上 ACM 自定义资源的 managedClusters 部分。
-
运行该命令编辑 ACM 资源。
oc edit acmhub <resource_name> -
在资源的
managedClusters部分,添加群集 ID、为 ACM 创建的群集密文名称、密文命名空间以及要为群集执行的操作。 格式参见下面的示例。 对于操作,请指定Delete或Update。 请注意,删除群集不需要密文或密文命名空间。下面的示例删除了
cluster_id_1并更新了cluster_id_2。managedclusters: - clusterid: "cluster_id_1" action: "Delete" - clusterid: "cluster_id_2" secretname: "managed-secret-2" secretnamespace: "managed-namespace-2" # The namespace that the secret was created in action: "Update" -
保存并应用更改。
升级 ACM 版本
运行该命令将插件升级到新版本。
ibmcloud oc cluster addon update acm --cluster <cluster_id> --version <add-on_version>
要检查附加组件是否更新,请列出群集附加组件。 在输出中,查找 ACM 附加组件的详细信息。
ibmcloud oc cluster addon ls --cluster <cluster_id>
删除 ACM 附加组件
请按照以下步骤删除 ACM 附加组件。
-
从集线器群集中删除 ACM 资源。
oc delete acmhub <resource_name> -
删除资源后,移除 ACM 附加组件。 指定相同的群集 ID。
ibmcloud oc cluster addon disable acm -f --cluster <cluster_id>