1.3. 検索サービスのカスタマイズ
検索サービスをカスタマイズして、永続ストレージを設定したり、パフォーマンスとスケーラビリティーを微調整したり、環境変数を通じて特定の動作を変更したりできます。検索オペレーターから検索設定オプションにアクセスします。検索オペレーターは、カスタムリソースである search-v2-operator を 監視し、変更を調整して、アクティブな Pod を更新します。
必要なアクセス権: クラスター管理者
前提条件
-
open-cluster-management名前空間へのアクセス権が必要です。
手順
検索サービスをカスタマイズするには、以下の手順を実行してください。
search-v2-operatorカスタムリソースのデフォルト値を変更します。カスタムリソースの詳細を表示するには、次のコマンドを実行します。
oc get search search-v2-operator -n <acm-namespace> -o yaml本番環境で稼働中のクラスターに対して、永続的なボリューム要求を設定します。空きディレクトリーのサイズに制限がある場合は、検索パフォーマンスを向上させるために、PostgreSQL データを永続ボリューム要求に保存してください。
注記:
-
インストール時、Red Hat Advanced Cluster Management PostgreSQL データベースのデフォルト設定では、データストレージとして
emptyDirボリュームが使用されます。 -
永続的なボリューム要求が見つからない場合、ステータス ペインに
SearchPVCNotPresentアラートが表示されます。 -
検索用の永続的なボリューム要求が欠落しており、重大な状況が存在する場合、
SearchPVCNotPresentCriticalPrometheus アラートが送信されます。
-
インストール時、Red Hat Advanced Cluster Management PostgreSQL データベースのデフォルト設定では、データストレージとして
- 検索データを永続化するには、Red Hat Advanced Cluster Management ハブクラスターからストレージクラスを選択してください。
-
たとえば、
gp2ストレージクラスを選択した場合は、永続ボリューム要求を作成し、その要求をsearch-postgresPod にマウントします。お使いの設定は、以下の例のようになるかもしれません。
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-
必要に応じてストレージサイズを変更してください。デフォルトでは、ストレージサイズは
10Giです。たとえば、約 200 のマネージドクラスターには20Giで十分な場合があります。
4 つの検索 Pod
(インデクサー、データベース、クエリー API、コレクター)のいずれかについて、Pod のメモリーまたは CPU 要件、レプリカ数、および更新ログレベルを調整することで、コストを最適化します。-
search-v2-operatorカスタムリソースのdeploymentセクションを更新します。search-v2-operatorによって管理されるデプロイメントは 4 つあり、それぞれ個別に更新できます。 -
インデクサー、データベース、クエリー API、またはコレクターPod にリソースを適用します。 -
envVarセクションに複数の環境変数を追加すると、名前を付けた各変数に値を指定できます。 -
envVar仕様に複数の環境変数を追加することで、名前を付けた各変数に値を指定します。 -
4 つの Pod のいずれかのログレベルの詳細度を制御するには、
queryapi仕様に-v=3引数を追加します。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: limits: cpu: 500m memory: 128Mi requests: cpu: 250m memory: 64Mi indexer: replicaCount: 3 database: envVar: - name: POSTGRESQL_EFFECTIVE_CACHE_SIZE value: 1024MB - name: POSTGRESQL_SHARED_BUFFERS value: 512MB - name: WORK_MEM value: 128MB queryapi: arguments: - -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-
関連情報
永続ストレージの設定方法については、OpenShift Container Platform ドキュメントの 永続ストレージの設定を 参照してください。