0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

解析Kubernetes監(jiān)控指標(biāo)獲取方式對(duì)比

馬哥Linux運(yùn)維 ? 來(lái)源:掘金 ? 作者:Honest1y ? 2021-09-26 10:45 ? 次閱讀

對(duì)比

node-exporter用于采集服務(wù)器層面的運(yùn)行指標(biāo),包括機(jī)器的loadavg、filesystem、meminfo等基礎(chǔ)監(jiān)控,類似于傳統(tǒng)主機(jī)監(jiān)控維度的zabbix-agent。 metric-server/heapster是從api-server中獲取CPU、內(nèi)存使用率這種監(jiān)控指標(biāo),并把他們發(fā)送給存儲(chǔ)后端,如InfluxDB或云廠商,他當(dāng)前的核心作用是:為HPA等組件提供決策指標(biāo)支持。 kube-state-metrics關(guān)注于獲取Kubernetes各種資源的最新狀態(tài),如Deployment或者DaemonSet。 例如:
  • 我調(diào)度了多少個(gè)Replicas?現(xiàn)在可用的有幾個(gè)?

  • 多少個(gè)Pod是running/stopped/terminated狀態(tài)?

  • Pod重啟了多少次?

  • 我有多少job在運(yùn)行中?

這些指標(biāo)都由kube-state-metrics提供。 之所以沒(méi)有把kube-state-metrics納入到metric-server的能力中,是因?yàn)樗麄兊年P(guān)注點(diǎn)本質(zhì)上是不一樣的。
  • metric-server僅僅是獲取、格式化現(xiàn)有數(shù)據(jù),寫(xiě)入特定的存儲(chǔ),實(shí)質(zhì)上是一個(gè)監(jiān)控系統(tǒng)。

  • kube-state-metrics是將Kubernetes的運(yùn)行狀況在內(nèi)存中做了個(gè)快照,并且獲取新的指標(biāo),但他沒(méi)有能力導(dǎo)出這些指標(biāo)。
    部署metric-server

下載metric-server部署的yaml文件到本地。

	

wgethttps://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.7/components.yaml

拉取metric-server的鏡像到本地:

	

#dockerpullzhaoqinchang/metrics-server:0.3.7 0.3.7:Pullingfromzhaoqinchang/metrics-server 9ff2acc3204b:Pullcomplete 9d14b55ff9a0:Pullcomplete Digest:sha256:c0efe772bb9e5c289db6cc4bc2002c268507d0226f2a3815f7213e00261c38e9 Status:Downloadednewerimageforzhaoqinchang/metrics-server:0.3.7 docker.io/zhaoqinchang/metrics-server:0.3.7

修改components.yaml文件為如下內(nèi)容:

	#catcomponents.yaml --- apiVersion:rbac.authorization.k8s.io/v1 kind:ClusterRole metadata: name:system:aggregated-metrics-reader labels: rbac.authorization.k8s.io/aggregate-to-view:"true" rbac.authorization.k8s.io/aggregate-to-edit:"true" rbac.authorization.k8s.io/aggregate-to-admin:"true" rules: -apiGroups:["metrics.k8s.io"] resources:["pods","nodes"] verbs:["get","list","watch"] --- apiVersion:rbac.authorization.k8s.io/v1 kind:ClusterRoleBinding metadata: name:metrics-serverauth-delegator roleRef: apiGroup:rbac.authorization.k8s.io kind:ClusterRole name:system:auth-delegator subjects: -kind:ServiceAccount name:metrics-server namespace:kube-system --- apiVersion:rbac.authorization.k8s.io/v1 kind:RoleBinding metadata: name:metrics-server-auth-reader namespace:kube-system roleRef: apiGroup:rbac.authorization.k8s.io kind:Role name:extension-apiserver-authentication-reader subjects: -kind:ServiceAccount name:metrics-server namespace:kube-system --- apiVersion:apiregistration.k8s.io/v1beta1 kind:APIService metadata: name:v1beta1.metrics.k8s.io spec: service: name:metrics-server namespace:kube-system group:metrics.k8s.io version:v1beta1 insecureSkipTLSVerify:true groupPriorityMinimum:100 versionPriority:100 --- apiVersion:v1 kind:ServiceAccount metadata: name:metrics-server namespace:kube-system --- apiVersion:apps/v1 kind:Deployment metadata: name:metrics-server namespace:kube-system labels: k8s-app:metrics-server spec: selector: matchLabels: k8s-app:metrics-server template: metadata: name:metrics-server labels: k8s-app:metrics-server spec: serviceAccountName:metrics-server volumes: #mountintmpsowecansafelyusefrom-scratchimagesand/orread-onlycontainers -name:tmp-dir emptyDir:{} containers: -name:metrics-server image:zhaoqinchang/metrics-server:0.3.7#修改鏡像為剛剛拉取下來(lái)的鏡像 imagePullPolicy:IfNotPresent args: ---cert-dir=/tmp ---secure-port=4443 command:#添加以下三行command命令 -/metrics-server ---kubelet-preferred-address-types=InternalIP ---kubelet-insecure-tls ports: -name:main-port containerPort:4443 protocol:TCP securityContext: readOnlyRootFilesystem:true runAsNonRoot:true runAsUser:1000 volumeMounts: -name:tmp-dir mountPath:/tmp nodeSelector: kubernetes.io/os:linux --- apiVersion:v1 kind:Service metadata: name:metrics-server namespace:kube-system labels: kubernetes.io/name:"Metrics-server" kubernetes.io/cluster-service:"true" spec: selector: k8s-app:metrics-server ports: -port:443 protocol:TCP targetPort:main-port --- apiVersion:rbac.authorization.k8s.io/v1 kind:ClusterRole metadata: name:system:metrics-server rules: -apiGroups: -"" resources: -pods -nodes -nodes/stats -namespaces -configmaps verbs: -get -list -watch --- apiVersion:rbac.authorization.k8s.io/v1 kind:ClusterRoleBinding metadata: name:system:metrics-server roleRef: apiGroup:rbac.authorization.k8s.io kind:ClusterRole name:system:metrics-server subjects: -kind:ServiceAccount name:metrics-server namespace:kube-system
				部署metric-server:

	

#kubectlapply-fcomponents.yaml clusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-readercreated clusterrolebinding.rbac.authorization.k8s.io/metrics-serverauth-delegatorcreated rolebinding.rbac.authorization.k8s.io/metrics-server-auth-readercreated apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.iocreated serviceaccount/metrics-servercreated deployment.apps/metrics-servercreated service/metrics-servercreated clusterrole.rbac.authorization.k8s.io/system:metrics-servercreated clusterrolebinding.rbac.authorization.k8s.io/system:metrics-servercreated

查看metric.k8s.io是否出現(xiàn)在Kubernetes集群的API群組列表中:

	

#kubectlapi-versions|grepmetrics metrics.k8s.io/v1beta1

使用

kubectl top命令可顯示節(jié)點(diǎn)和Pod對(duì)象的資源使用信息,它依賴于集群中的資源指標(biāo)API來(lái)收集各項(xiàng)指標(biāo)數(shù)據(jù)。它包含有Node和Pod兩個(gè)子命令,可分別顯示Node對(duì)象和Pod對(duì)象的相關(guān)資源占用率。 列出Node資源占用率命令的語(yǔ)法格式為“kubectl top node [-l label | NAME]”,例如下面顯示所有節(jié)點(diǎn)的資源占用狀況的結(jié)果中顯示了各節(jié)點(diǎn)累計(jì)CPU資源占用時(shí)長(zhǎng)及百分比,以及內(nèi)容空間占用量及占用比例。必要時(shí),也可以在命令直接給出要查看的特定節(jié)點(diǎn)的標(biāo)識(shí),以及使用標(biāo)簽選擇器進(jìn)行節(jié)點(diǎn)過(guò)濾。

	

[root@mastermetric]#kubectltopnodes NAMECPU(cores)CPU%MEMORY(bytes)MEMORY% master282m14%1902Mi51% node-0270m3%1371Mi37% node-03121m1%892Mi11%

而名稱空間級(jí)別的Pod對(duì)象資源占用率的使用方法會(huì)略有不同,使用時(shí),一般應(yīng)該跟定名稱空間及使用標(biāo)簽選擇器過(guò)濾出目標(biāo)Pod對(duì)象。例如,下面顯示kube-system名稱空間下的Pod資源使用狀況:

	

[root@mastermetric]#kubectltoppods-nkube-system NAMECPU(cores)MEMORY(bytes) etcd-master32m300Mi kube-apiserver-master86m342Mi kube-controller-manager-master30m48Mi kube-flannel-ds-l5ghn5m10Mi kube-flannel-ds-rqlm24m12Mi kube-flannel-ds-v92r94m14Mi kube-proxy-7vjcv18m15Mi kube-proxy-xrz8f13m21Mi kube-proxy-zpwn61m14Mi kube-scheduler-master7m17Mi metrics-server-5549c7694f-7vb662m14Mi

kubectl top命令為用戶提供簡(jiǎn)潔、快速獲取Node對(duì)象及Pod對(duì)象系統(tǒng)資源占用狀況的接口,是集群運(yùn)行和維護(hù)的常用命令之一。 原文鏈接:https://juejin.cn/post/6996862439560052773
編輯:jq
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10807

    瀏覽量

    210852
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    8963

    瀏覽量

    85087
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1472

    瀏覽量

    61750
  • 機(jī)器
    +關(guān)注

    關(guān)注

    0

    文章

    777

    瀏覽量

    40667

原文標(biāo)題:Kubernetes監(jiān)控指標(biāo)獲取方式對(duì)比

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ZCAN PRO解析的DBC Singal 起始位與XNET解析的起始位不同;解析的信號(hào)不符合大端邏輯

    上圖中的DBC文件使用記事本打開(kāi),Data_Field信號(hào),起始位為23,長(zhǎng)度為48,大端方式存儲(chǔ);(按照這個(gè)方式存儲(chǔ),明顯已經(jīng)溢出) 上圖為該信號(hào)在ZCANPRO軟件中打開(kāi),解析的起始位為23
    發(fā)表于 10-18 13:53

    使用Velero備份Kubernetes集群

    Velero 是 heptio 團(tuán)隊(duì)(被 VMWare 收購(gòu))開(kāi)源的 Kubernetes 集群備份、遷移工具。
    的頭像 發(fā)表于 08-05 15:43 ?314次閱讀
    使用Velero備份<b class='flag-5'>Kubernetes</b>集群

    如何使用Kubeadm命令在PetaExpress Ubuntu系統(tǒng)上安裝Kubernetes集群

    Kubernetes,通??s寫(xiě)為K8s,是一個(gè)開(kāi)源的容器編排平臺(tái),旨在自動(dòng)化容器化應(yīng)用的部署、擴(kuò)展和管理。有了Kubernetes,您可以輕松地部署、更新和擴(kuò)展應(yīng)用,而無(wú)需擔(dān)心底層基礎(chǔ)設(shè)施。
    的頭像 發(fā)表于 07-15 13:31 ?792次閱讀
    如何使用Kubeadm命令在PetaExpress Ubuntu系統(tǒng)上安裝<b class='flag-5'>Kubernetes</b>集群

    esp32在靜態(tài)IP下,域名無(wú)法解析怎么解決?

    1esp32使用dhcp,正常獲取IP連接網(wǎng)絡(luò),可以解析域名. 2esp32使用靜態(tài)IP,正常獲取IP連接網(wǎng)絡(luò),無(wú)法解析域名。
    發(fā)表于 06-25 07:56

    【米爾-全志T113-i開(kāi)發(fā)板試用】3、使用golang獲取系統(tǒng)信息

    獲取系統(tǒng)信息,我們可以使用Linux的Proc文件系統(tǒng),解析其中的文件來(lái)取得相應(yīng)的信息,但是那樣做太麻煩了,需要找很多資料,寫(xiě)挺多的代碼。 我們可以使用現(xiàn)成的工具gopsutil。gopsutil
    發(fā)表于 02-22 09:39

    Prometheus監(jiān)控業(yè)務(wù)指標(biāo)詳解

    Kubernetes 已經(jīng)成了事實(shí)上的容器編排標(biāo)準(zhǔn)之下,微服務(wù)的部署變得非常容易。但隨著微服務(wù)規(guī)模的擴(kuò)大,服務(wù)治理帶來(lái)的挑戰(zhàn)也會(huì)越來(lái)越大。在這樣的背景下出現(xiàn)了服務(wù)可觀測(cè)性(observability)的概念。
    的頭像 發(fā)表于 01-24 10:32 ?529次閱讀
    Prometheus<b class='flag-5'>監(jiān)控</b>業(yè)務(wù)<b class='flag-5'>指標(biāo)</b>詳解

    ?PLC從HTTP服務(wù)端獲取JSON文件,解析數(shù)據(jù)到寄存器

    文件提交給HTTP的服務(wù)端; 服務(wù)端有返回的JSON,或者GET命令獲取到的JSON,網(wǎng)關(guān)進(jìn)行解析后將數(shù)據(jù)寫(xiě)入到PLC寄存器。 本文主要描述通過(guò)GET命令獲取數(shù)據(jù),解析到西門(mén)子PLC的
    發(fā)表于 01-24 09:47

    Kubernetes Gateway API攻略教程

    Kubernetes Gateway API 剛剛 GA,旨在改進(jìn)將集群服務(wù)暴露給外部的過(guò)程。這其中包括一套更標(biāo)準(zhǔn)、更強(qiáng)大的 API資源,用于管理已暴露的服務(wù)。在這篇文章中,我將介紹 Gateway
    的頭像 發(fā)表于 01-12 11:32 ?815次閱讀
    <b class='flag-5'>Kubernetes</b> Gateway API攻略教程

    配置Kubernetes中Pod使用代理的兩種常見(jiàn)方式

    的需要。本文將介紹配置Kubernetes中Pod使用代理的兩種常見(jiàn)方式:通過(guò)ConfigMap和直接在應(yīng)用程序環(huán)境變量中設(shè)置。
    的頭像 發(fā)表于 01-05 11:22 ?1049次閱讀
    配置<b class='flag-5'>Kubernetes</b>中Pod使用代理的兩種常見(jiàn)<b class='flag-5'>方式</b>

    濾波電容不同補(bǔ)償方式優(yōu)缺點(diǎn)對(duì)比

    濾波電容不同補(bǔ)償方式優(yōu)缺點(diǎn)對(duì)比? 濾波電容是電子電路中常用的元件,用于對(duì)信號(hào)進(jìn)行濾波處理。不同的補(bǔ)償方式可以幫助提高濾波電容的性能和穩(wěn)定性。本文將詳細(xì)介紹幾種常見(jiàn)的濾波電容補(bǔ)償方式的優(yōu)
    的頭像 發(fā)表于 01-04 16:00 ?1061次閱讀

    使用Jenkins和單個(gè)模板部署多個(gè)Kubernetes組件

    在持續(xù)集成和部署中,我們通常需要部署多個(gè)實(shí)例或組件到Kubernetes集群中。通過(guò)Jenkins的管道腳本,我們可以自動(dòng)化這個(gè)過(guò)程。在本文中,我將演示如何使用Jenkins Pipeline及單個(gè)
    的頭像 發(fā)表于 01-02 11:40 ?676次閱讀
    使用Jenkins和單個(gè)模板部署多個(gè)<b class='flag-5'>Kubernetes</b>組件

    Kubernetes RBAC:掌握權(quán)限管理的精髓

    Kubernetes RBAC(Role-Based Access Control)是 Kubernetes 中一項(xiàng)關(guān)鍵的安全功能,它通過(guò)細(xì)粒度的權(quán)限控制機(jī)制,確保集群資源僅被授權(quán)的用戶或服務(wù)賬號(hào)訪問(wèn)。
    的頭像 發(fā)表于 12-25 09:43 ?439次閱讀

    Kubernetes開(kāi)發(fā)指南之深入理解CRD

    CRD本身是Kubernetes內(nèi)置的資源類型,全稱是CustomResourceDefinition,可以通過(guò)命令查看,kubectl get查看集群內(nèi)定義的CRD資源。
    的頭像 發(fā)表于 12-13 18:19 ?807次閱讀
    <b class='flag-5'>Kubernetes</b>開(kāi)發(fā)指南之深入理解CRD

    使用普通運(yùn)放時(shí)如何獲取運(yùn)放的增益誤差和增益非線性這樣的指標(biāo)呢?

    AD8221這類的儀表放大器數(shù)據(jù)手冊(cè)中會(huì)有閉環(huán)的增益誤差和增益非線性度這樣的指標(biāo),但是像OP2177之類的普通運(yùn)放的數(shù)據(jù)手冊(cè)中沒(méi)有這些參數(shù),我在使用普通運(yùn)放時(shí)如何獲取運(yùn)放的增益誤差和增益非線性這樣的指標(biāo)呢?
    發(fā)表于 11-17 06:58

    采用回調(diào)函數(shù)的方式優(yōu)化嵌入式系統(tǒng)命令解析

    在嵌入式系統(tǒng)開(kāi)發(fā)中,命令解析是一個(gè)關(guān)鍵的環(huán)節(jié),它負(fù)責(zé)解析用戶或其他系統(tǒng)發(fā)送的命令,并執(zhí)行相應(yīng)的操作。傳統(tǒng)的命令解析方法通常采用switch case語(yǔ)句,這種方式雖然經(jīng)典,但在功能擴(kuò)展
    的頭像 發(fā)表于 11-14 09:19 ?589次閱讀
    采用回調(diào)函數(shù)的<b class='flag-5'>方式</b>優(yōu)化嵌入式系統(tǒng)命令<b class='flag-5'>解析</b>