创建提醒政策

10

本页面介绍如何为 Anthos clusters on VMware (GKE On-Prem) 创建提醒政策。

准备工作

您必须拥有以下权限才能创建提醒政策:

  • monitoring.alertPolicies.create
  • monitoring.alertPolicies.delete
  • monitoring.alertPolicies.update

如果您具有以下任何角色,则表示具备这些权限:

  • monitoring.alertPolicyEditor
  • monitoring.editor
  • Project Editor
  • 项目所有者

如需查看您的角色,请转到 Google Cloud Console 中的 IAM 页面

创建政策:管理员集群 API 服务器不可用

在本练习中,您将为管理员集群的 Kubernetes API 服务器创建提醒政策。实施此政策后,您可以安排在管理员集群的 API 服务器不可用时接收通知。

  1. 下载政策配置文件:admin-cluster-apiserver-unavailable.json

  2. 创建政策:

    gcloud alpha monitoring policies create --policy-from-file=POLICY_CONFIG
    

    POLICY_CONFIG 替换为您刚刚下载的配置文件的路径。

  3. 查看您的提醒政策:

    控制台

    1. 在 Google Cloud Console 中,转到 Monitoring 页面。

      转到“监控”

    2. 选择左侧的提醒

    3. 政策下方,您可以看到提醒政策的列表。

      在列表中,选择 GKE On-Prem 管理员集群 API 服务器不可用(严重)以查看关于新政策的详细信息。在条件下,您可以查看政策的说明。例如:

      Policy violates when ANY condition is met
      
      GKE on-prem admin cluster API server uptime is absent
      
      GKE on-prem admin cluster API server uptime is less than 99.99% per minute
      

    gcloud

    gcloud alpha monitoring policies list

    输出会显示有关政策的详细信息。例如:

    combiner: OR
    conditions:
    - conditionAbsent:
        aggregations:
        - alignmentPeriod: 60s
          crossSeriesReducer: REDUCE_MEAN
          groupByFields:
          - resource.label.project_id
          - resource.label.location
          - resource.label.cluster_name
          - resource.label.namespace_name
          - resource.label.container_name
          perSeriesAligner: ALIGN_MAX
        duration: 300s
        filter: resource.type = "k8s_container" AND resource.labels.namespace_name = "kube-system"
          AND metric.type = "kubernetes.io/anthos/container/uptime" AND resource.label."container_name"=monitoring.regex.full_match("kube-apiserver")
        trigger:
          count: 1
      displayName: GKE on-prem admin cluster API server uptime is absent
      name: projects/…/alertPolicies/17065318077071152828/conditions/17065318077071154437
    - conditionThreshold:
        aggregations:
        - alignmentPeriod: 120s
          crossSeriesReducer: REDUCE_MEAN
          groupByFields:
          - resource.label.project_id
          - resource.label.location
          - resource.label.cluster_name
          - resource.label.namespace_name
          - resource.label.container_name
          perSeriesAligner: ALIGN_MAX
        comparison: COMPARISON_LT
        duration: 300s
        filter: resource.type = "k8s_container" AND resource.labels.namespace_name = "kube-system"
          AND metric.type = "kubernetes.io/anthos/container/uptime" AND resource.label."container_name"=monitoring.regex.full_match("kube-apiserver")
        thresholdValue: 119.0
        trigger:
          count: 1
      displayName: GKE on-prem admin cluster API server uptime is less than 99.99% per
        minute
      name: projects/…/alertPolicies/17065318077071152828/conditions/17065318077071151950
    creationRecord:
      mutateTime: 
      mutatedBy: 
    displayName: GKE on-prem admin cluster API server unavailable (critical)
    enabled: true
    mutationRecord:
      mutateTime: 
      mutatedBy: 
    name: projects/xxxxxx/alertPolicies/17065318077071152828
    

创建其他提醒政策

本部分针对一组建议的提醒政策提供了说明和配置文件。

要创建政策,请按照您在之前的练习中所用的步骤操作:

  1. 点击右列中的链接以下载配置文件。

  2. 运行 gcloud alpha monitoring policies create 以创建政策。

管理员集群控制层面组件可用性

提醒名称 说明 Cloud Monitoring 中的提醒政策定义
GKE On-Prem 管理员集群 API 服务器不可用(严重) 管理员集群 API 服务器未启动或者正常运行时间低于每分钟 99.99% admin-cluster-apiserver-unavailable.json
GKE On-Prem 管理员集群调度器不可用(严重) 管理员集群调度器未启动或者正常运行时间低于每分钟 99.99% admin-cluster-scheduler-unavailable.json
GKE On-Prem 管理员集群控制器管理器不可用(严重) 管理员集群控制器管理器未启动或者正常运行时间低于每分钟 99.99% admin-cluster-controller-manager-unavailable.json
GKE On-Prem 管理员集群 etcd 不可用(严重) 管理员集群 etcd 未启动或者正常运行时间低于每分钟 99.99% admin-cluster-etcd-unavailable.json

用户集群控制层面组件可用性

用户集群控制层面提醒以指标为基础。对于大多数集群指标而言,cluster_name 字段是集群本身的名称。但对于用户集群控制层面指标而言,cluster_name 字段是管理员集群的名称,而 namespace_name 字段是用户集群的名称。

您可以在创建控制层面正常运行时间信息中心下的屏幕截图中看到相关信息。

提醒名称 说明 Cloud Monitoring 中的提醒政策定义
GKE On-Prem 用户集群 API 服务器不可用(严重) 用户集群 API 服务器未启动或者正常运行时间低于每分钟 99.99% user-cluster-apiserver-unavailable.json
GKE On-Prem 用户集群调度器不可用(严重) 用户集群调度器未启动或者正常运行时间低于每分钟 99.99% user-cluster-scheduler-unavailable.json
GKE On-Prem 用户集群控制器管理器不可用(严重) 用户集群控制器管理器未启动或者正常运行时间低于每分钟 99.99% user-cluster-controller-manager-unavailable.json
GKE On-Prem 用户集群 etcd 不可用(严重) 用户集群 etcd 未启动或者正常运行时间低于每分钟 99.99% user-cluster-etcd-unavailable.json

Kubernetes 系统

提醒名称 说明 Cloud Monitoring 中的提醒政策定义
GKE On-Prem Pod 发生崩溃循环(严重) Pod 处于崩溃循环状态 pod-crash-looping.json
GKE On-Prem Pod 尚未就绪超过一小时(严重) Pod 处于尚未就绪状态超过一小时 pod-not-ready-1h.json
GKE On-Prem 永久性卷用量高(严重) 声明的永久性卷预计会填满 persistent-volume-usage-high.json
GKE On-Prem 节点尚未就绪超过一小时(严重) 节点处于尚未就绪状态超过一小时 node-not-ready-1h.json

Kubernetes 性能

提醒名称 说明 Cloud Monitoring 中的提醒政策定义
GKE On-Prem 管理员集群 API 服务器错误计数率超过 10%(严重) 管理员集群 API 服务器中有超过 10% 的请求返回错误 admin-cluster-apiserver-error-ratio-10-percent.json
GKE On-Prem 管理员集群 API 服务器错误计数率超过 5%(警告) 管理员集群 API 服务器中有超过 5% 的请求返回错误 admin-cluster-apiserver-error-ratio-5-percent.json
GKE On-Prem 用户集群 API 服务器错误计数率超过 10%(严重) 用户集群 API 服务器中有超过 10% 的请求返回错误 user-cluster-apiserver-error-ratio-10-percent.json
GKE On-Prem 用户集群 API 服务器错误计数率超过 5%(警告) 用户集群 API 服务器中有超过 5% 的请求返回错误 user-cluster-apiserver-error-ratio-5-percent.json

接收通知

创建提醒政策后,您可以为该政策定义一个或多个通知渠道。通知渠道有多种类型。例如,您可能会收到电子邮件、Slack 频道或移动应用发出的通知。您可以选择符合您需求的渠道。

如需了解如何配置通知渠道,请参阅管理通知渠道