検索
Red Hat Advanced Cluster Management Search サービスが、すべてのクラスターにわたる Kubernetes リソースの可視性をどのように提供するかを説明します。
概要
第1章 検索 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Advanced Cluster Management Search サービスを学習します。検索を使用して、クラスターからリソースデータをクエリーします。以下のドキュメントを参照してください。
1.1. 検索サービス リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Advanced Cluster Management for Kubernetes では、検索機能でクラスター全体の Kubernetes リソースを視認できるようにします。検索では、Kubernetes リソースや他のリソースとの関係もインデックス化されます。
1.1.1. 検索コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
検索アーキテクチャーは、以下のコンポーネントで構成されています。
コンポーネント名 | メトリクス | メトリックのタイプ | 説明 |
---|---|---|---|
|
Kubernetes リソースを監視し、リソースメタデータを収集し、すべてのマネージドクラスターにわたるリソースの関係を計算し、収集したデータを | ||
コレクターからリソースのメタデータを受信し、PostgreSQL データベースに書き込みます。 |
| ヒストグラム | 検索インデクサーが (マネージドクラスターからの) 要求を処理するのにかかる時間 (秒)。 |
| ヒストグラム | (マネージドクラスターからの) 検索インデクサー要求における変更の合計 (追加、更新、削除)。 | |
| カウンター | 検索インデクサーが (マネージドクラスターから) 受信したリクエストの合計。 | |
| ゲージ | 検索インデクサーが指定された時間で処理する要求の合計数。 | |
GraphQL を介して |
| ヒストグラム | HTTP 要求の継続時間のヒストグラム (秒単位)。 |
| ヒストグラム | データベース要求のレイテンシー (秒単位)。 | |
| カウンター | 失敗したデータベース接続試行の合計数。 | |
| すべてのマネージドクラスターから収集されたデータを PostgreSQL データベースのインスタンスに保存します。 |
デフォルトでは、検索はハブクラスターで設定されます。マネージドクラスターをプロビジョニングするか、手動でインポートすると、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
検索オペレーターは、search-v2-operator
カスタムリソースを監視し、変更を調整して、アクティブな Pod を更新します。次の設定の説明を参照してください。
PostgreSQL データベースストレージ:
Red Hat Advanced Cluster Management をインストールすると、PostgreSQL データベースは、PostgreSQL データを空のディレクトリー (
emptyDir
) ボリュームに保存するように設定されます。空のディレクトリーサイズが制限されている場合は、PostgreSQL データを永続ボリューム要求 (PVC) に保存して、検索パフォーマンスを向上させることができます。Red Hat Advanced Cluster Management ハブクラスターからストレージクラスを選択して、検索データをバックアップできます。たとえば、gp2
ストレージクラスを選択した場合、設定は次の例のようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow この設定により、
gp2-search
という名前の PVC が作成され、search-postgres
Pod にマウントされます。デフォルトでは、ストレージサイズは10Gi
です。ストレージサイズを変更できます。たとえば、約 200 のマネージドクラスターには20Gi
で十分な場合があります。4 つの検索 Pod (
indexer
、database
、queryapi
、collector
) の Pod メモリーまたは CPU 要件、レプリカ数、更新ログレベルを調整することでコストを最適化します。search-v2-operator
カスタムリソースのdeployment
セクションを更新します。search-v2-operator
によって管理される 4 つのデプロイメントがあり、個別に更新できます。search-v2-operator
カスタムリソースは、次のファイルのようになる場合があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下は、メモリーリソースがインデクサー Pod に適用される例です。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 検索 Pod のノード配置を定義できます。
nodeSelector
パラメーターまたはtolerations
パラメーターを使用して、検索 Pod のPlacement
リソースを更新できます。次の設定例を表示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Advanced search ドロップダウンボタンを選択して検索クエリーを指定し、Column、Operator、Value オプションをフィルタリングするか、検索制約を追加します。
1.1.3. 検索操作とデータ型 リンクのコピーリンクがクリップボードにコピーされました!
検索操作を条件として使用して検索クエリーを指定します。>, >=, <, <=, !=
などの文字がサポートされます。以下の検索操作の表を参照してください。
デフォルトの動作 | データのタイプ | 説明 |
---|---|---|
| string, number | これがデフォルトの動作です。 |
| string, number | これは、NOT 操作を表します。これは、検索結果から除外することを意味します。 |
| number | |
| date | 過去時間、日、週、月、および年に一致する日付。 |
| string | 部分文字列の一致。 |
1.1.4. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- Red Hat Advanced Cluster Management for Kubernetes コンソールに関するその他のトピックは、Web コンソール を参照してください。
1.2. 検索設定可能コレクションの作成 リンクのコピーリンクがクリップボードにコピーされました!
検索が収集するリソースをカスタマイズする各マネージドクラスターに対して search-collector-config
config map を作成し、クラスターから収集される Kubernetes リソースを定義します。
必要なアクセス権: クラスター管理者
検索アドオンがデプロイされているのと同じ namespace に config map を配置します。デフォルトの namespace は open-cluster-management-agent-addon
です。
以下の手順を実行します。
次のコマンドを実行して、
search-collector-config
config map を作成します。oc apply -f <your-search-collector-config>.yaml
oc apply -f <your-search-collector-config>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow config map 内の許可 (
data.AllowedResources
) セクションと拒否リスト (data.DeniedResources
) セクションにリソースをリストします。config map は、次の YAML ファイルのようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記: config map を指定しない場合、デフォルトですべてのリソースが収集されます。
AllowedResources
のみを指定した場合、AllowedResources
にリストされていないすべてのリソースは自動的に除外されます。AllowedResources
とDeniedResources
に同時にリストされているリソースも除外されます。
1.2.1. サーチコンソールのカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
検索結果と制限をカスタマイズします。カスタマイズを実行するには、次のタスクを完了します。
OpenShift Container Platform コンソールから検索結果の制限をカスタマイズします。
multicluster-engine
namespace のconsole-mce-config
を更新します。これらの設定はすべてのユーザーに適用され、パフォーマンスに影響を与える可能性があります。次のパフォーマンスパラメーターの説明を表示します。-
SAVED_SEARCH_LIMIT
- 各ユーザーの保存済み検索の最大数。デフォルトでは、ユーザーごとに 10 個の保存済み検索の制限があります。デフォルト値は10
です。制限を更新するには、console-config
config map にキー値SAVED_SEARCH_LIMIT: x
を追加します。 -
SEARCH_RESULT_LIMIT
: コンソールに表示される検索結果の最大量。デフォルト値は1000
です。この制限を削除するには、-1
に設定します。 -
SEARCH_AUTOCOMPLETE_LIMIT
: 検索バーの先行入力に対して取得される候補の最大数。デフォルト値は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
という名前の config map を作成し、suggestedSearches
セクションを設定します。リストされている検索候補もコンソールから表示されます。各検索オブジェクトには、id, name, and searchText
が必要です。次の config map の例を確認してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 検索が有効になっている namespace を追加します。
1.2.2. コンソールでのクエリー リンクのコピーリンクがクリップボードにコピーされました!
検索ボックス にテキスト値を入力すると、名前や namespace などのプロパティーからのその値が含まれる結果が表示されます。空白を含むクエリーはサポートされていません。
必要なアクセス権: クラスター管理者
検索結果をさらに絞り込むには、検索にプロパティーセレクターを追加します。プロパティーに関連する値を組み合わせて、検索範囲をより正確に指定できます。たとえば、cluster:dev red
と検索すると、dev
クラスター内で "red" の文字列と一致する結果が返されます。
検索でクエリーを作成するには、次の手順を実行します。
- ナビゲーションメニューの 検索 をクリックします。
Search box に単語を入力すると、検索機能で、対象の値が含まれたリソースを見つけ出します。
- リソースを検索すると、元の検索結果に関連する他のリソースが表示されるので、リソースがシステム内にある他のリソースとどのように対話するのかを視覚的に確認できます。
- 検索すると、各クラスターと、検索したリソースが返され、リスト表示されます。ハブ クラスターのリソースの場合には、クラスター名は local-cluster として表示されます。
-
検索結果は、
kind
でグループ化され、リソースのkind
ごとに表でグループ化されます。 - 検索オプションはクラスターオブジェクトにより異なります。
-
特定のラベルで結果を絞り込むことができます。ラベルのクエリー時の検索は、大文字と小文字が区別されます。フィルタリング用に選択できる例
name
、namespace
、status
、およびその他のリソースフィールドを参照してください。自動補完では、補完候補を表示して検索を絞り込むことができます。以下の例を参照してください。 -
kind:pod
など、フィールド 1 つを検索すると、すべての Pod リソースが返されます。 kind:pod namespace:default
など、複数のフィールドを検索すると、デフォルトの namespace にある 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
を検索すると、最低でも 2 回再起動した全 Pod が返されます。
- 検索を保存する場合は、Save search アイコンをクリックします。
- 検索結果をダウンロードするには、Export as CSV ボタンを選択します。
1.3. klusterlet-addon-search デプロイメントの更新 リンクのコピーリンクがクリップボードにコピーされました!
マネージドクラスターから Kubernetes オブジェクトを収集するために、検索が有効になっているすべてのマネージドクラスターで klusterlet-addon-search
Pod が実行されます。このデプロイメントは、open-cluster-management-agent-addon
namespace で実行されます。多数のリソースを持つマネージドクラスターでは、klusterlet-addon-search
デプロイメントが機能するために、より多くのメモリーが必要になる場合があります。
必要なアクセス権: クラスター管理者
マネージドクラスター内の klusterlet-addon-search
Pod のリソース要件は、Red Hat Advanced Cluster Management ハブクラスター内の ManagedClusterAddon
カスタムリソースで指定できます。マネージドクラスターごとに、マネージドクラスター名を持つ namespace があります。以下の手順を実行します。
マネージドクラスター名と一致する namespace から
ManagedClusterAddon
カスタムリソースを編集します。次のコマンドを実行して、xyz
マネージドクラスターのリソース要件を更新します。oc edit managedclusteraddon search-collector -n xyz
oc edit managedclusteraddon search-collector -n xyz
Copy 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: 512Mi
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
アノテーションはマネージドクラスターのリソース要件をオーバーライドし、新しいリソース要件で Pod を自動的に再起動します。
注記: コンソールで API Explorer を使用して、マネージドクラスターに定義されているすべてのリソースを検出できます。oc api-resources
コマンドを実行しても、すべてのリソースを検出できます。