1.3. コンソールでの検索
Red Hat Advanced Cluster Management for Kubernetes では、検索機能でクラスター全体の Kubernetes リソースを視認できるようにします。検索すると、Kubernetes リソースや関係を他のリソースにインデックス化します。ストレージクラスとストレージサイズを変更する場合は、searchcustomization
カスタムリソースを作成して、検索永続性のストレージ設定を定義できます。
1.3.1. 検索コンポーネント
検索アーキテクチャーは、以下のコンポーネントで設定されています。
-
collector: Kubernetes リソースを監視し、インデックスを作成します。
search-collector
は、マネージドクラスター内のリソースの関係を計算します。 -
aggregator: コレクターからデータを受け取り、データベースに書き込みます。
search-aggregator
は、ハブクラスターのリソースを監視し、マルチクラスターの関係を計算して、接続されたコレクターからのアクティビティーを追跡します。 - Search API: 検索インデックスでデータにアクセスできるようにして、ロールベースのアクセス制御を有効にします。
検索はデフォルトで有効となっています。また、マネージドクラスターのプロビジョニングまたは手動でのインポート時にも検索が有効です。マネージドクラスターの検索を無効にする場合は、クラスターの klusterlet アドオン設定の変更 を参照してください。
1.3.2. 検索カスタマイズ
Red Hat Advanced Cluster Management をインストールすると、インメモリーデータをファイルシステムに永続化するように製品が設定されます。StatefulSet search-redisgraph
は Redisgraph Pod をデプロイし、これは persist
という名前の永続ボリュームをマウントします。クラスターにデフォルトのストレージクラスが定義されている場合、検索コンポーネントはデフォルトのストレージクラスに 10Gi の Persistent Volume Claims (PVC) を作成します。デフォルトのストレージクラスがクラスターに存在しない場合は、検索によりインデックスが空のディレクトリー (emptyDir
) に保存されます。
searchcustomization
カスタムリソースを作成することで、検索のストレージ設定をカスタマイズできます。検索カスタマイズは namespace にスコープ指定され、検索がハブクラスターにインストールされている場所にあります。次の検索カスタマイズのカスタムリソースの例をご覧ください。
apiVersion: search.open-cluster-management.io/v1alpha1 kind: SearchCustomization metadata: name: searchcustomization namespace: open-cluster-management labels: cluster.open-cluster-management.io/backup: "" spec: persistence: true storageClass: gp2 storageSize: 12Gi
次のコマンドを実行して、検索カスタマイズのカスタムリソース定義を表示します。
oc get crd searchcustomizations.search.open-cluster-management.io -o yaml
カスタマイズカスタムリソースで persistence
フラグを false
に更新することで、永続性を無効にすることができます。これにより、ファイルシステムへの検索インデックスの保存がオフになります。永続性のステータスは、検索演算子 (searchoperator
) カスタムリソースから取得できます。コマンド oc get searchoperator searchoperator -o yaml
を実行して、検索演算子のカスタムリソースを表示します。
1.3.2.1. 再ディスグラフメモリーを増やすためのオプション
再ディスグラフは、オブジェクトの数がキャッシュされるにつれてメモリーを直線的に増やす必要があるインメモリーデータベースです。多くのマネージドクラスターまたは多数の Kubernetes オブジェクトを含む Red Hat Advanced Cluster Management クラスターでは、redisgraph Pod のメモリー更新を制限する必要があります ( search-redisgraph-0
)。
デフォルトでは redisgraph Pod (search-redisgraph-0
) は、メモリーの上限が 4Gi
としてデプロイされます。サイズの大きいクラスターを管理する場合には、ハブクラスターの namespace で searchoperator
の redisgraph_resource.limit_memory
を編集して、この上限を増やす必要があります。たとえば、次のコマンドを使用して上限を 8Gi
に更新できます。
oc patch searchoperator searchoperator --type='merge' -p '{"spec":{"redisgraph_resource":{"limit_memory":"8Gi"}}}'
変更が行われると、search-redisgraph
Pod は更新された設定で自動的に再起動します。
1.3.2.2. 保存済み検索制限の更新
デフォルトでは、ユーザーごとに 10 個の保存済み検索の制限があります。administrator
ロールを持つユーザーのみが、キー値 key:value: SAVED_SEARCH_LIMIT: x
を console-config
ConfigMap に追加して制限を更新できます。
1.3.3. コンソールでのクエリー
検索ボックス にテキスト値を入力すると、名前や namespace などのプロパティーからのその値が含まれる結果が表示されます。空白のスペースを含む値の検索はできません。
検索結果をさらに絞り込むには、検索にプロパティーセレクターを追加します。プロパティーに関連する値を組み合わせて、検索範囲をより正確に指定できます。たとえば、cluster:dev red
と検索すると、dev
クラスター内で "red" の文字列と一致する結果が返されます。
以下の手順に従って、検索でクエリーを実行します。
- ナビゲーションメニューの 検索 をクリックします。
Search box に単語を入力すると、検索機能で、対象の値が含まれたリソースを見つけ出します。
- リソースを検索すると、元の検索結果に関連する他のリソースが表示されるので、リソースがシステム内にある他のリソースとどのように対話するのかを視覚的に確認できます。
- 検索すると、各クラスターと、検索したリソースが返され、一覧表示されます。ハブ クラスターのリソースの場合には、クラスター名は local-cluster として表示されます。
-
検索結果は、
kind
でグループ化され、リソースのkind
ごとに表でグループ化されます。 - 検索オプションはクラスターオブジェクトにより異なります。特定のラベルで結果を絞り込むことができます。ラベルのクエリー時の検索は、大文字と小文字が区別されます。以下の名前、namespace、ステータス、その他のリソースフィールドの例を参照してください。自動補完では、補完候補を表示して検索を絞り込むことができます。以下の例を参照してください。
-
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 が返されます。
-
-
デフォルトでは、検索ドロップダウンメニューには 2500 イメージという制限があります。イメージ制限を引き上げるには、
defaultImageQueryLimit
環境変数を追加してsearch-api
デプロイメントを編集します。検索を使用してデプロイメントを検索できます。以下の例を参照してください。name: defaultImageQueryLimit value: x 1
- 1
X
は、検索ドロップダウンメニューから表示するイメージの数を表します。または、以下のコマンドを使用してデプロイメントにパッチを適用できます。
oc patch deployment search-api -n open-cluster-management -p '{"spec": {"template": {"spec": {"containers": [{"name": "search-api","env": [{"name": "defaultImageQueryLimit","value": "X"}]}]}}}}'
- 検索を保存する場合は、Save search アイコンをクリックします。
1.3.3.1. ArgoCD アプリケーションのクエリー
ArgoCD アプリケーションを検索すると、Applications ページに移動します。Search ページから ArgoCD アプリケーションにアクセスするには、以下の手順を実行します。
- Red Hat Advanced Cluster Management ハブクラスターにログインします。
- コンソールヘッダーから Search アイコンを選択します。
-
kind:application
およびapigroup:argoproj.io
の値でクエリーをフィルターします。 - 表示するアプリケーションを選択します。アプリケーション ページでは、アプリケーションに関する情報の概要が表示されます。
1.3.4. マネージドクラスターでの 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
リソース要件をアノテーションとして追加します。以下の例を参照してください。
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
アノテーションはマネージドクラスターのリソース要件をオーバーライドし、新しいリソース要件で Pod を自動的に再起動します。
Red Hat Advanced Cluster Management for Kubernetes コンソールの詳細は、Web console を参照してください。