新聞中心
Kubernetes 系統(tǒng)組件指標(biāo)
通過系統(tǒng)組件指標(biāo)可以更好地了解系統(tǒng)組個(gè)內(nèi)部發(fā)生的情況。系統(tǒng)組件指標(biāo)對(duì)于構(gòu)建儀表板和告警特別有用。

專注于為中小企業(yè)提供成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)館陶免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
Kubernetes 組件以 Prometheus 格式 生成度量值。 這種格式是結(jié)構(gòu)化的純文本,旨在使人和機(jī)器都可以閱讀。
Kubernetes 中組件的指標(biāo)
在大多數(shù)情況下,可以通過 HTTP 訪問組件的 ?/metrics? 端點(diǎn)來獲取組件的度量值。 對(duì)于那些默認(rèn)情況下不暴露端點(diǎn)的組件,可以使用 ?--bind-address? 標(biāo)志啟用。
在生產(chǎn)環(huán)境中,你可能需要配置 Prometheus 服務(wù)器 或 某些其他指標(biāo)搜集器以定期收集這些指標(biāo),并使它們?cè)谀撤N時(shí)間序列數(shù)據(jù)庫中可用。
請(qǐng)注意,kubelet 還會(huì)在 ?/metrics/cadvisor?, ?/metrics/resource? 和 ?/metrics/probes? 端點(diǎn)中公開度量值。這些度量值的生命周期各不相同。
如果你的集群使用了 RBAC, 則讀取指標(biāo)需要通過基于用戶、組或 ServiceAccount 的鑒權(quán),要求具有允許訪問 ?/metrics? 的 ClusterRole。 例如:
apiVersion: rbac.authorization.K8S.io/v1
kind: ClusterRole
metadata:
name: prometheus
rules:
- nonResourceURLs:
- "/metrics"
verbs:
- get
指標(biāo)生命周期
Alpha 指標(biāo) → 穩(wěn)定的指標(biāo) → 棄用的指標(biāo) → 隱藏的指標(biāo) → 刪除的指標(biāo)
Alpha 指標(biāo)沒有穩(wěn)定性保證。這些指標(biāo)可以隨時(shí)被修改或者刪除。
穩(wěn)定的指標(biāo)可以保證不會(huì)改變。這意味著:
- 穩(wěn)定的、不包含已棄用(deprecated)簽名的指標(biāo)不會(huì)被刪除(或重命名)
- 穩(wěn)定的指標(biāo)的類型不會(huì)被更改
已棄用的指標(biāo)最終將被刪除,不過仍然可用。 這類指標(biāo)包含注解,標(biāo)明其被廢棄的版本。
例如:
- 被棄用之前:
# HELP some_counter this counts things
# TYPE some_counter counter
some_counter 0
# HELP some_counter (Deprecated since 1.15.0) this counts things
# TYPE some_counter counter
some_counter 0
隱藏的指標(biāo)不會(huì)再被發(fā)布以供抓取,但仍然可用。刪除的指標(biāo)不再被發(fā)布,亦無法使用。
顯示隱藏指標(biāo)
如上所述,管理員可以通過設(shè)置可執(zhí)行文件的命令行參數(shù)來啟用隱藏指標(biāo), 如果管理員錯(cuò)過了上一版本中已經(jīng)棄用的指標(biāo)的遷移,則可以把這個(gè)用作管理員的逃生門。
?show-hidden-metrics-for-version? 標(biāo)志接受版本號(hào)作為取值,版本號(hào)給出 你希望顯示該發(fā)行版本中已棄用的指標(biāo)。 版本表示為 x.y,其中 x 是主要版本,y 是次要版本。補(bǔ)丁程序版本不是必須的, 即使指標(biāo)可能會(huì)在補(bǔ)丁程序發(fā)行版中棄用,原因是指標(biāo)棄用策略規(guī)定僅針對(duì)次要版本。
該參數(shù)只能使用前一個(gè)次要版本。如果管理員將先前版本設(shè)置為 ?show-hidden-metrics-for-version?, 則先前版本中隱藏的度量值會(huì)再度生成。不允許使用過舊的版本,因?yàn)槟菢訒?huì)違反指標(biāo)棄用策略。
以指標(biāo) ?A ?為例,此處假設(shè) ?A ?在 1.n 中已棄用。根據(jù)指標(biāo)棄用策略,我們可以得出以下結(jié)論:
- 在版本 ?
1.n? 中,這個(gè)指標(biāo)已經(jīng)棄用,且默認(rèn)情況下可以生成。 - 在版本 ?
1.n+1? 中,這個(gè)指標(biāo)默認(rèn)隱藏,可以通過命令行參數(shù) ?show-hidden-metrics-for-version=1.n? 來再度生成。 - 在版本 ?
1.n+2? 中,這個(gè)指標(biāo)就將被從代碼中移除,不會(huì)再有任何逃生窗口。
如果你要從版本 ?1.12? 升級(jí)到 ?1.13?,但仍依賴于 ?1.12? 中棄用的指標(biāo) ?A?,則應(yīng)通過命令行設(shè)置隱藏指標(biāo): ?--show-hidden-metrics=1.12?,并記住在升級(jí)到 ?1.14? 版本之前刪除此指標(biāo)依賴項(xiàng)。
禁用加速器指標(biāo)
kubelet 通過 cAdvisor 收集加速器指標(biāo)。為了收集這些指標(biāo),對(duì)于 NVIDIA GPU 之類的加速器, kubelet 在驅(qū)動(dòng)程序上保持打開狀態(tài)。這意味著為了執(zhí)行基礎(chǔ)結(jié)構(gòu)更改(例如更新驅(qū)動(dòng)程序), 集群管理員需要停止 kubelet 代理。
現(xiàn)在,收集加速器指標(biāo)的責(zé)任屬于供應(yīng)商,而不是 kubelet。供應(yīng)商必須提供一個(gè)收集指標(biāo)的容器, 并將其公開給指標(biāo)服務(wù)(例如 Prometheus)。
?DisableAcceleratorUsageMetrics ?特性門控 禁止由 kubelet 收集的指標(biāo)。 關(guān)于何時(shí)會(huì)在默認(rèn)情況下啟用此功能也有一定規(guī)劃。
組件指標(biāo)
kube-controller-manager 指標(biāo)
控制器管理器指標(biāo)可提供有關(guān)控制器管理器性能和運(yùn)行狀況的重要洞察。 這些指標(biāo)包括通用的 Go 語言運(yùn)行時(shí)指標(biāo)(例如 go_routine 數(shù)量)和控制器特定的度量指標(biāo), 例如可用于評(píng)估集群運(yùn)行狀況的 etcd 請(qǐng)求延遲或云提供商(AWS、GCE、OpenStack)的 API 延遲等。
從 Kubernetes 1.7 版本開始,詳細(xì)的云提供商指標(biāo)可用于 GCE、AWS、Vsphere 和 OpenStack 的存儲(chǔ)操作。 這些指標(biāo)可用于監(jiān)控持久卷操作的運(yùn)行狀況。
比如,對(duì)于 GCE,這些指標(biāo)稱為:
cloudprovider_gce_api_request_duration_seconds { request = "instance_list"}
cloudprovider_gce_api_request_duration_seconds { request = "disk_insert"}
cloudprovider_gce_api_request_duration_seconds { request = "disk_delete"}
cloudprovider_gce_api_request_duration_seconds { request = "attach_disk"}
cloudprovider_gce_api_request_duration_seconds { request = "detach_disk"}
cloudprovider_gce_api_request_duration_seconds { request = "list_disk"}
kube-scheduler 指標(biāo)
FEATURE STATE: Kubernetes v1.21 [beta]
調(diào)度器會(huì)暴露一些可選的指標(biāo),報(bào)告所有運(yùn)行中 Pods 所請(qǐng)求的資源和期望的約束值。 這些指標(biāo)可用來構(gòu)造容量規(guī)劃監(jiān)控面板、訪問調(diào)度約束的當(dāng)前或歷史數(shù)據(jù)、 快速發(fā)現(xiàn)因?yàn)槿鄙儋Y源而無法被調(diào)度的負(fù)載,或者將 Pod 的實(shí)際資源用量 與其請(qǐng)求值進(jìn)行比較。
kube-scheduler 組件能夠辯識(shí)各個(gè) Pod 所配置的資源 請(qǐng)求和約束。 在 Pod 的資源請(qǐng)求值或者約束值非零時(shí),kube-scheduler 會(huì)以度量值時(shí)間序列的形式 生成報(bào)告。該時(shí)間序列值包含以下標(biāo)簽:
- 名字空間
- Pod 名稱
- Pod 調(diào)度所處節(jié)點(diǎn),或者當(dāng) Pod 未被調(diào)度時(shí)用空字符串表示
- 優(yōu)先級(jí)
- 為 Pod 所指派的調(diào)度器
- 資源的名稱(例如,?
cpu?) - 資源的單位,如果知道的話(例如,?
cores?)
一旦 Pod 進(jìn)入完成狀態(tài)(其 ?restartPolicy ?為 ?Never ?或 ?OnFailure?,且 其處于 ?Succeeded ?或 ?Failed ?Pod 階段,或者已經(jīng)被刪除且所有容器都具有 終止?fàn)顟B(tài)),該時(shí)間序列停止報(bào)告,因?yàn)檎{(diào)度器現(xiàn)在可以調(diào)度其它 Pod 來執(zhí)行。 這兩個(gè)指標(biāo)稱作 ?kube_pod_resource_request ?和 ?kube_pod_resource_limit?。
指標(biāo)暴露在 HTTP 端點(diǎn) ?/metrics/resources?,與調(diào)度器上的 ?/metrics? 端點(diǎn) 一樣要求相同的訪問授權(quán)。你必須使用 ?--show-hidden-metrics-for-version=1.20? 標(biāo)志才能暴露那些穩(wěn)定性為 Alpha 的指標(biāo)。
禁用指標(biāo)
你可以通過命令行標(biāo)志 ?--disabled-metrics? 來關(guān)閉某指標(biāo)。 在例如某指標(biāo)會(huì)帶來性能問題的情況下,這一操作可能是有用的。 標(biāo)志的參數(shù)值是一組被禁止的指標(biāo)(例如:?--disabled-metrics=metric1,metric2?)。
指標(biāo)順序性保證
在 Alpha 階段,標(biāo)志只能接受一組映射值作為可以使用的指標(biāo)標(biāo)簽。 每個(gè)映射值的格式為<指標(biāo)名稱>,<標(biāo)簽名稱>=<可用標(biāo)簽列表>,其中 <可用標(biāo)簽列表> 是一個(gè)用逗號(hào)分隔的、可接受的標(biāo)簽名的列表。
最終的格式看起來會(huì)是這樣: --allow-label-value <指標(biāo)名稱>,<標(biāo)簽名稱>='<可用值1>,<可用值2>...', <指標(biāo)名稱2>,<標(biāo)簽名稱>='<可用值1>, <可用值2>...', ....
下面是一個(gè)例子:
?--allow-label-value number_count_metric,odd_number='1,3,5', number_count_metric,even_number='2,4,6', date_gauge_metric,weekend='Saturday,Sunday'?
新聞名稱:創(chuàng)新互聯(lián)kubernetes教程:Kubernetes系統(tǒng)組件指標(biāo)
本文路徑:http://m.fisionsoft.com.cn/article/dhjjjjd.html


咨詢
建站咨詢
