2.4. ポリシーコントローラーの高度な設定
ManagedClusterAddOn カスタムリソースを使用して、マネージドクラスターのポリシーコントローラー設定をカスタマイズできます。次の ManagedClusterAddOns は、ポリシーフレームワーク、governance-policy-framework、config-policy-controller、cert-policy-controller、および iam-policy-controller を設定します。
必要なアクセス権限: クラスターの管理者
2.4.1. 同時実行の設定 リンクのコピーリンクがクリップボードにコピーされました!
マネージドクラスターごとに設定ポリシーコントローラーの並行処理性を設定して、同時に評価できる設定ポリシーの数を変更できます。デフォルト値の 2 を変更するには、引用符で囲まれたゼロ以外の整数で policy-evaluation-concurrency アノテーションを設定します。ハブクラスターのマネージドクラスター namespace にある config-policy-controller という名前の ManagedClusterAddOn オブジェクトに値を設定できます。
注記: 並行処理性の値を高くすると、config-policy-controller Pod、Kubernetes API サーバー、および OpenShift API サーバーでの CPU とメモリーの使用率が増加します。
次の YAML の例では、cluster1 というマネージドクラスターで並行処理性が 5 に設定されています。
2.4.2. デバッグログの設定 リンクのコピーリンクがクリップボードにコピーされました!
ポリシーコントローラーごとにデバッグログを設定します。Kubernetes 設定コントローラーの第 2 レベルのデバッグ情報を受け取るには、値が 2 の log-level アノテーションを ManagedClusterAddOn カスタムリソースに追加します。デフォルトでは、log-level は 0 に設定されています。つまり、情報メッセージを受信します。以下の例を参照してください。
2.4.3. ガバナンスメトリクス リンクのコピーリンクがクリップボードにコピーされました!
ポリシーフレームワークは、ポリシーディストリビューションとコンプライアンスを表示するメトリックを公開します。ハブクラスターで policy_governance_info メトリックを使用してトレンドを表示し、ポリシーの失敗を分析します。メトリックの概要は、次のトピックを参照してください。
2.4.3.1. メトリック: policy_governance_info リンクのコピーリンクがクリップボードにコピーされました!
policy_governance_info は OpenShift Container Platform モニタリングが、一部の集計データは Red Hat Advanced Cluster Management の可観測性が収集します (有効にされている場合)。
注記: 可観測性が有効になっている場合は、Grafana の Explore ページからメトリックのクエリーを入力できます。
ポリシーの作成時に、root ポリシーを作成します。フレームワークは、root ポリシーと PlacementRules および PlacementBindings を監視して、伝播 ポリシーを作成する場所を決定し、ポリシーをマネージドクラスターに分散します。ルートポリシーと伝播ポリシーにはいずれも、ポリシーが準拠している場合は 0 のメトリックが、コンプライアンス違反の場合は 1 が記録されます。
policy_governance_info メトリックは、以下のラベルを使用します。
-
type: ラベルの値はrootまたはpropagatedを使用できます。 -
policy: 関連付けられたルートポリシーの名前。 -
policy_namespace: ルートポリシーが定義されているハブクラスター上の namespace。 -
cluster_namespace: ポリシーの分散先のクラスターの namespace。
これらのラベルと値は、クラスターで発生している、追跡が困難なイベントを表示できるクエリーを有効にします。
注記: メトリックが必要ではなく、パフォーマンスやセキュリティーに関する懸念がある場合は、この機能を無効にすることができます。Propagator デプロイメントで DISABLE_REPORT_METRICS 環境変数を true に設定します。policy_governance_info メトリックを、可観測性の許可リストにカスタムメトリックとして追加することもできます。詳細は、カスタムメトリクスの追加 を参照してください。
2.4.3.2. メトリック: config_policies_evaluation_duration_seconds リンクのコピーリンクがクリップボードにコピーされました!
config_policies_evaluation_duration_seconds ヒストグラムは、クラスターで評価する準備ができているすべての設定ポリシーを処理するのにかかる秒数を追跡します。次のメトリックを使用して、ヒストグラムをクエリーします。
-
config_policies_evaluation_duration_seconds_bucket: バケットは累積的であり、可能なエントリー (1、3、9、10.5、15、30、60、90、120、180、300、450、600、およびそれ以上) で秒を表します。 -
config_policies_evaluation_duration_seconds_count: すべてのイベントの数。 -
config_policies_evaluation_duration_seconds_sum: すべての値の合計。
config_policies_evaluation_duration_seconds メトリックを使用して、頻繁に評価する必要がないリソース集約型ポリシーの ConfigurationPolicy evaluationInterval 設定を変更する必要があるかどうかを判断します。また、Kubernetes API サーバーでのリソース使用率が高くなる代わりに、同時実行数を増やすこともできます。詳細は、同時実行の設定 セクションを参照してください。
設定ポリシーの評価に使用された時間に関する情報を取得するには、次の式のような Prometheus クエリーを実行します。
rate(config_policies_evaluation_duration_seconds_sum[10m])/rate (config_policies_evaluation_duration_seconds_count[10m]
open-cluster-management-agent-addon namespace のマネージドクラスターで実行している config-policy-controller Pod がメトリックを計算します。デフォルトでは、config-policy-controller はメトリックを observability に送信しません。
2.4.4. 設定変更の確認 リンクのコピーリンクがクリップボードにコピーされました!
新しい設定がコントローラーによって適用されると、ManifestApplied パラメーターが ManagedClusterAddOn で更新されます。その状態のタイムスタンプを使用して、設定が正しく検証されます。たとえば、次のコマンドは、local-cluster の cert-policy-controller がいつ更新されたかを確認できます。
oc get -n local-cluster managedclusteraddon cert-policy-controller | grep -B4 'type: ManifestApplied'
oc get -n local-cluster managedclusteraddon cert-policy-controller | grep -B4 'type: ManifestApplied'
次の出力が表示される場合があります。
- lastTransitionTime: "2023-01-26T15:42:22Z"
message: manifests of addon are applied successfully
reason: AddonManifestApplied
status: "True"
type: ManifestApplied
- lastTransitionTime: "2023-01-26T15:42:22Z"
message: manifests of addon are applied successfully
reason: AddonManifestApplied
status: "True"
type: ManifestApplied
その他のトピックについては、ガバナンス ページに戻ります。