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 离线令牌已被弃用。
先决条件
- 您必须具有 OpenShift Cluster Manager 凭据。如果需要创建凭证,请参阅为 OpenShift Cluster Manager 创建凭证。
- 在服务帐户中了解如何创建 OpenShift Cluster Manager 服务帐户。
1.8.1.1. 身份验证 复制链接链接已复制到粘贴板!
请参阅以下步骤以使用服务帐户进行身份验证。
-
在多集群引擎操作员控制台中创建一个新的凭证机密作为服务帐户
客户端 ID和客户端机密对。 -
指定服务帐户
客户端 ID和客户端密钥对,以便多集群引擎操作员发现服务可以正确验证并发现集群。 -
设置 AWS
DiscoveredCluster资源上的 Red Hat OpenShift 服务以作为托管集群导入。启动的 AWS 上的 Red Hat OpenShift 服务导入流程使用服务帐户凭证进行身份验证并导入集群。
| 角色 | 访问权限 |
|---|---|
| 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 选项卡中出现的集群。使用产品控制台启用发现。
需要的访问权限:访问创建凭证的命名空间。
先决条件
- 您需要一个凭证。请参阅为 OpenShift Cluster Manager 创建凭据以连接到 OpenShift Cluster Manager。
- 您需要访问用于配置 Discovery 的命名空间。
1.8.2.1. 从控制台导入发现的集群 复制链接链接已复制到粘贴板!
要手动导入其他基础架构供应商发现的集群,请完成以下步骤:
- 进入现有的 Clusters 页面,点 Discovered clusters 选项卡。
- 在发现的集群表中找到您要导入的集群。
- 在选项菜单中选择 Import cluster。
- 对于发现的集群,您可以使用文档手动导入,或者您可以自动选择导入集群。
- 要使用凭证或 Kubeconfig 文件自动导入,请复制并粘贴内容。
- 点 Import。
1.8.2.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。
- 您还可以搜索表中的任何信息。例如,要只显示特定命名空间中的发现集群,请搜索该命名空间。
- 现在,您可以点 Import cluster 创建受管集群。
1.8.3. 使用 CLI 启用发现 复制链接链接已复制到粘贴板!
使用 CLI 启用发现功能,以从 OpenShift Cluster Manager 查找可用的集群。
需要的访问权限:Administrator
先决条件
- 创建凭证以连接到 OpenShift Cluster Manager。
1.8.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.8.3.2. 查看发现的集群 复制链接链接已复制到粘贴板!
通过运行 oc get discoveredclusters -n <namespace>(其中 namespace 是发现凭证存在的命名空间)来查看发现的集群。
对象由 Discovery 控制器创建。这些 DiscoveredClusters 使用在 DiscoveryConfig discoveredclusters.discovery.open-cluster-management.io API 中指定的过滤器和凭证来代表 OpenShift Cluster Manager 中找到的集群。name 的值是集群外部 ID:
1.8.4. 为管理启用发现的集群 复制链接链接已复制到粘贴板!
使用 Discovery-Operator 自动将支持的集群导入到 hub 集群,以便更快地管理集群,而无需手动导入单个集群。
需要的访问权限:集群管理员
先决条件
- Discovery 默认启用。如果更改了默认设置,则需要启用 Discovery。
- 您必须在 AWS 命令行界面上设置 Red Hat OpenShift 服务。请参阅 AWS CLI 文档上的 Red Hat OpenShift 服务入门。
1.8.4.1. 自动导入在 AWS 上发现的 Red Hat OpenShift 服务并托管控制平面集群 复制链接链接已复制到粘贴板!
以下步骤是如何使用Discovery-Operator自动导入在 AWS 上发现的 Red Hat OpenShift 服务和托管的控制平面集群的示例。您可以从控制台或命令行界面导入。
从控制台导入。您必须修改资源并在控制台中将
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资源。登录后,使用以下命令将importAsManagedCluster参数设置为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,它不会被导入。