本文介紹如何查看ACK託管叢集Pro版的控制面組件監控大盤及組件訪問的最佳實務。
前提條件
查看控制面組件監控大盤
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
-
在Prometheus 監控頁面中,單擊核心組件監控。
在該頁簽下可查看ACK Pro API server、ACK Pro ETCD、ACK Pro Scheduler、ACK Pro Cloud Controller Manager和ACK 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。 -
及時清理不使用的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組件的指標清單、對應大盤的使用指導以及常見指標異常的問題解析。 |
|
|
cloud-controller-manager |
ACK Pro Cloud Controller Manager |
介紹cloud-controller-mananger組件的指標清單、對應大盤的使用指導以及常見指標異常的問題解析。 |
|
|
etcd |
ACK Pro ETCD |
介紹etcd組件的指標清單、對應大盤的使用指導以及常見指標異常的問題解析。 |
|
|
kube-controller-manager |
ACK Pro Kube Controller Manager |
介紹kube-controller-manager組件的指標清單和對應大盤的使用指導。 |
|
|
kube-scheduler |
ACK Pro Scheduler |
介紹kube-scheduler組件的指標清單、對應大盤的使用指導以及常見指標異常的問題解析。 |
|
|
自訂Prometheus監控和警示 |
自訂大盤名稱 |
介紹如何基於使用者自建的Prometheus,採集ACK Pro叢集的控制面組件監控API Server、etcd、Scheduler、KCM、CCM指標配置說明以及推薦的警示配置。 |