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
はハブクラスターのリソースを監視し、アクティブなマネージドクラスターを追跡します。 -
search-api
: GraphQL を介してsearch-indexer
内のすべてのクラスターデータへのアクセスを提供し、ロールベースのアクセス制御 (RBAC) を適用します。 -
search-postgres
: すべてのマネージドクラスターから収集されたデータを PostgreSQL データベースのインスタンスに保存します。
デフォルトでは、検索はハブクラスターで設定されます。マネージドクラスターをプロビジョニングするか、手動でインポートすると、klusterlet-addon-search
が有効になります。マネージドクラスターの検索を無効にする場合は、クラスターの klusterlet アドオン設定の変更 を参照してください。
1.3.2. 検索のカスタマイズと設定
search-v2-operator
カスタムリソースのデフォルト値を変更できます。カスタムリソースの詳細を表示するには、次のコマンドを実行します。
oc get search search-v2-operator -o yaml
検索オペレーターは、search-v2-operator
カスタムリソースを監視し、変更を調整して、アクティブな Pod を更新します。次の設定の説明を参照してください。
PostgreSQL データベースストレージ:
Red Hat Advanced Cluster Management をインストールすると、PostgreSQL データベースは、PostgreSQL データを空のディレクトリー (
emptyDir
) ボリュームに保存するように設定されます。空のディレクトリーサイズが制限されている場合は、PostgreSQL データを永続ボリューム要求 (PVC) に保存して、検索パフォーマンスを向上させることができます。Red Hat Advanced Cluster Management ハブクラスターからストレージクラスを選択して、検索データをバックアップできます。たとえば、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
です。ストレージサイズを変更できます。たとえば、約 200 のマネージドクラスターには20Gi
で十分な場合があります。PostgreSQL データベース設定:
PostgreSQL は、データベースのパフォーマンスを最適化するためのデータベースチューニングをサポートしています。チューニング設定は、ConfigMap を使用して指定できます。この ConfigMap には、サポートされているチューニングパラメーターの名前と値のペアが含まれています。チューニングパラメーターを使用して 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
4 つの検索 Pod (indexer、database、queryapi、collector) のPod メモリーまたは CPU 要件、レプリカ数、更新ログレベルを調整することでコストを最適化します。
search-v2-operator
カスタムリソースのdeployment
セクションを更新します。search-v2-operator
によって管理される 4 つのデプロイメントがあり、個別に更新できます。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
以下は、メモリーリソースがインデクサー 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
- 検索の管理方法については、検索の管理 を参照してください。
- Red Hat Advanced Cluster Management for Kubernetes コンソールに関するその他のトピックについては、Web コンソール を参照してください。