第 9 章 将目标受管集群导入到 hub 集群
您可以从不同的 Kubernetes 云供应商导入集群。导入后,目标集群就成为 Red Hat Advanced Cluster Management for Kubernetes hub 集群的受管集群。除非另有指定,否则在可以访问 hub 集群和目标受管集群的任意位置完成导入任务。
hub 集群无法管理任何其他 hub 集群,但可以管理自己。hub 集群被配置为自动导入和自助管理。您不需要手动导入 hub 集群。
但是,如果您删除 hub 集群并尝试再次导入它,则需要添加 local-cluster:true
标签。
从以下说明中进行选择以通过控制台或 CLI 设置受管集群:
所需的用户类型或访问级别 :集群管理员
9.1. 使用控制台导入现有集群
安装 Red Hat Advanced Cluster Management for Kubernetes 后,就可以导入集群来进行管理。您可以从控制台和 CLI 导入。按照以下步骤从控制台导入。在此过程中,您需要通过终端来进行身份验证。
9.1.1. 先决条件
- 您需要一个已部署的 Red Hat Advanced Cluster Management for Kubernetes hub 集群。如果您要导入裸机集群,必须在 Red Hat OpenShift Container Platform 版本 4.4 或更高版本上安装了 hub 集群。
- 您需要一个要管理的集群,以及互联网连接。
-
安装
kubectl
。要安装kubectl
,请参阅 Kubernetes 文档中的安装和设置 kubectl。
-
您需要
base64
命令行工具。
所需的用户类型或访问级别 :集群管理员
9.1.2. 导入集群
您可以从 Red Hat Advanced Cluster Management for Kubernetes 控制台中为每个可用的云供应商导入现有集群。
备注:hub 集群无法管理不同的 hub 集群。hub 集群被设置为自动导入和管理自身,因此您不必手动导入 hub 集群来管理自己。
- 从导航菜单中,将鼠标悬停在 Automate infrastructure 上,然后点击 Clusters。
- 点 Add cluster。
- 点击 Import an existing cluster。
- 提供集群名称。默认情况下,命名空间会设为与集群名称相同的值。最佳实践:保留命名空间值,不要编辑。
可选:点击以展开 Edit cluster import YAML 文件,并修改端点配置。
请参阅 表 1.YAML 文件参数和描述,了解有关每个参数的详情。
- 可选 :导入后,您可以点击 Configure advanced parameters 添加标签,并使用这些标签进行搜索。
可选 :配置
MANAGED CLUSTER URLS
。通过配置MANAGED CLUSTER URLS
,运行oc get managedcluster
命令时显示的 URL 会在表中显示。-
如果还没有打开,请使用 web 控制台中的开关打开
YAML
内容,以便查看其内容。 把
manageClusterClientConfigs
项添加到import.yaml
文件中的ManagedCluster
spec,如下例所示:apiVersion: cluster.open-cluster-management.io/v1 kind: ManagedCluster metadata: labels: cloud: auto-detect vendor: auto-detect name: cluster-test name: cluster-test spec: hubAcceptsClient: true managedClusterClientConfigs: - url: https://multicloud-console.apps.new-managed.dev.redhat.com --- apiVersion: agent.open-cluster-management.io/v1 ...
替换 URL 值是受管集群的外部访问 URL 地址。
-
如果还没有打开,请使用 web 控制台中的开关打开
-
点击 Generate Command 检索用于部署
open-cluster-management-agent-addon
的命令。 - 在 Import an existing cluster 窗口中,将鼠标悬停在 Copy command 图标上并点击以复制提供给您的导入命令和令牌。您必须点击 Copy 图标来接收准确的副本。重要:命令中包含复制到每个导入集群的 pull secret 信息。具有访问导入集群权限的所有用户都可以查看 pull secret 信息。考虑在 https://cloud.redhat.com/ 或通过创建服务帐户来创建二级 pull secret,以便您的个人凭证不会遭到破坏。如需更多信息,请参阅使用镜像 pull secret 或了解并创建服务帐户。
在终端中,向受管集群进行身份验证。为目标受管集群配置
kubectl
。请参阅支持的云了解如何配置
kubectl
。-
要将
open-cluster-management-agent-addon
部署到受管集群,请运行您在第 8 步中生成并复制的命令。 - 点击 View cluster 查看集群的 Overview 页面和摘要。
备注:您可以继续导入更多集群。点击 Import another 以重复这个过程。
9.1.2.1. YAML 参数和描述
表 1:下表列出了 YAML 文件中可用的参数和描述:
参数 | 描述 | 默认值 |
---|---|---|
clusterLabels | 提供集群标签;您可以在文件中添加标签 | none |
clusterLabels.cloud | 集群的供应商标签 | auto-detect |
clusterLabels.vendor | 集群的 Kubernetes 厂商标签 | auto-detect |
clusterLabels.environment | 集群的环境标签 | none |
clusterLabels.region | 在其中设置集群的区域 | none |
applicationManager.enabled | 启用多集群管理器应用程序部署,部署订阅控制器和可部署资源控制器 | true |
searchCollector.enabled | 启用搜索集合和索引 | true |
policyController.enabled | 启用监管和风险仪表板策略功能 | true, updateInterval:15 |
certPolicyController.enabled | 根据分布式策略监控证书过期时间 | true |
iamPolicyController | 根据分布式策略监控身份控制 | true |
serviceRegistry.enabled | 作为服务 registry,用于发现由应用程序可部署资源在受管集群间部署的服务。 | false |
serviceRegistry.dnsSuffix | registry DNS 名称的后缀,添加到目标集群 DNS 域名的末尾。 | mcm.svc |
serviceRegistry.plugins |
包含已启用插件的逗号分隔列表。支持的插件: | kube-service |
version |
| 2.1.0 |
9.1.3. 删除导入的集群
完成以下步骤以删除导入的集群以及在受管集群上创建的 open-cluster-management-agent-addon
。
- 在 Clusters 页面的表中查找您导入的集群。
- 点 Actions > Detach cluster 从管理中删除集群。
备注:如果您试图分离名为 local-cluster
的 hub 集群,请注意 disableHubSelfManagement
的默认设置为 false
。此设置会导致 hub 集群在分离时会重新导入自己并管理自己,并协调 MultiClusterHub
控制器。hub 集群可能需要几小时时间来完成分离过程并重新导入。如果要在等待进程完成后重新导入 hub 集群,您可以输入以下命令来重启 multiclusterhub-operator
pod 并更快地重新导入:
oc delete po -n open-cluster-management `oc get pod -n open-cluster-management | grep multiclusterhub-operator| cut -d' ' -f1`
您可以通过将 disableHubSelfManagement
值改为 true
来更改 hub 集群的值,如在线安装所述。