天天看點

騰訊雲容器服務監控體系詳解

騰訊雲容器服務監控系統可以監控叢集中所有的節點,服務,執行個體,容器的相關資訊,并且以曲線的方式展示給使用者,同時支援多種粒度的統計方式。監控的基礎資料是由 cAdvisor 擷取,然後上報至監控平台進行聚合。本文将講解容器監控架構和名額統計方式。

騰訊雲容器服務監控體系詳解

Container 為目前該叢集節點(VM)上所有的容器,包括但不限于:

騰訊雲容器服務建立的

Kubenertes Api 建立的

docker run 建立的

cAdvisor 做為一個運作中的 daemon,會自動收集所有運作時容器的監控資訊,例如 cpu,mem 等,經過一定的計算和分類通過頁面或者 api 的方式提供調用。kubenertes 已經将 cAdvisor 功能內建到 kubelet 元件中,同時通過節點 IP+端口也可以直接進行 cAdvisor web 通路。

cAdvisor web 通路方式: http://VmIp:4194

每一台叢集節點(VM)上會部署一個專門收集監控資訊的 agent,每個 agent 會在叢集節點建立時預設安裝并運作,agent 會每分鐘調用 cAdvisor api 擷取容器的監控資訊進行彙總,并且按照多種視圖的方式進行聚合計算等等操作,最終彙總成一個包含容器,服務,節點,叢集,命名空間的有層級的原始資料上報至 Tencent Cloud Monitor Service.

Tencent Cloud Monitor Service 擷取 agent 每分鐘上報的結果,通過我們在監控平台上配置的不同視圖,不同次元的統計方式進行二次聚合,最終以标準的騰訊雲 API 的形式提供給使用者調用。具體的調用方式可以檢視 擷取容器服務監控資料

容器服務以多種視圖的方式提供監控視圖,視圖可以看做是一種分類,每一個視圖通過不同的聚合方式,次元,和名額提供獨立的監控資料。下面會列舉出現在容器服務支援的所有視圖和其監控名額,并且解釋其統計方式

監控項

名額名稱

機關

說明

統計方式

叢集 CPU 使用率

dc_cpu_usage

%

叢集内節點的平均 CPU 使用率

1 分鐘 avg,5 分鐘 max,1 小時 max,1 天 max

叢集記憶體使用率

dc_mem_usage

叢集内節點的平均記憶體使用率

服務 CPU 使用情況

service_cpu_used

服務内所有容器執行個體 CPU 使用之和

1 分鐘 sum,5 分鐘 max,1 小時 max,1 天 max

服務 CPU 使用率(占叢集)

service_cpu_usage_for_cluster

服務使用 CPU 占叢集比率

服務記憶體使用情況

service_mem_used

MiB

服務内所有容器執行個體記憶體使用之和

服務記憶體使用率(占叢集)

service_mem_usage_for_cluster

服務使用記憶體占叢集比率

服務網絡入流量

service_in_flux

MB

服務内所有執行個體在該時間視窗入流量之和

1 分鐘 sum,5 分鐘 sum,1 小時 sum,1 天 sum

服務網絡出流量

service_out_flux

服務内所有執行個體在該時間視窗出流量之和

服務網絡入帶寬

service_in_bandwidth

Mbps

服務内所有執行個體的入帶寬之和

服務網絡出帶寬

service_out_bandwidth

服務内所有執行個體的出帶寬之和

服務網絡入包量

service_in_packets

個/s

服務内所有執行個體的入包量之和

服務網絡出包量

service_out_packets

服務内所有執行個體的出包量之和

執行個體網絡入帶寬

pod_in_bandwidth

同一執行個體内容器共享網絡,執行個體(pod) 的網絡入帶寬

執行個體網絡出帶寬

pod_out_bandwidth

同一執行個體内容器共享網絡,執行個體(pod) 的網絡出帶寬

執行個體網絡入流量

pod_in_flux

同一執行個體内容器共享網絡,執行個體(pod) 的網絡入流量

執行個體網絡出流量

pod_out_flux

同一執行個體内容器共享網絡,執行個體(pod) 的網絡出流量

執行個體網絡入包量

pod_in_packets

同一執行個體内容器共享網絡,執行個體(pod) 的網絡入包量

執行個體網絡出包量

pod_out_packets

同一執行個體内容器共享網絡,執行個體(pod) 的網絡出包量

容器 CPU 使用情況

container_cpu_used

容器 CPU 使用量

5 分鐘 max,1 小時 max,1 天 max

容器 CPU 使用率(占主機)

container_cpu_usage_for_node

容器 CPU 使用占主機

容器 CPU 使用率(占 Request)

container_cpu_usage_for_request

容器 CPU 使用占 Request

容器 CPU 使用率(占 Limit)

container_cpu_usage_for_limit

容器 CPU 使用占 Limit

容器記憶體使用情況

container_mem_used

容器記憶體使用量

容器記憶體使用率(占主機)

container_mem_usage_for_node

容器記憶體使用占主機

容器記憶體使用率(占 Request)

container_mem_usage_for_request

容器記憶體使用占 Request

容器記憶體使用率(占 Limit)

container_mem_usage_for_limit

容器記憶體使用占 Limit

容器磁盤讀流量

container_disk_read_traffic

KB/s

容器對磁盤讀流量

容器磁盤寫流量

container_disk_write_traffic

容器對磁盤寫流量

容器磁盤讀 IOPS

container_disk_read

count

容器對磁盤讀 IOPS

容器磁盤寫 IOPS

container_disk_write

容器對磁盤寫 IOPS

上面所描述的統計方式,例如:service_cpu_used(服務 cpu 使用量) 1 分鐘 sum,5 分鐘 max,1 小時 max,1 天 max,解釋如下:

1 分鐘 max: 服務下的所有容器每分鐘上報的 cpu 使用量之合

5 分鐘 max: 基于 1 分鐘的統計結果,5 分鐘共 5 個點,取其中最大值

1 小時 max: 基于 5 分鐘的統計結果,1 小時共 12 個點,取其中最大值

1 天 max: 基于 1 分鐘的統計結果,1 小時共 1440 個點,取其中最大值

其他統計方式與這個類似,其中容器視同中的名額沒有 1 分鐘統計方式,因為容器為最小粒度,顧隻需取得上報的值,即為最後的輸出值,不需要做聚合。

騰訊雲容器服務的監控是基于 cAdvisor 來擷取基礎資料,并且通過一系列的計算,彙總最終呈現給使用者。名額覆寫叢集,服務,執行個體,容器四大部分,共 30 個監控名額,基本涵蓋了大部分使用者訴求,同時提供控制台頁面和雲 API 兩種方式輸出。歡迎大家使用!