2.4. 策略控制器高级配置
您可以使用 ManagedClusterAddOn
自定义资源自定义受管集群上的策略控制器配置。以下 ManagedClusterAddOns
配置策略框架 governance-policy-framework
, config-policy-controller
, cert-policy-controller
, 和 iam-policy-controller
。
需要的访问权限:集群管理员
2.4.1. 配置并发
您可以为每个受管集群配置配置策略控制器的并发性,以更改它可以同时评估的配置策略。要更改默认值 2
,请在引号内设置 policy-evaluation-concurrency
注解,使用非零整数。您可以在 hub 集群的受管集群命名空间中名为 config-policy-controller
的 ManagedClusterAddOn
对象上设置值。
注: 高并发值会增加 config-policy-controller
pod、Kubernetes API 服务器和 OpenShift API 服务器上的 CPU 和内存利用率。
在以下 YAML 示例中,在名为 cluster1
的受管集群中,并发值被设为 5
:
apiVersion: addon.open-cluster-management.io/v1alpha1 kind: ManagedClusterAddOn metadata: name: config-policy-controller namespace: cluster1 annotations: policy-evaluation-concurrency: "5" spec: installNamespace: open-cluster-management-agent-addon
2.4.2. 配置调试日志
为每个策略控制器配置调试日志。要接收 Kubernetes 配置控制器的第二个调试信息级别,请将值为 2
的 log-level
注解添加到 ManagedClusterAddOn
自定义资源中。默认情况下,日志级别
被设置为 0
,这意味着您会收到信息性的消息。查看以下示例:
apiVersion: addon.open-cluster-management.io/v1alpha1 kind: ManagedClusterAddOn metadata: name: config-policy-controller namespace: cluster1 annotations: log-level: "2" spec: installNamespace: open-cluster-management-agent-addon
2.4.3. 监管指标
策略框架公开指标来显示策略分布和合规性。在 hub 集群中使用 policy_governance_info
指标来查看趋势并分析任何策略失败。有关指标概述,请参阅以下主题:
2.4.3.1. Metric: policy_governance_info
OpenShift Container Platform 监控会收集 policy_governance_info
,如果已启用,Red Hat Advanced Cluster Management observability 会收集一些聚合数据。
注 :如果启用了可观察性,您可以从 Grafana Explore 页面输入对指标的查询。
创建策略时,您要创建一个 root 策略。框架监视根策略以及 PlacementRules
和 PlacementBindings
,以确定在哪里创建 propagated 策略,以便将策略分发到受管集群。对于根和传播策略,如果策略合规,则指标会记录 0
,如果策略不合规,则记录 1
。
policy_governance_info
指标使用以下标签:
-
type
:标签值为root
或propagated
。 -
policy
:关联的根策略的名称。 -
policy_namespace
:定义根策略的 hub 集群上命名空间。 -
cluster_namespace
:分发策略的集群的命名空间。
这些标签和值启用查询来显示集群中可能发生的许多事情,这些情况可能很难跟踪。
注 :如果不需要指标数据,且对性能或安全性有任何顾虑,则可以禁用此功能。在传播器部署中,将 DISABLE_REPORT_METRICS
环境变量设置为 true
。您还可以将 policy_governance_info
指标添加到 observability allowlist 作为自定义指标。如需了解更多详细信息,请参阅 添加自定义指标。
2.4.3.2. Metric: 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, 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
命名空间中的受管集群上运行的 config-policy-controller
pod 会计算指标。config-policy-controller
默认不会将指标发送到可观察性。
2.4.4. 验证配置更改
当控制器应用新配置时,ManifestApplied
参数会在 ManagedClusterAddOn
中更新。该条件时间戳可用于正确验证配置。例如,这个命令可在 local-cluster
中的 cert-policy-controller
已更新时验证:
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
返回监管页面以了解更多主题。