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-controllerManagedClusterAddOn 对象上设置值。

注: 高并发值会增加 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 配置控制器的第二个调试信息级别,请将值为 2log-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 策略。框架监视根策略以及 PlacementRulesPlacementBindings,以确定在哪里创建 propagated 策略,以便将策略分发到受管集群。对于根和传播策略,如果策略合规,则指标会记录 0,如果策略不合规,则记录 1

policy_governance_info 指标使用以下标签:

  • type :标签值为 rootpropagated
  • 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

返回监管页面以了解更多主题。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.