使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

使用政策控制器指标

本页面介绍了如何使用指标来监控政策控制器。

政策控制器包含与政策使用情况相关的多个指标。例如,有指标记录限制条件和限制条件模板的数量,以及检测到的审核违规次数。为了创建并记录这些指标,政策控制器会使用 OpenCensus。您可以配置政策控制器,以将这些指标导出到 PrometheusCloud Monitoring。导出指标的默认设置会将指标导出到 Prometheus 和 Cloud Monitoring。

配置指标导出

在 Anthos Config Management 1.12.0 版及更高版本中,您可以配置政策控制器导出其指标的方式。您可以在安装政策控制器时,选择 Prometheus 和/或 Cloud Monitoring,也可以两者都不选。默认情况下,政策控制器会尝试将指标同时导出到 Prometheus 和 Cloud Monitoring。

在 Anthos Config Management 1.12.0 之前的版本中,政策控制器仅将指标导出到 Prometheus。

将指标导出到 Cloud Monitoring

如果政策控制器是在具有默认服务帐号的 Google Cloud 环境中运行,那么对于 Anthos Config Management 1.12.0 版及更高版本,政策控制器会自动将指标导出到 Cloud Monitoring。

如果启用了 GKE Workload Identity舰队 Workload Identity,请完成以下步骤:

  1. 将命名空间 gatekeeper-system 中的 Kubernetes 服务帐号 gatekeeper-admin 绑定到具有 Metric Writer 角色的 Google 服务帐号:

    gcloud iam service-accounts add-iam-policy-binding \
        --role roles/iam.workloadIdentityUser \
        --member "serviceAccount:PROJECT_ID.svc.id.goog[gatekeeper-system/gatekeeper-admin]" \
        GSA_NAME@PROJECT_ID.iam.gserviceaccount.com
    

    替换以下内容:

    • PROJECT_ID:您的项目 ID。
    • GSA_NAME:具有 Monitoring Metric Writer (roles/monitoring.metricWriter) IAM 角色的 Google 服务帐号。

    此操作需要项目的 iam.serviceAccounts.setIamPolicy 权限。

  2. 使用 Google 服务帐号的电子邮件地址为 Kubernetes 服务帐号添加注解:

    kubectl annotate serviceaccount \
        --namespace gatekeeper-system \
        gatekeeper-admin \
        iam.gke.io/gcp-service-account=GSA_NAME@PROJECT_ID.iam.gserviceaccount.com
    
  3. 重启 gatekeeper-controller-manager Pod:

    kubectl rollout restart deployment gatekeeper-controller-manager -n gatekeeper-system
    

如需查看有关如何查看这些指标的示例,请参阅读取 Cloud Monitoring 中的 OpenCensus 指标

将指标导出到 Prometheus

政策控制器默认通过端口 8675 将指标导出到 Prometheus。您还可以配置 Cloud Monitoring 以从 Prometheus 中拉取自定义指标。如需了解详情,请参阅代管式 Prometheus

查看指标

政策控制器指标以 Prometheus 格式导出到 Cloud Monitoring 项目。因此,您可以使用 Cloud Monitoring API 和 Google Cloud 控制台中的信息中心查询指标。您可以修改此信息中心以满足您的业务和运营需求。

要查询 Cloud Monitoring API,请使用 Prometheus 查询语言 (PromQL)(Kubernetes 指标的实际查询语言)或监控查询语言 (MQL)(Google 的专有指标查询语言)。

要创建政策控制器信息中心,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到信息中心页面。

    转到“信息中心”

  2. 信息中心概览页面上,点击示例库标签页。此标签页会显示您可以导入的所有信息中心。

  3. 类别列中,选择 Anthos Config Management

  4. Anthos Config Management 示例表中,选中政策控制器复选框。

  5. 点击 导入

  6. 要创建信息中心,请点击确认窗口中的确认

要查看和修改政策控制器信息中心,请执行以下操作:

  1. 信息中心概览页面上,选择信息中心列表标签页。
  2. 选择政策控制器信息中心。
  3. 如需自定义信息中心,请点击修改信息中心
  4. 进行所需更改,然后点击保存。如需详细了解如何自定义信息中心,请参阅 Cloud Monitoring 文档中的过滤信息中心

创建提醒

要在指标满足特定阈值时收到通知,请在 Cloud Monitoring 中创建提醒政策

第三方集成

使用 Cloud Monitoring API,任何第三方可观测性工具都可以注入政策控制器指标。

例如,如果您使用的是 Grafana 信息中心,请添加 Cloud Monitoring API 作为 Grafana 中的数据源。如需了解详情,请参阅 Grafana 文档中的 Google Cloud Monitoring

可用指标

如果在集群上启用了政策控制器,则可以查询以下指标(前缀均为 OpenCensus/):

名称 类型 标签 说明
OpenCensus/audit_duration_seconds 累计 审核周期持续时间分布
OpenCensus/audit_last_run_time 仪表盘 自上次审核运行时以来的 Epoch 时间戳,以秒为单位,以浮点数表示
OpenCensus/constraint_template_ingestion_count 累计 状态 限制条件模板提取操作的总数
OpenCensus/constraint_template_ingestion_duration_seconds 累计 状态 限制条件模板提取持续时间分布
OpenCensus/constraint_templates 仪表盘 status 当前限制条件模板数量
OpenCensus/validation_request_count 计数器 admission_status 来自 API 服务器的准入请求计数
OpenCensus/validation_request_duration_seconds 累计 admission_status 准入请求持续时间分布
OpenCensus/violations 仪表盘 enforcement_action 在上一个审核周期中检测到的审核违规次数
OpenCensus/watch_manager_intended_watch_gvk 仪表盘 打算监控多少个唯一的 GroupVersionKinds 政策控制器。此指标是同步资源和限制条件的结合。目前尚未实现。
OpenCensus/watch_manager_watched_gvk 仪表盘 实际上正在监控多少个唯一的 GroupVersionKinds 政策控制器。此指标意味着收敛于 OpenCensus/watch_manager_intended_watch_gvk。目前尚未实现。

后续步骤