1.8. 发现服务


您可以从OpenShift Cluster Manager发现可用的 OpenShift Container Platform 集群。发现后,您可以导入集群进行管理。发现服务使用 Discover Operator 进行后端和控制台使用。

您必须具有 OpenShift Cluster Manager 凭据。如果需要创建凭证,请参阅为 OpenShift Cluster Manager 创建凭证。

需要的访问权限:Administrator

1.8.1. 验证服务帐户

要从OpenShift Cluster Manager发现可用的 OpenShift Container Platform 集群,您需要使用服务帐户进行身份验证。请注意,OpenShift Cluster Manager 离线令牌已被弃用。

先决条件

1.8.1.1. 身份验证

请参阅以下步骤以使用服务帐户进行身份验证。

  1. 在多集群引擎操作员控制台中创建一个新的凭证机密作为服务帐户客户端 ID客户端机密对。
  2. 指定服务帐户客户端 ID客户端密钥对,以便多集群引擎操作员发现服务可以正确验证并发现集群。
  3. 设置 AWS DiscoveredCluster资源上的 Red Hat OpenShift 服务以作为托管集群导入。启动的 AWS 上的 Red Hat OpenShift 服务导入流程使用服务帐户凭证进行身份验证并导入集群。
Expand
表 1.10. 已部署组件的列表
角色访问权限

OpenShift Cluster Manager 集群自动缩放器编辑器

在集群自动缩放器上执行更新操作

OpenShift Cluster Manager 集群编辑器

对集群执行更新操作

OpenShift Cluster Manager 集群配置器

在集群上执行配置操作

OpenShift Cluster Manager 集群查看器

在集群上执行读取操作

OpenShift Cluster Manager IdP 编辑器

对 IdP 执行更新操作

OpenShift Cluster Manager 机器池编辑器

对机器池执行更新操作

OpenShift Cluster Manager 组织管理员

对关联组织的集群执行所有可用的操作

订阅查看器

对任何订阅资源执行读取操作。

1.8.2. 使用控制台配置发现

在控制台中配置 Discovery 以查找集群。在集群中配置 Discovery 功能时,您必须启用 DiscoveryConfig 资源来连接到 OpenShift Cluster Manager,以开始发现属于您的机构的集群。您可以使用单独的凭证创建多个 DiscoveryConfig 资源。

发现集群后,您可以导入控制台的 Discovered clusters 选项卡中出现的集群。使用产品控制台启用发现。

需要的访问权限:访问创建凭证的命名空间。

先决条件

1.8.2.1. 从控制台导入发现的集群

要手动导入其他基础架构供应商发现的集群,请完成以下步骤:

  1. 进入现有的 Clusters 页面,点 Discovered clusters 选项卡。
  2. 发现的集群表中找到您要导入的集群。
  3. 在选项菜单中选择 Import cluster
  4. 对于发现的集群,您可以使用文档手动导入,或者您可以自动选择导入集群。
  5. 要使用凭证或 Kubeconfig 文件自动导入,请复制并粘贴内容。
  6. Import

1.8.2.2. 查看发现的集群

在设置凭证并发现集群以导入后,您可以在控制台中查看它们。

  1. 单击集群>已发现的集群
  2. 使用以下信息查看填充的表:

    • Name 是 OpenShift Cluster Manager 中指定的显示名称。如果集群没有显示名称,则会显示基于集群控制台 URL 生成的名称。如果 OpenShift Cluster Manager 缺少控制台URL,或手动修改了控制台 URL,则会显示集群外部 ID。
    • Namespace 是您创建凭证和发现集群的命名空间。
    • Type 是发现的集群 Red Hat OpenShift 类型。
    • Distribution version 是发现的集群 Red Hat OpenShift 版本。
    • 基础架构供应商是已发现集群的云供应商。
    • 最后活跃是发现的集群最后一次活跃的时间。
    • 当发现的集群被创建时为 Created
    • 当发现的集群被发现时为 Discovered
    • 集群类型是集群的平台类型,例如 AWS 上的 OpenShift Container Platform 或 Red Hat OpenShift Service。
    • 基础设施提供商根据集群的运行位置进行筛选,例如 Amazon Web Services (AWS) 或 Microsoft Azure。
  3. 您还可以搜索表中的任何信息。例如,要只显示特定命名空间中的发现集群,请搜索该命名空间。
  4. 现在,您可以点 Import cluster 创建受管集群。

1.8.3. 使用 CLI 启用发现

使用 CLI 启用发现功能,以从 OpenShift Cluster Manager 查找可用的集群。

需要的访问权限:Administrator

先决条件

  • 创建凭证以连接到 OpenShift Cluster Manager。

1.8.3.1. 发现设置和进程

注: DiscoveryConfig 必须命名为 discovery,且必须与所选凭证在同一命名空间中创建。请参见以下 DiscoveryConfig 示例:

apiVersion: discovery.open-cluster-management.io/v1
kind: DiscoveryConfig
metadata:
  name: discovery
  namespace: <NAMESPACE_NAME>
spec:
  credential: <SECRET_NAME>
  filters:
    lastActive: 7
    openshiftVersions:
    - "4.x"
Copy to Clipboard Toggle word wrap
  1. SECRET_NAME 替换为之前设置的凭证。
  2. NAMESPACE_NAME 替换为 SECRET_NAME 的命名空间。
  3. 输入集群最后一次活动(以天为单位)进行发现的最大时间。例如,带有 lastActive: 7 的集群,最后 7 天内活跃的集群会被发现。
  4. 输入要作为字符串列表发现的 OpenShift Container Platform 集群版本。注意: openshiftVersions列表中的每个条目都指定了主要版本和次要版本。例如,指定4.x包括所有勘误版本,如 4.x.1、4.x.2

1.8.3.2. 查看发现的集群

通过运行 oc get discoveredclusters -n <namespace>(其中 namespace 是发现凭证存在的命名空间)来查看发现的集群。

对象由 Discovery 控制器创建。这些 DiscoveredClusters 使用在 DiscoveryConfig discoveredclusters.discovery.open-cluster-management.io API 中指定的过滤器和凭证来代表 OpenShift Cluster Manager 中找到的集群。name 的值是集群外部 ID:

apiVersion: discovery.open-cluster-management.io/v1
kind: DiscoveredCluster
metadata:
  name: <cluster-external-id>
  namespace: <NAMESPACE_NAME>
spec:
  activity_timestamp: "2022-04-19T21:06:14Z"
  cloudProvider: vsphere
  console: https://console-openshift-console.apps.qe1-vmware-pkt.dev02.red-chesterfield.com
  creation_timestamp: "2022-04-19T16:29:53Z"
  credential:
    apiVersion: v1
    kind: Secret
    name: <SECRET_NAME>
    namespace: <NAMESPACE_NAME>
  display_name: qe1-vmware-pkt.dev02.red-chesterfield.com
  name: <cluster-external-id>
  openshiftVersion: 4.x
  status: Stale
Copy to Clipboard Toggle word wrap

1.8.4. 为管理启用发现的集群

使用 Discovery-Operator 自动将支持的集群导入到 hub 集群,以便更快地管理集群,而无需手动导入单个集群。

需要的访问权限:集群管理员

先决条件

以下步骤是如何使用Discovery-Operator自动导入在 AWS 上发现的 Red Hat OpenShift 服务和托管的控制平面集群的示例。您可以从控制台或命令行界面导入。

  • 从控制台导入。您必须修改资源并在控制台中将importAsManagedCluster字段设置为true

    1. 从控制台登录到您的 hub 集群。
    2. 从导航菜单中选择 Search
    3. 在搜索栏中输入以下查询:"DiscoveredCluster"。
    4. 此时会出现 DiscoveredCluster 资源结果。
    5. 进入 DiscoveredCluster 资源,并将 importAsManagedCluster 设置为 true。请参阅以下示例,其中 importAsManagedCluster 设置为 true,<4. x.z> 是支持的 OpenShift Container Platform 版本:

      apiVersion: discovery.open-cluster-management.io/v1
      kind: DiscoveredCluster
      metadata:
        name: 28c17977-fc73-4050-b5cc-a5aa2d1d6892
        namespace: discovery
      spec:
        openshiftVersion: <4.x.z>
        isManagedCluster: false
        cloudProvider: aws
        name: 28c17977-fc73-4050-b5cc-a5aa2d1d6892
        displayName: rosa-dc
        status: Active
        importAsManagedCluster: true 
      1
      
        type: <supported-type> 
      2
      Copy to Clipboard Toggle word wrap
      1
      通过将字段设置为 trueDiscovery-Operator 会导入 DiscoveredCluster 资源,创建一个 ManagedCluster 资源,如果安装了 Red Hat Advanced Cluster Management,则创建 KlusterletAddOnConfig 资源。它还会为自动导入创建 Secret 资源。
      2
      您必须使用 ROSAMultiClusterEngineHCP 作为参数值。
    6. 要验证 DiscoveredCluster 资源是否已导入,请转至 Clusters 页面。从 Cluster list 选项卡检查集群的导入状态。
    7. 如果要分离用于发现的受管集群以防止自动重新导入,请选择 Detach cluster 选项。Discovery-Operator 添加以下注解 discovery.open-cluster-management.io/previously-auto-imported: 'true'

      您的 DiscoveredCluster 资源可能类似以下 YAML:

      apiVersion: discovery.open-cluster-management.io/v1
      kind: DiscoveredCluster
      metadata:
        annotations:
          discovery.open-cluster-management.io/previously-auto-imported: 'true'
      Copy to Clipboard Toggle word wrap
    8. 要验证 DiscoveredCluster 资源是否没有被自动导入,请在 Discovery-Operator 日志中检查以下消息,其中 "rosa-dc" 是这个发现的集群:

      2024-06-12T14:11:43.366Z INFO reconcile	Skipped automatic import for DiscoveredCluster due to
      existing 'discovery.open-cluster-management.io/previously-auto-imported' annotation {"Name": "rosa-dc"}
      Copy to Clipboard Toggle word wrap

    注意:如果要自动重新导入DiscoveredCluster资源,则必须删除前面提到的注释。

  • 从命令行界面导入。

    1. 从命令行界面自动导入DiscoveredCluster资源。登录后,使用以下命令将importAsManagedCluster参数设置为true 。将 & lt;name& gt ; 和 <namespace > 替换为您的名称和命名空间:

      oc patch discoveredcluster <name> -n <namespace> --type='json' -p='[{"op": "replace", "path": "/spec/importAsManagedCluster", "value": true}]'
      Copy to Clipboard Toggle word wrap
    2. 运行以下命令验证集群是否已作为受管集群导入:

      oc get managedcluster <name>
      Copy to Clipboard Toggle word wrap
    3. 要获取 Red Hat OpenShift Service on AWS 集群 ID 的描述,请从 Red Hat OpenShift Service on AWS 命令行界面运行以下命令:
    rosa describe cluster --cluster=<cluster-name> | grep -o ^ID:.*
    Copy to Clipboard Toggle word wrap

重要提示:对于其他 Kubernetes 提供商,您必须手动导入这些基础设施提供商DiscoveredCluster资源。将 Kubernetes 配置直接应用于其他类型的DiscoveredCluster资源。如果您从DiscoveredCluster资源启用importAsManagedCluster字段,则由于 Discovery webhook,它不会被导入。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat