第 1 章 使用 Red Hat Advanced Cluster Management 集成的 multicluster engine operator
如果您使用 multicluster engine operator,然后安装 Red Hat Advanced Cluster Management,您可以访问更多多集群管理功能,如 Observability 和 Policy。
有关集成功能,请查看以下要求:
- 您需要安装 Red Hat Advanced Cluster Management。请参阅 Red Hat Advanced Cluster Management 安装和升级文档。
- 有关安装后 Red Hat Advanced Cluster Management 的详情,请参阅 MultiClusterHub 高级配置。
有关 multicluster engine operator 和 Red Hat Advanced Cluster Management 多集群管理,请参阅以下步骤:
如果您有托管多个托管集群的多集群引擎 operator 集群,您可以将这些 托管集群 引入 Red Hat Advanced Cluster Management hub 集群,以使用 Red Hat Advanced Cluster Management 组件(如 应用程序生命周期和监管 ) 管理。
这些托管集群可以自动发现并导入为受管集群。
注: 由于托管 control plane 在受管多集群引擎 operator 集群节点上运行,集群可以托管的 control plane 数量由受管多集群引擎 operator 集群节点的资源可用性决定,以及受管 multicluster engine operator 集群的数量。您可以添加更多节点或受管集群来托管更多托管的 control plane。
需要的访问权限:集群管理员
1.1.1. 先决条件 复制链接链接已复制到粘贴板!
- 您需要一个或多个多集群引擎 operator 集群。
- 您需要一个设置为 hub 集群的 Red Hat Advanced Cluster Management 集群。
运行以下命令来安装
clusteradmCLI:curl -L https://raw.githubusercontent.com/open-cluster-management-io/clusteradm/main/install.sh | bash
curl -L https://raw.githubusercontent.com/open-cluster-management-io/clusteradm/main/install.sh | bashCopy to Clipboard Copied! Toggle word wrap Toggle overflow
multicluster engine operator 有一个 local-cluster,它是管理的 hub 集群。在 open-cluster-management-agent-addon 命名空间中为这个 local-cluster 启用以下默认附加组件:
-
cluster-proxy -
managed-serviceaccount -
work-manager
1.1.2.1. 配置附加组件 复制链接链接已复制到粘贴板!
当 multicluster engine Operator 导入到 Red Hat Advanced Cluster Management 中时,Red Hat Advanced Cluster Management 会启用同一组附加组件来管理 multicluster engine operator。
在不同的多集群引擎 operator 命名空间中安装这些附加组件,以便 multicluster engine operator 可以在 Red Hat Advanced Cluster Management 管理多集群引擎 operator 时使用 local-cluster 附加组件进行自我管理。完成以下步骤:
- 使用 CLI 登录您的 Red Hat Advanced Cluster Management。
创建
AddOnDeploymentConfig资源,以指定不同的附加组件安装命名空间。请参阅以下示例,其中agentInstallNamespace引用open-cluster-management-agent-addon-discovery:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
运行
oc apply -f <filename>.yaml以应用该文件。 更新附加组件的现有
ClusterManagementAddOn资源,以便在您创建的AddOnDeploymentConfig资源中指定的open-cluster-management-agent-addon-discovery命名空间中安装附加组件。请参阅以下示例,并将open-cluster-management-global-set作为命名空间:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
addonDeploymentConfig添加到ClusterManagementAddOn。请参见以下示例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
AddOnDeploymentConfig添加到managed-serviceaccount。请参见以下示例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
addondeploymentconfigs值添加到名为cluster-proxy的ClusterManagementAddOn资源中。请参见以下示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,以验证 Red Hat Advanced Cluster Management
local-cluster的附加组件是否已重新安装到您指定的命名空间中:oc get deployment -n open-cluster-management-agent-addon-discovery
oc get deployment -n open-cluster-management-agent-addon-discoveryCopy to Clipboard Copied! Toggle word wrap Toggle overflow 请参见以下输出示例:
NAME READY UP-TO-DATE AVAILABLE AGE cluster-proxy-proxy-agent 1/1 1 1 24h klusterlet-addon-workmgr 1/1 1 1 24h managed-serviceaccount-addon-agent 1/1 1 1 24h
NAME READY UP-TO-DATE AVAILABLE AGE cluster-proxy-proxy-agent 1/1 1 1 24h klusterlet-addon-workmgr 1/1 1 1 24h managed-serviceaccount-addon-agent 1/1 1 1 24hCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1.2.2. 创建 KlusterletConfig 资源 复制链接链接已复制到粘贴板!
multicluster engine operator 有一个 local-cluster,它是管理的 hub 集群。为这个 local-cluster 创建了名为 klusterlet 的资源。
当 multicluster engine operator 导入到 Red Hat Advanced Cluster Management 中时,Red Hat Advanced Cluster Management 会安装带有相同名称 klusterlet 的 klusterlet 来管理多集群引擎 operator。这与 multicluster engine operator local-cluster klusterlet 冲突。
您需要创建一个 ManagedCluster 资源用来导入多集群引擎 operator 集群的 KlusterletConfig 资源,以便 klusterlet 使用不同的名称安装,以避免冲突。完成以下步骤:
使用以下示例创建
KlusterletConfig资源。当在受管集群中引用此KlusterletConfig资源时,spec.installMode.noOperator.postfix字段的值用作 klusterlet 名称的一个后缀,如klusterlet-mce-import:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
运行
oc apply -f <filename>.yaml以应用该文件。
1.1.2.3. 配置用于备份和恢复 复制链接链接已复制到粘贴板!
安装 Red Hat Advanced Cluster Management 后,您还可以使用备份和恢复功能。
如果 hub 集群在灾难恢复场景中恢复,导入的 multicluster engine operator 集群和托管集群会导入到较新的 Red Hat Advanced Cluster Management hub 集群中。
在这种情况下,您需要在 Red Hat Advanced Cluster Management hub 集群恢复过程中恢复以前的配置。
添加 backup=true 标签以启用备份。参阅每个附加组件的以下步骤:
对于
addon-ns-config,运行以下命令:oc label addondeploymentconfig addon-ns-config -n multicluster-engine cluster.open-cluster-management.io/backup=true
oc label addondeploymentconfig addon-ns-config -n multicluster-engine cluster.open-cluster-management.io/backup=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对于
hypershift-addon-deploy-config,请运行以下命令:oc label addondeploymentconfig hypershift-addon-deploy-config -n multicluster-engine cluster.open-cluster-management.io/backup=true
oc label addondeploymentconfig hypershift-addon-deploy-config -n multicluster-engine cluster.open-cluster-management.io/backup=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对于您的
work-manager,请运行以下命令:oc label clustermanagementaddon work-manager cluster.open-cluster-management.io/backup=true
oc label clustermanagementaddon work-manager cluster.open-cluster-management.io/backup=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对于 'cluster-proxy ',请运行以下命令:
oc label clustermanagementaddon cluster-proxy cluster.open-cluster-management.io/backup=true
oc label clustermanagementaddon cluster-proxy cluster.open-cluster-management.io/backup=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对于
managed-serviceaccount,运行以下命令:oc label clustermanagementaddon managed-serviceaccount cluster.open-cluster-management.io/backup=true
oc label clustermanagementaddon managed-serviceaccount cluster.open-cluster-management.io/backup=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 对于您的
mce-import-klusterlet-config,请运行以下命令:oc label KlusterletConfig mce-import-klusterlet-config cluster.open-cluster-management.io/backup=true
oc label KlusterletConfig mce-import-klusterlet-config cluster.open-cluster-management.io/backup=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1.3. 手动导入多集群引擎 operator 复制链接链接已复制到粘贴板!
要从 Red Hat Advanced Cluster Management 集群中手动导入 multicluster engine operator 集群,请完成以下步骤:
在 Red Hat Advanced Cluster Management 集群中,手动创建
ManagedCluster资源来导入 multicluster engine operator 集群。请参见以下文件示例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
运行
oc apply -f <filename>.yaml以应用该文件。 创建
auto-import-secretsecret,该 secret 引用了 multicluster engine operator 集群的kubeconfig。转到使用 CLI 导入托管集群中的使用自动导入密钥导入集群来添加自动导入密钥,以完成多集群引擎操作员自动导入过程。在 Red Hat Advanced Cluster Management 集群的 multicluster engine operator 受管集群命名空间中创建自动导入 secret 后,受管集群会被注册。
运行以下命令来获取状态:
oc get managedcluster
oc get managedclusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 请参阅以下带有受管集群的状态和示例 URL 的输出示例:
NAME HUB ACCEPTED MANAGED CLUSTER URLS JOINED AVAILABLE AGE local-cluster true https://<api.acm-hub.com:port> True True 44h mce-a true https://<api.mce-a.com:port> True True 27s
NAME HUB ACCEPTED MANAGED CLUSTER URLS JOINED AVAILABLE AGE local-cluster true https://<api.acm-hub.com:port> True True 44h mce-a true https://<api.mce-a.com:port> True True 27sCopy to Clipboard Copied! Toggle word wrap Toggle overflow
重要: 不要为导入的多集群引擎 operator 启用任何其他 Red Hat Advanced Cluster Management 附加组件。
1.1.4. 发现托管集群 复制链接链接已复制到粘贴板!
在将所有多集群引擎 operator 集群导入到 Red Hat Advanced Cluster Management 后,您需要为这些受管多集群引擎 operator 集群启用 hypershift-addon 来发现托管集群。
默认附加组件安装到前面流程的不同命名空间中。同样,您可以在多集群引擎 operator 中将 hypershift-addon 安装到不同的命名空间中,以便多集群引擎 operator local-cluster 的附加组件代理和 Red Hat Advanced Cluster Management 的代理可以在多集群引擎 operator 中正常工作。
重要: 对于所有命令,将 < ;managed-cluster-names > 替换为 multicluster engine operator 的以逗号分隔的受管集群名称。
运行以下命令,将附加组件的
agentInstallNamespace命名空间设置为open-cluster-management-agent-addon-discovery:oc patch addondeploymentconfig hypershift-addon-deploy-config -n multicluster-engine --type=merge -p '{"spec":{"agentInstallNamespace":"open-cluster-management-agent-addon-discovery"}}'oc patch addondeploymentconfig hypershift-addon-deploy-config -n multicluster-engine --type=merge -p '{"spec":{"agentInstallNamespace":"open-cluster-management-agent-addon-discovery"}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令以禁用指标并禁用 HyperShift operator 管理:
oc patch addondeploymentconfig hypershift-addon-deploy-config -n multicluster-engine --type=merge -p '{"spec":{"customizedVariables":[{"name":"disableMetrics","value": "true"},{"name":"disableHOManagement","value": "true"}]}}'oc patch addondeploymentconfig hypershift-addon-deploy-config -n multicluster-engine --type=merge -p '{"spec":{"customizedVariables":[{"name":"disableMetrics","value": "true"},{"name":"disableHOManagement","value": "true"}]}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选: 您可以使用
{"name":"discoveryPrefix","value": ""}]}}'附加上一个命令来设置命名约定。当发现的托管集群自动导入到 Red Hat Advanced Cluster Management hub 集群时,它会成为具有以下命名约定 的受管集群:'<mce-cluster -name>'- <hosted-cluster-name>。您还可以将discoveryPrefix设置为其他一些字符串,将其用作替换 <mce-cluster-name> 的前缀。使用前缀运行以下命令:oc patch addondeploymentconfig hypershift-addon-deploy-config -n multicluster-engine --type=merge -p '{"spec":{"customizedVariables":[{"name":"disableMetrics","value": "true"},{"name":"disableHOManagement","value": "true"},{"name":"discoveryPrefix","value": ""}]}}'oc patch addondeploymentconfig hypershift-addon-deploy-config -n multicluster-engine --type=merge -p '{"spec":{"customizedVariables":[{"name":"disableMetrics","value": "true"},{"name":"disableHOManagement","value": "true"},{"name":"discoveryPrefix","value": ""}]}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,为多集群引擎 operator 启用
hypershift-addon:clusteradm addon enable --names hypershift-addon --clusters <managed-cluster-names>
clusteradm addon enable --names hypershift-addon --clusters <managed-cluster-names>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以通过在 Red Hat Advanced Cluster Management 中运行以下命令来获取 multicluster engine operator 受管集群名称。
oc get managedcluster
oc get managedclusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 登录到多集群引擎 operator 集群,并验证您指定的命名空间中是否安装了
hypershift-addon。运行以下命令:oc get deployment -n open-cluster-management-agent-addon-discovery
oc get deployment -n open-cluster-management-agent-addon-discoveryCopy to Clipboard Copied! Toggle word wrap Toggle overflow 请参阅以下列出附加组件的输出示例:
NAME READY UP-TO-DATE AVAILABLE AGE cluster-proxy-proxy-agent 1/1 1 1 24h klusterlet-addon-workmgr 1/1 1 1 24h hypershift-addon-agent 1/1 1 1 24h managed-serviceaccount-addon-agent 1/1 1 1 24h
NAME READY UP-TO-DATE AVAILABLE AGE cluster-proxy-proxy-agent 1/1 1 1 24h klusterlet-addon-workmgr 1/1 1 1 24h hypershift-addon-agent 1/1 1 1 24h managed-serviceaccount-addon-agent 1/1 1 1 24hCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Red Hat Advanced Cluster Management 部署 hypershift-addon,它是从多集群引擎 operator 发现托管集群的发现代理。当托管集群 kube-apiserver 可用时,代理会在 Red Hat Advanced Cluster Management hub 集群中的 multicluster engine operator 受管集群命名空间中创建对应的 DiscoveredCluster 自定义资源。
您可以在控制台中查看发现的集群。
- 登录到 hub 集群控制台并进入到 All Clusters > Infrastructure > Clusters。
-
找到 Discovered clusters 选项卡,以查看来自 multicluster engine operator 的所有发现的、类型为
MultiClusterEngineHCP的托管集群。
接下来,请访问 Automating import for discovered hosted cluster,了解如何自动导入集群。