第 1 章 搜索
了解 Red Hat Advanced Cluster Management Search 服务。使用 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
搜索 Operator 会监视 search-v2-operator
自定义资源,协调更改并更新活跃的 pod。查看以下配置描述:
PostgreSQL 数据库存储:
安装 Red Hat Advanced Cluster Management 时,PostgreSQL 数据库被配置为将 PostgreSQL 数据保存在一个空目录 (
emptyDir
) 卷中。如果空目录大小有限,您可以在持久性卷声明 (PVC) 中保存 PostgreSQL 数据,以提高搜索性能。您可以从 Red Hat Advanced Cluster Management hub 集群中选择一个存储类来备份搜索数据。例如,如果您选择gp2
存储类,您的配置可能类似以下示例:apiVersion: search.open-cluster-management.io/v1alpha1 kind: Search metadata: name: search-v2-operator namespace: open-cluster-management labels: cluster.open-cluster-management.io/backup: "" spec: dbStorage: size: 10Gi storageClassName: gp2
此配置会创建一个名为
gp2-search
的 PVC,并挂载到search-postgres
pod。默认情况下,存储大小为10Gi
。您可以修改存储大小。例如,20Gi
可能足以满足大约 200 个受管集群。通过调整 pod 内存或 CPU 要求、副本计数和更新任何四个搜索 Pod (
indexer
,database
,queryapi
, 或collector
pod)来优化成本。更新search-v2-operator
自定义资源的deployment
部分。search-v2-operator
管理四个部署,它们可以单独更新。您的search-v2-operator
自定义资源可能类似以下文件:apiVersion: search.open-cluster-management.io/v1alpha1 kind: Search metadata: name: search-v2-operator namespace: open-cluster-management spec: deployments: collector: resources: 1 limits: cpu: 500m memory: 128Mi requests: cpu: 250m memory: 64Mi indexer: replicaCount: 3 database: 2 envVar: - name: POSTGRESQL_EFFECTIVE_CACHE_SIZE value: 1024MB - name: POSTGRESQL_SHARED_BUFFERS value: 512MB - name: WORK_MEM value: 128MB queryapi: arguments: 3 - -v=3
请参阅以下示例,其中内存资源应用到 indexer pod:
indexer: resources: limits: memory: 5Gi requests: memory: 1Gi
您可以为搜索 pod 定义节点放置。
您可以使用
nodeSelector
参数或tolerations
参数更新搜索 pod 的Placement
资源。查看以下示例配置:spec: dbStorage: size: 10Gi deployments: collector: {} database: {} indexer: {} queryapi: {} nodeSelector: node-role.kubernetes.io/infra: "" tolerations: - effect: NoSchedule key: node-role.kubernetes.io/infra operator: Exists
- 选择 Advanced search 下拉菜单按钮来指定您的搜索查询,以过滤 Column、Operator 和 Value 选项或添加搜索约束。
1.1.3. 搜索操作和数据类型
使用搜索操作作为条件来指定搜索查询。支持 > ;, >=, <, <=, !=
等字符。请参阅以下搜索操作表:
默认操作 | 数据类型 | 描述 |
---|---|---|
| 字符串、数字 | 这是默认操作。 |
| 字符串、数字 | 这代表了 NOT 操作,这意味着要从搜索结果中排除。 |
| number | |
| date | 与最后一个小时、天、星期、月份和年匹配的日期。 |
| string | 部分字符串匹配。 |
1.1.4. 其他资源
- 有关 Red Hat Advanced Cluster Management for Kubernetes 控制台的更多信息,请参阅 Web 控制台。