第 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 集群来管理自己。

  1. 从导航菜单中,将鼠标悬停在 Automate infrastructure 上,然后点击 Clusters
  2. Add cluster
  3. 点击 Import an existing cluster
  4. 提供集群名称。默认情况下,命名空间会设为与集群名称相同的值。最佳实践:保留命名空间值,不要编辑。
  5. 可选:点击以展开 Edit cluster import YAML 文件,并修改端点配置。

    请参阅 表 1.YAML 文件参数和描述,了解有关每个参数的详情。

  6. 可选 :导入后,您可以点击 Configure advanced parameters 添加标签,并使用这些标签进行搜索。
  7. 可选 :配置 MANAGED CLUSTER URLS。通过配置 MANAGED CLUSTER URLS,运行 oc get managedcluster 命令时显示的 URL 会在表中显示。

    1. 如果还没有打开,请使用 web 控制台中的开关打开 YAML 内容,以便查看其内容。
    2. 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 地址。

  8. 点击 Generate Command 检索用于部署 open-cluster-management-agent-addon 的命令。
  9. Import an existing cluster 窗口中,将鼠标悬停在 Copy command 图标上并点击以复制提供给您的导入命令和令牌。您必须点击 Copy 图标来接收准确的副本。重要:命令中包含复制到每个导入集群的 pull secret 信息。具有访问导入集群权限的所有用户都可以查看 pull secret 信息。考虑在 https://cloud.redhat.com/ 或通过创建服务帐户来创建二级 pull secret,以便您的个人凭证不会遭到破坏。如需更多信息,请参阅使用镜像 pull secret了解并创建服务帐户
  10. 在终端中,向受管集群进行身份验证。为目标受管集群配置 kubectl

    请参阅支持的云了解如何配置 kubectl

  11. 要将 open-cluster-management-agent-addon 部署到受管集群,请运行您在第 8 步中生成并复制的命令。
  12. 点击 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-servicekube-ingressistio

kube-service

version

open-cluster-management-agent-addon 的版本

2.1.0

9.1.3. 删除导入的集群

完成以下步骤以删除导入的集群以及在受管集群上创建的 open-cluster-management-agent-addon

  1. Clusters 页面的表中查找您导入的集群。
  2. 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 集群的值,如在线安装所述。