1.9. 发现服务
您可以发现 OpenShift Cluster Manager 中的 OpenShift Container Platform 集群。发现后,您可以导入集群进行管理。发现服务使用 Discover Operator 进行后端和控制台使用。
您必须具有 OpenShift Cluster Manager 凭据。如果需要 创建凭证,请参阅为 OpenShift Cluster Manager 创建凭证。
需要的访问权限:Administrator
1.9.1. 验证服务帐户 复制链接链接已复制到粘贴板!
要发现 OpenShift Cluster Manager 提供的 OpenShift Container Platform 集群,您需要使用服务帐户进行身份验证。请注意,OpenShift Cluster Manager 离线令牌已弃用。
先决条件
- 您必须具有 OpenShift Cluster Manager 凭据。如果需要 创建凭证,请参阅为 OpenShift Cluster Manager 创建凭证。
- 了解如何通过服务帐户创建 OpenShift Cluster Manager 服务帐户。
1.9.1.1. 身份验证 复制链接链接已复制到粘贴板!
请参阅以下流程来使用服务帐户进行身份验证。
-
在 multicluster engine operator 控制台中,创建新凭证 secret 作为 service-account
client-id和client-secret对。 -
指定服务帐户
client-id和client-secret对,以便多集群引擎 operator Discovery 服务可以正确验证并发现集群。 -
设置 Red Hat OpenShift Service on AWS
DiscoveredCluster资源,以导入为受管集群。启动的 Red Hat OpenShift Service on AWS 导入流使用 service-account 凭证验证并导入集群。
| 角色 | 访问权限 |
|---|---|
| OpenShift Cluster Manager 集群自动扩展编辑器 | 在集群自动扩展上执行更新操作 |
| OpenShift Cluster Manager 集群编辑器 | 在集群中执行更新操作 |
| OpenShift Cluster Manager 集群置备程序 | 在集群中执行置备操作 |
| OpenShift Cluster Manager 集群查看器 | 在集群中执行读取操作 |
| OpenShift Cluster Manager IdP 编辑器 | 在 IdP 上执行更新操作 |
| OpenShift Cluster Manager 机器池编辑器 | 对机器池执行更新操作 |
| OpenShift Cluster Manager 机构管理员 | 对关联的机构集群执行所有可用操作 |
| Subscription viewer | 对任何订阅资源执行读取操作。 |
1.9.2. 使用控制台配置发现 复制链接链接已复制到粘贴板!
在控制台中配置 Discovery 以查找集群。在集群中配置 Discovery 功能时,您必须启用 DiscoveryConfig 资源来连接到 OpenShift Cluster Manager,以开始发现属于您的机构的集群。您可以使用单独的凭证创建多个 DiscoveryConfig 资源。
发现集群后,您可以导入控制台的 Discovered clusters 选项卡中出现的集群。使用产品控制台启用发现。
需要的访问权限:访问创建凭证的命名空间。
先决条件
- 您需要一个凭证。请参阅为 OpenShift Cluster Manager 创建凭证 以连接到 OpenShift Cluster Manager。
您需要访问用于配置 Discovery 的命名空间。
从控制台手动导入发现的集群。要导入其他基础架构供应商发现的集群,请完成以下步骤:
- 进入现有的 Clusters 页面,点 Discovered clusters 选项卡。
- 在发现的集群表中找到您要导入的集群。
- 在选项菜单中选择 Import cluster。
- 对于发现的集群,您可以使用文档手动导入,或者您可以自动选择导入集群。
-
要使用凭证或
kubeconfig文件自动导入,请复制并粘贴内容。 - 点 Import。
设置凭证后,在控制台中查看并搜索发现的集群。
- 点 Clusters > Discovered clusters。
使用以下信息查看填充的表:
- Name 是 OpenShift Cluster Manager 中指定的显示名称。如果集群没有显示名称,则会显示基于集群控制台 URL 生成的名称。如果 OpenShift Cluster Manager 缺少控制台URL,或手动修改了控制台 URL,则会显示集群外部 ID。
- Namespace 是您创建凭证和发现集群的命名空间。
- type 是发现的集群 OpenShift Container Platform 平台类型。
- Distribution version 是发现的集群 Red Hat OpenShift 版本。
- 基础架构供应商是已发现集群的云供应商。
- 最后活跃是发现的集群最后一次活跃的时间。
- 当发现的集群被创建时为 Created 。
- 当发现的集群被发现时为 Discovered。
- 您还可以搜索表中的任何信息。例如,要只显示特定命名空间中的发现集群,请搜索该命名空间。
- 现在,您可以点 Import cluster 创建受管集群。
1.9.3. 使用 CLI 启用发现 复制链接链接已复制到粘贴板!
使用 CLI 启用发现以查找 OpenShift Cluster Manager 可用的集群。
需要的访问权限:Administrator
先决条件
- 创建用于连接 OpenShift Cluster Manager 的凭证。
1.9.3.1. 发现设置和进程 复制链接链接已复制到粘贴板!
注: DiscoveryConfig 资源必须命名为 discovery,且必须与所选 凭证 在同一命名空间中创建。请参见以下 DiscoveryConfig 示例:
-
将
SECRET_NAME替换为之前设置的凭证。 -
将
NAMESPACE_NAME替换为SECRET_NAME的命名空间。 -
输入集群最后一次活动(以天为单位)进行发现的最大时间。例如,带有
lastActive: 7的集群,最后 7 天内活跃的集群会被发现。 -
输入要作为字符串列表发现的 OpenShift Container Platform 集群版本。注:
openshiftVersions列表中的每个条目都指定了主版本和次版本。例如,指定4.x包括所有勘误版本,如4.x.1、4.x.2。
1.9.3.2. 查看发现的集群 复制链接链接已复制到粘贴板!
通过运行 oc get discoveredclusters -n <namespace>(其中 namespace 是发现凭证存在的命名空间)来查看发现的集群。如果您设置了区域,您可以使用同样的命令来查看区域。
对象由 Discovery 控制器创建。这些 DiscoveredClusters 使用在 DiscoveryConfig discoveredclusters.discovery.open-cluster-management.io API 中指定的过滤器和凭证来代表 OpenShift Cluster Manager 中找到的集群。name 的值是集群外部 ID:
1.9.4. 为管理启用发现的集群 复制链接链接已复制到粘贴板!
使用 Discovery-Operator 自动将支持的集群导入到 hub 集群,以便更快地管理集群,而无需手动导入单个集群。
需要的访问权限:集群管理员
先决条件
- Discovery 默认启用。如果更改了默认设置,则需要启用 Discovery。
- 您必须在 AWS 命令行界面上设置 Red Hat OpenShift Service。请参阅 Red Hat OpenShift Service on AWS CLI 文档。
以下流程是如何使用 Discovery-Operator 自动导入发现的 Red Hat OpenShift Service on AWS 和托管 control plane 集群的示例。您可以从控制台或命令行界面导入。
从控制台导入。您必须修改资源,并在控制台中将
importAsManagedCluster字段设置为true。- 从控制台登录到您的 hub 集群。
- 从导航菜单中选择 Search。
- 在搜索栏中输入以下查询:"DiscoveredCluster"。
-
此时会出现
DiscoveredCluster资源结果。 进入
DiscoveredCluster资源,并将importAsManagedCluster设置为true。请参阅以下示例,其中importAsManagedCluster设置为true,<4.x.z>是支持的 OpenShift Container Platform 版本:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
要验证
DiscoveredCluster资源是否已导入,请转至 Clusters 页面。从 Cluster list 选项卡检查集群的导入状态。 如果要分离用于发现的受管集群以防止自动重新导入,请选择 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'apiVersion: discovery.open-cluster-management.io/v1 kind: DiscoveredCluster metadata: annotations: discovery.open-cluster-management.io/previously-auto-imported: 'true'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要验证
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"}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 Copied! Toggle word wrap Toggle overflow
注: 如果要自动重新导入
DiscoveredCluster资源,您必须删除前面提到的注解。使用命令行界面导入。
使用命令行界面自动导入
DiscoveredCluster资源。在登录后,使用以下命令将importAsManagedClusterparamater 设置为true。将 <name> 和 <namespace> 替换为您的名称和命名空间:oc patch discoveredcluster <name> -n <namespace> --type='json' -p='[{"op": "replace", "path": "/spec/importAsManagedCluster", "value": true}]'oc patch discoveredcluster <name> -n <namespace> --type='json' -p='[{"op": "replace", "path": "/spec/importAsManagedCluster", "value": true}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令验证集群是否已作为受管集群导入:
oc get managedcluster <name>
oc get managedcluster <name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 要获取 Red Hat OpenShift Service on AWS 集群 ID 的描述,请从 Red Hat OpenShift Service on AWS 命令行界面运行以下命令:
rosa describe cluster --cluster=<cluster-name> | grep -o ^ID:.*
rosa describe cluster --cluster=<cluster-name> | grep -o ^ID:.*Copy to Clipboard Copied! Toggle word wrap Toggle overflow
重要: 对于其他 Kubernetes 供应商,您必须手动导入这些基础架构供应商 DiscoveredCluster 资源。将 Kubernetes 配置直接应用到其他类型的 DiscoveredCluster 资源。如果从 DiscoveredCluster 资源启用 importAsManagedCluster 字段,则不会因为 Discovery Webhook 导入它。