全部產品
Search
文件中心

Container Service for Kubernetes:查看ACK叢集Pro版的控制面組件監控大盤

更新時間:Jun 19, 2024

本文介紹如何查看ACK叢集Pro版的控制面組件監控大盤及組件訪問的最佳實務。

前提條件

  • 控制面組件監控功能僅適用於ACK叢集Pro版,且叢集版本不低於1.16。

  • 已開通ARMS。具體操作,請參見開通ARMS

  • 已安裝ack-arms-prometheus組件。具體操作,請參見管理組件

查看控制面組件監控大盤

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集

  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對控制平面組件的監控和警示