1.3. 在控制台简介中搜索
对于 Red Hat Advanced Cluster Management for Kubernetes,搜索功能可让您了解所有集群中的 Kubernetes 资源。搜索也对 Kubernetes 资源以及与其他资源的关系进行索引。
1.3.1. 搜索组件
搜索构架由以下组件组成:
-
search-collector
:查看 Kubernetes 资源,收集所有受管集群中资源元数据、计算资源关系,并将收集的数据发送到search-indexer
。受管集群中的search-collector
作为名为klusterlet-addon-search
的 pod 运行。 -
search-indexer
: 从收集器接收资源元数据并写入 PostgreSQL 数据库。search-indexer
还监视 hub 集群中的资源来跟踪活跃受管集群。 -
search-api
:通过 GraphQL 提供search-indexer
中所有集群数据的访问权限,并强制实施基于角色的访问控制 (RBAC)。 -
search-postgres
:将从 PostgreSQL 数据库实例中的所有受管集群收集数据。
在 hub 集群中默认配置搜索。当您置备或手动导入受管集群时,klusterlet-addon-search
会被启用。如果要禁用对受管集群的搜索,请参阅修改集群的 klusterlet 附加设置以了解更多信息。
1.3.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 个受管集群。PostgreSQL 数据库配置:
PostgreSQL 支持数据库性能优化,以优化您的数据库性能。调优配置可以使用 ConfigMap 指定。此 ConfigMap 包含支持的调优参数的 name-value 对。请参阅以下示例命令使用调优参数创建 ConfigMap:
oc create configmap tuning-config --from-literal POSTGRESQL_SHARED_BUFFERS=128MB --from-literal POSTGRESQL_EFFECTIVE_CACHE_SIZE=128MB --from-literal WORK_MEM=64MB
使用前面的 ConfigMap 优化 PostgreSQL 数据库配置。例如,添加
tuning-config
作为参数值: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: dbConfig: tuning-config dbStorage: size: 10Gi storageClassName: gp2-search
通过调整 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: dbConfig: tuning-config deployments: collector: resources: 1 limits: cpu: 500m memory: 128Mi requests: cpu: 250m memory: 64Mi indexer: replicaCount: 3 database: {} queryapi: arguments: 2 - -v=3
请参阅以下示例,其中内存资源应用到 indexer pod:
indexer: resources: limits: memory: 5Gi requests: memory: 1Gi
搜索 pod 的节点放置:
您可以使用
nodeSelector
参数或tolerations
参数更新搜索 pod 的放置
。查看以下示例配置: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
- 有关如何管理搜索的说明,请参阅管理搜索。
- 有关 Red Hat Advanced Cluster Management for Kubernetes 控制台的更多信息,请参阅 Web 控制台。