搜索
了解 Red Hat 高级集群管理搜索服务如何提供所有集群中 Kubernetes 资源的可见性。
摘要
第 1 章 搜索 复制链接链接已复制到粘贴板!
了解 Red Hat 高级集群管理搜索服务。使用 search 从集群中查询资源数据。请参阅以下文档:
1.1. 搜索服务 复制链接链接已复制到粘贴板!
对于 Red Hat Advanced Cluster Management for Kubernetes,搜索功能可让您了解所有集群中的 Kubernetes 资源。搜索也对 Kubernetes 资源以及与其他资源的关系进行索引。
1.1.1. 搜索组件 复制链接链接已复制到粘贴板!
搜索构架由以下组件组成:
| 组件名称 | 指标 | 指标类型 | 描述 |
|---|---|---|---|
|
|
查看 Kubernetes 资源,收集所有受管集群中资源元数据、计算资源关系,并将收集的数据发送到 | ||
|
从收集器接收资源元数据并写入 PostgreSQL 数据库。 |
| Histogram | 搜索索引器处理请求(来自受管集群)所需的时间(秒)。 |
|
| Histogram | 搜索索引器请求(从受管集群)中的总更改 (add、update、delete)。 | |
|
| 计数 | 搜索索引器(来自受管集群)收到的总请求。 | |
|
| 量表 | 搜索索引器在给定时间处理的总请求。 | |
|
通过 GraphQL 提供 |
| Histogram | HTTP 请求持续时间的直方图(以秒为单位)。 |
|
| Histogram | 数据库请求的延迟(以秒为单位)。 | |
|
| 计数 | 失败的数据库连接尝试总数。 | |
|
| 将从所有受管集群收集的数据存储在 PostgreSQL 数据库实例中。 |
在 hub 集群中默认配置搜索。当您置备或手动导入受管集群时,klusterlet-addon-search 会被启用。如果要禁用对受管集群的搜索,请参阅修改集群的 klusterlet 附加设置以了解更多信息。
1.1.2. 搜索自定义和配置 复制链接链接已复制到粘贴板!
您可以修改 search-v2-operator 自定义资源中的默认值。要查看自定义资源的详情,请运行以下命令:
oc get search search-v2-operator -o yaml
oc get search search-v2-operator -o yaml
搜索 Operator 会监视 search-v2-operator 自定义资源,协调更改并更新活跃的 pod。查看以下配置描述:
PostgreSQL 数据库存储:
安装 Red Hat Advanced Cluster Management 时,PostgreSQL 数据库被配置为将 PostgreSQL 数据保存在一个空目录 (
emptyDir) 卷中。如果空目录大小有限,您可以在持久性卷声明 (PVC) 中保存 PostgreSQL 数据,以提高搜索性能。您可以从 Red Hat Advanced Cluster Management hub 集群中选择一个存储类来备份搜索数据。例如,如果您选择gp2存储类,您的配置可能类似以下示例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此配置会创建一个名为
gp2-search的 PVC,并挂载到search-postgrespod。默认情况下,存储大小为10Gi。您可以修改存储大小。例如,20Gi可能足以满足大约 200 个受管集群。通过调整 pod 内存或 CPU 要求、副本计数和更新任何四个搜索 Pod (
indexer,database,queryapi, 或collectorpod)来优化成本。更新search-v2-operator自定义资源的deployment部分。search-v2-operator管理四个部署,它们可以单独更新。您的search-v2-operator自定义资源可能类似以下文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 请参阅以下示例,其中内存资源应用到 indexer pod:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以定义搜索舱的节点位置。
您可以使用
nodeSelector参数或tolerations参数更新搜索 pod 的放置。查看以下示例配置:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 通过选择高级搜索下拉按钮来过滤列、运算符和值选项或添加搜索约束,从而指定您的搜索查询。
1.1.3. 搜索操作和数据类型 复制链接链接已复制到粘贴板!
使用搜索操作作为条件来指定您的搜索查询。支持>、>=、<、<=、!=等字符。参见下面的搜索操作表:
| 默认操作 | 数据类型 | 描述 |
|---|---|---|
|
| 字符串,数字 | 这是默认操作。 |
| 或者 | 字符串,数字 | 这代表NOT运算,即从搜索结果中排除。 |
|
| number | |
|
| date | 与过去一小时、一天、一周、一月和一年匹配的日期。 |
|
| string | 部分字符串匹配。 |
1.1.4. 其他资源 复制链接链接已复制到粘贴板!
- 有关 Red Hat Advanced Cluster Management for Kubernetes 控制台的更多信息,请参阅 Web 控制台。
1.2. 创建搜索可配置的集合 复制链接链接已复制到粘贴板!
通过为每个要自定义搜索收集资源的托管集群创建search-collector-config配置映射,定义从集群收集哪些 Kubernetes 资源。
需要的访问权限:集群管理员
将配置图放置在部署搜索插件的同一命名空间中。默认命名空间是open-cluster-management-agent-addon 。
完成以下步骤:
运行以下命令来创建
search-collector-config配置映射:oc apply -f <your-search-collector-config>.yaml
oc apply -f <your-search-collector-config>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 列出配置映射中的允许列表(
data.AllowedResources)和拒绝列表(data.DeniedResources)部分中的资源。您的配置映射可能类似以下 YAML 文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注:如果您不提供 ConfigMap,则默认收集所有资源。如果您只提供
AllowedResources,则AllowedResources中未列出的所有资源都会被自动排除。同时AllowedResources和DeniedResources中列出的资源也会被排除。
1.2.1. 自定义搜索控制台 复制链接链接已复制到粘贴板!
自定义您的搜索结果和限制。完成以下任务来执行定制:
您可以从 OpenShift Container Platform 控制台自定义搜索结果限制。
更新
multicluster-engine命名空间中的console-mce-config。这些设置适用于所有用户,并可能会影响性能。查看以下性能参数描述:-
SAVED_SEARCH_LIMIT- 每个用户保存的搜索的最大数量。默认情况下,每个用户可以保存的搜索数量被限制为 10 个。默认值为10。要更新限制,请在 console-config ConfigMap 中添加以下键值:SAVED_SEARCH_LIMIT: x. -
SEARCH_RESULT_LIMIT- 控制台中显示的最大搜索结果量。默认值为1000。要删除此限制,请将设为-1。 -
SEARCH_AUTOCOMPLETE_LIMIT- 为搜索栏 typeahead 检索的最大建议数。默认值为10,000。要删除此限制,请将设为-1。
-
-
从 OpenShift Container Platform 控制台运行以下
patch命令,将搜索结果改为 100 个项目:
oc patch configmap console-mce-config -n multicluster-engine --type merge -p '{"data":{"SEARCH_RESULT_LIMIT":"100"}}'oc patch configmap console-mce-config -n multicluster-engine --type merge -p '{"data":{"SEARCH_RESULT_LIMIT":"100"}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要添加、编辑或删除建议的搜索,请创建一个名为
console-search-config的配置映射并配置recommendedSearches部分。列出的建议搜索也会显示在控制台中。每个搜索对象都需要有一个id、name 和 searchText。查看以下配置图示例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 添加启用搜索的命名空间。
1.2.2. 在控制台中查询 复制链接链接已复制到粘贴板!
您可以在 搜索框中 输入任何文字,结果会包括带有这个值的任何属性(如名称或命名空间)。不支持包含空格的查询。
需要的访问权限:集群管理员
如需更具体的搜索结果,请在搜索中包含属性。您可以组合属性的相关值以获取更精确的搜索范围。例如,搜索 cluster:dev red 以接收与 dev 集群中字符串"red" 匹配的结果。
完成以下步骤,使用搜索进行查询:
- 在导航菜单中点击 Search。
在搜索框中输入要搜索的内容,搜索功能会查找包含该值的资源。
- 当搜索资源时,会收到与原始搜索结果关联的其他资源。这可帮助您了解这些资源如何与系统中的其他资源进行交互。
- 搜索返回并列出带有搜索资源的集群。对于 hub 集群中的资源,集群名称会显示为 local-cluster。
-
您的搜索结果按
kind分组,每个资源kind在一个表格中分组。 - 您的搜索选项依赖于集群对象。
-
您可以使用特定标签重新定义结果。在查询标签时,搜索是区分大小写的。请参见以下示例,您可以选择过滤:
名称、命名空间、状态和其他资源字段。Auto-complete 提供了重新定义搜索的建议。请参见以下示例: -
搜索单个字段,如
kind:pod以查找所有 pod 资源。 搜索多个字段,如
kind:pod namespace:default以在默认命名空间中查找 pod。备注:
- 当使用多个属性值进行搜索时,会返回满足任何一个搜索值的结果。请参见以下示例:
-
例如,当搜索
kind:pod name:a时,任何名为a的 pod 都会被返回。 -
当搜索
kind:pod name:a,b时,任何名为a或b的 pod 都会被返回。 -
搜索
kind:pod status:!Running以查找所有状态不是Running的 pod 资源。 -
搜索
kind:pod restarts:>1以查找重启至少两次的所有 pod。
- 如果要保存搜索,请点击 Save search 图标。
- 要下载搜索结果,请选择“导出为 CSV”按钮。
1.3. 更新 klusterlet-addon-search 部署 复制链接链接已复制到粘贴板!
要从受管集群收集 Kubernetes 对象,klusterlet-addon-search pod 在启用了搜索的所有受管集群中运行。此部署在 open-cluster-management-agent-addon 命名空间中运行。具有大量资源的受管集群可能需要更多内存才能使 klusterlet-addon-search 部署正常工作。
需要的访问权限:集群管理员
受管集群中的 klusterlet-addon-search pod 的资源要求可在 Red Hat Advanced Cluster Management hub 集群的 ManagedClusterAddon 自定义资源中指定。每个带有受管集群名称的受管集群都有一个命名空间。完成以下步骤:
从与受管集群名称匹配的命名空间中编辑
ManagedClusterAddon自定义资源。运行以下命令以更新xyz受管集群中的资源要求:oc edit managedclusteraddon search-collector -n xyz
oc edit managedclusteraddon search-collector -n xyzCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将资源要求作为注解附加。查看以下示例:
apiVersion: addon.open-cluster-management.io/v1alpha1 kind: ManagedClusterAddOn metadata: annotations: addon.open-cluster-management.io/search_memory_limit: 2048Mi addon.open-cluster-management.io/search_memory_request: 512Mi
apiVersion: addon.open-cluster-management.io/v1alpha1 kind: ManagedClusterAddOn metadata: annotations: addon.open-cluster-management.io/search_memory_limit: 2048Mi addon.open-cluster-management.io/search_memory_request: 512MiCopy to Clipboard Copied! Toggle word wrap Toggle overflow
该注解会覆盖受管集群上的资源要求,并使用新资源要求自动重启 pod。
注意:您可以使用控制台中的 API Explorer 发现托管集群中定义的所有资源。或者,您可以通过运行以下命令来发现所有资源: oc api-resources