1.8. 发现服务简介
您可以发现 OpenShift Cluster Manager 中的 OpenShift 4 集群。发现后,您可以导入集群进行管理。发现服务使用 Discover Operator 进行后端和控制台使用。
您必须具有 OpenShift Cluster Manager 凭据。如果需要 创建凭证,请参阅为 Red Hat OpenShift Cluster Manager 创建凭证。
需要的访问权限:Administrator
1.8.1. 使用控制台配置发现
在控制台中配置 Discovery 以查找集群。在集群中配置 Discovery 功能时,您必须启用 DiscoveryConfig
资源来连接到 OpenShift Cluster Manager,以开始发现属于您的机构的集群。您可以使用单独的凭证创建多个 DiscoveryConfig
资源。
发现集群后,您可以导入控制台的 Discovered clusters 选项卡中出现的集群。使用产品控制台启用发现。
需要的访问权限:访问创建凭证的命名空间。
1.8.1.1. 先决条件
- 您需要一个凭证。请参阅为 Red Hat OpenShift Cluster Manager 创建凭证 以连接到 OpenShift Cluster Manager。
- 您需要访问用于配置 Discovery 的命名空间。
1.8.1.2. 从控制台导入发现的集群
要手动导入其他基础架构供应商发现的集群,请完成以下步骤:
- 进入现有的 Clusters 页面,点 Discovered clusters 选项卡。
- 在发现的集群表中找到您要导入的集群。
- 在选项菜单中选择 Import cluster。
- 对于发现的集群,您可以使用文档手动导入,或者您可以自动选择导入集群。
- 要使用凭证或 Kubeconfig 文件自动导入,请复制并粘贴内容。
- 点 Import。
1.8.1.3. 查看发现的集群
在设置凭证并发现集群以导入后,您可以在控制台中查看它们。
- 点 Clusters > Discovered cluster
使用以下信息查看填充的表:
- Name 是 OpenShift Cluster Manager 中指定的显示名称。如果集群没有显示名称,则会显示基于集群控制台 URL 生成的名称。如果 OpenShift Cluster Manager 缺少控制台URL,或手动修改了控制台 URL,则会显示集群外部 ID。
- Namespace 是您创建凭证和发现集群的命名空间。
- Type 是发现的集群 Red Hat OpenShift 类型。
- Distribution version 是发现的集群 Red Hat OpenShift 版本。
- 基础架构供应商是已发现集群的云供应商。
- 最后活跃是发现的集群最后一次活跃的时间。
- 当发现的集群被创建时为 Created 。
- 当发现的集群被发现时为 Discovered。
- 您还可以搜索表中的任何信息。例如,要只显示特定命名空间中的发现集群,请搜索该命名空间。
- 现在,您可以点 Import cluster 创建受管集群。
1.8.2. 使用 CLI 启用发现
使用 CLI 启用发现以查找 Red Hat OpenShift Cluster Manager 可用的集群。
需要的访问权限:Administrator
1.8.2.1. 先决条件
- 创建用于连接到 Red Hat OpenShift Cluster Manager 的凭证。
1.8.2.2. 发现设置和进程
注: 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.15"
-
将
SECRET_NAME
替换为之前设置的凭证。 -
将
NAMESPACE_NAME
替换为SECRET_NAME
的命名空间。 -
输入集群最后一次活动(以天为单位)进行发现的最大时间。例如,带有
lastActive: 7
的集群,最后 7 天内活跃的集群会被发现。 -
输入要作为字符串列表发现的 Red Hat OpenShift 集群的版本。注:
openshiftVersions
列表中的每个条目都指定了一个 OpenShift 主版本和次版本。例如,指定"4.11"
将包括 OpenShift 版本4.11
的所有补丁版本,如4.11.1
、4.11.2
。
1.8.2.3. 查看发现的集群
通过运行 oc get discoveredclusters -n <namespace>
(其中 namespace
是发现凭证存在的命名空间)来查看发现的集群。
1.8.2.3.1. DiscoveredClusters
对象由 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: fd51aafa-95a8-41f7-a992-6fb95eed3c8e namespace: <NAMESPACE_NAME> spec: activity_timestamp: "2021-04-19T21:06:14Z" cloudProvider: vsphere console: https://console-openshift-console.apps.qe1-vmware-pkt.dev02.red-chesterfield.com creation_timestamp: "2021-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: fd51aafa-95a8-41f7-a992-6fb95eed3c8e openshiftVersion: 4.15 status: Stale
1.8.3. 为管理启用发现的集群
使用 Discovery-Operator
自动将支持的集群导入到 hub 集群,以便更快地管理集群,而无需手动导入单个集群。
需要的访问权限:集群管理员
1.8.3.1. 先决条件
- Discovery 默认启用。如果更改了默认设置,则需要启用 Discovery。
- 您必须在 AWS 命令行界面上设置 OpenShift Service。请参阅 AWS CLI 文档中的 OpenShift Service 入门 文档。
1.8.3.2. 在 AWS 和托管的 control plane 集群上自动导入发现的 OpenShift Service
以下流程是如何使用 Discovery-Operator
自动导入发现的 OpenShift Service on AWS 和托管 control plane 集群的示例。
1.8.3.2.1. 从控制台导入
要自动导入 DiscoveredCluster
资源,您必须修改资源,并在控制台中将 importAsManagedCluster
字段设置为 true
。请参见以下步骤:
- 从控制台登录到您的 hub 集群。
- 从导航菜单中选择 Search。
- 在搜索栏中输入以下查询:"DiscoveredCluster"。
-
此时会出现
DiscoveredCluster
资源结果。 进入
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
-
要验证
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'
要验证
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"}
-
如果要自动重新导入
DiscoveredCluster
资源,您必须删除前面提到的注解。
1.8.3.2.2. 使用命令行界面导入
要从命令行自动导入 DiscoveredCluster
资源,请完成以下步骤:
要自动导入
DiscoveredCluster
资源,请在登录后使用以下命令将importAsManagedCluster
paramater 设置为true
。将 <name&
gt; 和 <namespace
> 替换为您的名称和命名空间:oc patch discoveredcluster <name> -n <namespace> --type='json' -p='[{"op": "replace", "path": "/spec/importAsManagedCluster", "value": true}]'
运行以下命令验证集群是否已作为受管集群导入:
oc get managedcluster <name>
要获取 OpenShift Service on AWS 集群 ID 的描述,请从 OpenShift Service on AWS 命令行界面运行以下命令:
rosa describe cluster --cluster=<cluster-name> | grep -o '^ID:.*
对于其他 Kubernetes 供应商,您必须手动导入这些基础架构供应商 DiscoveredCluster
资源。将 Kubernetes 配置直接应用到其他类型的 DiscoveredCluster
资源。如果从 DiscoveredCluster
资源启用 importAsManagedCluster
字段,则不会因为 Discovery Webhook 导入它。
1.8.3.3. 其他资源
- 请参阅 发现服务简介。