查看ACK集群Pro版的控制面组件监控大盘

本文介绍如何查看ACK集群Pro版的控制面组件监控大盘及组件访问的最佳实践。

前提条件

  • 控制面组件监控功能仅适用于ACK集群Pro版,且集群版本不低于1.16。

  • 已开通ARMS。具体操作,请参见开通ARMS

  • 已安装ack-arms-prometheus组件。具体操作,请参见管理组件

查看控制面组件监控大盘

  1. 登录容器服务管理控制台,在左侧导航栏选择集群

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择运维管理 > Prometheus 监控

  3. Prometheus监控页面中,单击核心组件监控

    ps

    在该页签下可查看ACK Pro API serverACK Pro ETCDACK Pro SchedulerACK Pro Cloud Controller ManagerACK Pro Kube Controller Manager监控大盘。

    说明

    如果需要升级最新的专业Prometheus监控大盘,请在ACK组件管理中升级ack-arms-prometheus组件版本至最新。具体操作,请参见管理组件

控制面组件访问最佳实践

您在访问集群控制面组件时,建议遵循以下最佳实践原则,尤其在大规模集群(节点规模大于100,Kubernetes资源量较大)的场景下,可以提升集群整体稳定性。

  • 尽量使用Informer、Lister方式从API Server读取数据,对API Server和etcd综合压力较小。

  • 如果必须要使用全量LIST,建议请求增加resourceVersion=0,从APIServer Cache中读取数据,避免一次请求访问全量击穿到etcd。如果确实需要从etcd读取数据,需要基于Limit使用分页访问。

  • API序列化协议使用Protobuf,相比于JSON更节省内存和传输流量。更多信息,请参见Alternate representations of resources。代码样例如下:

    kubeConfig, err := clientcmd.BuildConfigFromFlags(s.Master, s.Kubeconfig)
    if err != nil {
        return nil, err
    }
    kubeConfig.AcceptContentTypes = strings.Join([]string{runtime.ContentTypeProtobuf, runtime.ContentTypeJSON}, ",")
    kubeConfig.ContentType = runtime.ContentTypeProtobuf
    client, err := clientset.NewForConfig(restclient.AddUserAgent(kubeConfig, "content-type-example"))
    ...
  • 及时清理不使用的Kubernetes资源,例如ConfigMap、Secret和PVC等。避免出现超过1000的Pending Pod,因为大量Pending Pod会对kube-apsierver、kube-controller-manager和kube-scheduler持续产生压力。

  • 注意关注控制面组件使用情况,尤其是CPU和内存利用率指标,避免持续高水位导致组件OOM等异常。如果出现持续高水位,建议通过清理无效资源、优化客户端行为、拆分集群业务等措施,保证集群处于合理水位。

  • 部分开源组件对控制面压力较大,官方输出了相应的优化治理方案,建议关注并应用到实践。以Argo workflow为例,官方推出的Kube API过量访问的优化方案建议使用Argo时,需开启相关配置。更多信息,请参见Running At Massive Scale

相关文档

控制面组件

监控大盘

描述

参考文档

kube-apiserver

ACK Pro APIServer

介绍kube-apiserver组件的指标清单、对应大盘的使用指导以及常见指标异常的问题解析。

kube-apiserver组件监控

cloud-controller-manager

ACK Pro Cloud Controller Manager

介绍cloud-controller-mananger组件的指标清单、对应大盘的使用指导以及常见指标异常的问题解析。

cloud-controller-mananger组件监控

etcd

ACK Pro ETCD

介绍etcd组件的指标清单、对应大盘的使用指导以及常见指标异常的问题解析。

etcd组件监控

kube-controller-manager

ACK Pro Kube Controller Manager

介绍kube-controller-manager组件的指标清单和对应大盘的使用指导。

kube-controller-manager组件监控

kube-scheduler

ACK Pro Scheduler

介绍kube-scheduler组件的指标清单、对应大盘的使用指导以及常见指标异常的问题解析。

kube-scheduler组件监控

自定义Prometheus监控和告警

自定义大盘名称

介绍如何基于用户自建的Prometheus,采集ACK Pro集群的控制面组件监控API Server、etcd、Scheduler、KCM、CCM指标配置说明以及推荐的报警配置。

用户自建Prometheus对控制平面组件的监控和告警