W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
通過系統(tǒng)組件指標(biāo)可以更好地了解系統(tǒng)組個內(nèi)部發(fā)生的情況。系統(tǒng)組件指標(biāo)對于構(gòu)建儀表板和告警特別有用。
Kubernetes 組件以 Prometheus 格式 生成度量值。 這種格式是結(jié)構(gòu)化的純文本,旨在使人和機(jī)器都可以閱讀。
在大多數(shù)情況下,可以通過 HTTP 訪問組件的 ?/metrics
? 端點(diǎn)來獲取組件的度量值。 對于那些默認(rèn)情況下不暴露端點(diǎn)的組件,可以使用 ?--bind-address
? 標(biāo)志啟用。
在生產(chǎn)環(huán)境中,你可能需要配置 Prometheus 服務(wù)器 或 某些其他指標(biāo)搜集器以定期收集這些指標(biāo),并使它們在某種時間序列數(shù)據(jù)庫中可用。
請注意,kubelet 還會在 ?/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
Alpha 指標(biāo) → 穩(wěn)定的指標(biāo) → 棄用的指標(biāo) → 隱藏的指標(biāo) → 刪除的指標(biāo)
Alpha 指標(biāo)沒有穩(wěn)定性保證。這些指標(biāo)可以隨時被修改或者刪除。
穩(wěn)定的指標(biāo)可以保證不會改變。這意味著:
已棄用的指標(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)不會再被發(fā)布以供抓取,但仍然可用。刪除的指標(biāo)不再被發(fā)布,亦無法使用。
如上所述,管理員可以通過設(shè)置可執(zhí)行文件的命令行參數(shù)來啟用隱藏指標(biāo), 如果管理員錯過了上一版本中已經(jīng)棄用的指標(biāo)的遷移,則可以把這個用作管理員的逃生門。
?show-hidden-metrics-for-version
? 標(biāo)志接受版本號作為取值,版本號給出 你希望顯示該發(fā)行版本中已棄用的指標(biāo)。 版本表示為 x.y,其中 x 是主要版本,y 是次要版本。補(bǔ)丁程序版本不是必須的, 即使指標(biāo)可能會在補(bǔ)丁程序發(fā)行版中棄用,原因是指標(biāo)棄用策略規(guī)定僅針對次要版本。
該參數(shù)只能使用前一個次要版本。如果管理員將先前版本設(shè)置為 ?show-hidden-metrics-for-version
?, 則先前版本中隱藏的度量值會再度生成。不允許使用過舊的版本,因?yàn)槟菢訒`反指標(biāo)棄用策略。
以指標(biāo) ?A
?為例,此處假設(shè) ?A
?在 1.n 中已棄用。根據(jù)指標(biāo)棄用策略,我們可以得出以下結(jié)論:
1.n
? 中,這個指標(biāo)已經(jīng)棄用,且默認(rèn)情況下可以生成。
1.n+1
? 中,這個指標(biāo)默認(rèn)隱藏,可以通過命令行參數(shù) ?show-hidden-metrics-for-version=1.n
? 來再度生成。
1.n+2
? 中,這個指標(biāo)就將被從代碼中移除,不會再有任何逃生窗口。如果你要從版本 ?1.12
? 升級到 ?1.13
?,但仍依賴于 ?1.12
? 中棄用的指標(biāo) ?A
?,則應(yīng)通過命令行設(shè)置隱藏指標(biāo): ?--show-hidden-metrics=1.12
?,并記住在升級到 ?1.14
? 版本之前刪除此指標(biāo)依賴項。
kubelet 通過 cAdvisor 收集加速器指標(biāo)。為了收集這些指標(biāo),對于 NVIDIA GPU 之類的加速器, kubelet 在驅(qū)動程序上保持打開狀態(tài)。這意味著為了執(zhí)行基礎(chǔ)結(jié)構(gòu)更改(例如更新驅(qū)動程序), 集群管理員需要停止 kubelet 代理。
現(xiàn)在,收集加速器指標(biāo)的責(zé)任屬于供應(yīng)商,而不是 kubelet。供應(yīng)商必須提供一個收集指標(biāo)的容器, 并將其公開給指標(biāo)服務(wù)(例如 Prometheus)。
?DisableAcceleratorUsageMetrics
?特性門控 禁止由 kubelet 收集的指標(biāo)。 關(guān)于何時會在默認(rèn)情況下啟用此功能也有一定規(guī)劃。
控制器管理器指標(biāo)可提供有關(guān)控制器管理器性能和運(yùn)行狀況的重要洞察。 這些指標(biāo)包括通用的 Go 語言運(yùn)行時指標(biāo)(例如 go_routine 數(shù)量)和控制器特定的度量指標(biāo), 例如可用于評估集群運(yùn)行狀況的 etcd 請求延遲或云提供商(AWS、GCE、OpenStack)的 API 延遲等。
從 Kubernetes 1.7 版本開始,詳細(xì)的云提供商指標(biāo)可用于 GCE、AWS、Vsphere 和 OpenStack 的存儲操作。 這些指標(biāo)可用于監(jiān)控持久卷操作的運(yùn)行狀況。
比如,對于 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"}
FEATURE STATE: Kubernetes v1.21 [beta]
調(diào)度器會暴露一些可選的指標(biāo),報告所有運(yùn)行中 Pods 所請求的資源和期望的約束值。 這些指標(biāo)可用來構(gòu)造容量規(guī)劃監(jiān)控面板、訪問調(diào)度約束的當(dāng)前或歷史數(shù)據(jù)、 快速發(fā)現(xiàn)因?yàn)槿鄙儋Y源而無法被調(diào)度的負(fù)載,或者將 Pod 的實(shí)際資源用量 與其請求值進(jìn)行比較。
kube-scheduler 組件能夠辯識各個 Pod 所配置的資源 請求和約束。 在 Pod 的資源請求值或者約束值非零時,kube-scheduler 會以度量值時間序列的形式 生成報告。該時間序列值包含以下標(biāo)簽:
cpu
?)
cores
?)一旦 Pod 進(jìn)入完成狀態(tài)(其 ?restartPolicy
?為 ?Never
?或 ?OnFailure
?,且 其處于 ?Succeeded
?或 ?Failed
?Pod 階段,或者已經(jīng)被刪除且所有容器都具有 終止?fàn)顟B(tài)),該時間序列停止報告,因?yàn)檎{(diào)度器現(xiàn)在可以調(diào)度其它 Pod 來執(zhí)行。 這兩個指標(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)志 ?--disabled-metrics
? 來關(guān)閉某指標(biāo)。 在例如某指標(biāo)會帶來性能問題的情況下,這一操作可能是有用的。 標(biāo)志的參數(shù)值是一組被禁止的指標(biāo)(例如:?--disabled-metrics=metric1,metric2
?)。
在 Alpha 階段,標(biāo)志只能接受一組映射值作為可以使用的指標(biāo)標(biāo)簽。 每個映射值的格式為<指標(biāo)名稱>,<標(biāo)簽名稱>=<可用標(biāo)簽列表>,其中 <可用標(biāo)簽列表> 是一個用逗號分隔的、可接受的標(biāo)簽名的列表。
最終的格式看起來會是這樣: --allow-label-value <指標(biāo)名稱>,<標(biāo)簽名稱>='<可用值1>,<可用值2>...', <指標(biāo)名稱2>,<標(biāo)簽名稱>='<可用值1>, <可用值2>...', ....
下面是一個例子:
?--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'
?
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: