那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何獲取采集服務器Kubernetes監控指標

馬哥Linux運維 ? 來源:掘金 ? 作者:Honest1y ? 2021-09-26 10:13 ? 次閱讀

對比

node-exporter用于采集服務器層面的運行指標,包括機器的loadavg、filesystem、meminfo等基礎監控,類似于傳統主機監控維度的zabbix-agent。

metric-server/heapster是從api-server中獲取CPU、內存使用率這種監控指標,并把他們發送給存儲后端,如InfluxDB或云廠商,他當前的核心作用是:為HPA等組件提供決策指標支持。

kube-state-metrics關注于獲取Kubernetes各種資源的最新狀態,如Deployment或者DaemonSet。

例如:

我調度了多少個Replicas?現在可用的有幾個?

多少個Pod是running/stopped/terminated狀態?

Pod重啟了多少次?

我有多少job在運行中?

這些指標都由kube-state-metrics提供。

之所以沒有把kube-state-metrics納入到metric-server的能力中,是因為他們的關注點本質上是不一樣的。

metric-server僅僅是獲取、格式化現有數據,寫入特定的存儲,實質上是一個監控系統。

kube-state-metrics是將Kubernetes的運行狀況在內存中做了個快照,并且獲取新的指標,但他沒有能力導出這些指標。

部署metric-server

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

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

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

# docker pull zhaoqinchang/metrics-server:0.3.7 0.3.7: Pulling from zhaoqinchang/metrics-server 9ff2acc3204b: Pull complete 9d14b55ff9a0: Pull complete Digest:

sha256:c0efe772bb9e5c289db6cc4bc2002c268507d0226f2a3815f7213e00261c38e9 Status: Downloaded newer image for zhaoqinchang/metrics-server:0.3.7 docker.io/zhaoqinchang/metrics-server:0.3.7

修改components.yaml文件為如下內容:

# cat components.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: # mount in tmp so we can safely use from-scratch images and/or read-only containers - name:

tmp-dir emptyDir: {} containers: - name: metrics-server image: zhaoqinchang/metrics-server:0.3.7 #修改鏡像為剛剛拉取下來的鏡像

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:

# kubectl apply -f components.yaml clusterrole.rbac.authorization.k8s.io/system:aggregated-metrics-reader created clusterrolebinding.rbac.authorization.k8s.io/metrics-serverauth-delegator created

rolebinding.rbac.authorization.k8s.io/metrics-server-auth-reader created

apiservice.apiregistration.k8s.io/v1beta1.metrics.k8s.io created serviceaccount/metrics-server created

deployment.apps/metrics-server created service/metrics-server created

clusterrole.rbac.authorization.k8s.io/system:metrics-server created clusterrolebinding.rbac.authorization.k8s.io/system:metrics-server created

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

# kubectl api-versions | grep metrics metrics.k8s.io/v1beta1

使用

kubectl top命令可顯示節點和Pod對象的資源使用信息,它依賴于集群中的資源指標API來收集各項指標數據。它包含有Node和Pod兩個子命令,可分別顯示Node對象和Pod對象的相關資源占用率。

列出Node資源占用率命令的語法格式為“kubectl top node [-l label | NAME]”,例如下面顯示所有節點的資源占用狀況的結果中顯示了各節點累計CPU資源占用時長及百分比,以及內容空間占用量及占用比例。必要時,也可以在命令直接給出要查看的特定節點的標識,以及使用標簽選擇器進行節點過濾。

[root@master metric]# kubectl top nodes NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% master 282m 14% 1902Mi 51% node-02 70m 3% 1371Mi 37% node-03 121m 1% 892Mi 11%

而名稱空間級別的Pod對象資源占用率的使用方法會略有不同,使用時,一般應該跟定名稱空間及使用標簽選擇器過濾出目標Pod對象。例如,下面顯示kube-system名稱空間下的Pod資源使用狀況:

[root@master metric]# kubectl top pods -n kube-system NAME CPU(cores) MEMORY(bytes) etcd-master 32m 300Mi kube-apiserver-master 86m 342Mi kube-controller-manager-master 30m 48Mi kube-flannel-ds-l5ghn 5m

10Mi kube-flannel-ds-rqlm2 4m 12Mi kube-flannel-ds-v92r9 4m 14Mi kube-proxy-7vjcv 18m 15Mi kube-proxy-xrz8f 13m 21Mi kube-proxy-zpwn6 1m 14Mi kube-scheduler-master 7m 17Mi metrics-server-5549c7694f-7vb66 2m 14Mi

kubectl top命令為用戶提供簡潔、快速獲取Node對象及Pod對象系統資源占用狀況的接口,是集群運行和維護的常用命令之一。

原文鏈接:https://juejin.cn/post/6996862439560052773

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 服務器
    +關注

    關注

    12

    文章

    9308

    瀏覽量

    86073
  • 監控系統
    +關注

    關注

    21

    文章

    3941

    瀏覽量

    176917
收藏 人收藏

    評論

    相關推薦

    使用 Flexus 云服務器 X 實例部署 Kubernetes 圖形化管理平臺

    Kubernetes 作為當今最流行的容器編排平臺,隨著云計算、微服務架構和 DevOps 文化的普及,Kubernetes 在自動化部署、擴展和管理容器化應用程序方面扮演著越來越重要的角色。未來
    的頭像 發表于 01-21 16:14 ?101次閱讀
    使用 Flexus 云<b class='flag-5'>服務器</b> X 實例部署 <b class='flag-5'>Kubernetes</b> 圖形化管理平臺

    基于華為云 Flexus X 實例部署 Uptime-Kuma 服務器監控面板

    系統來實時掌握服務器的運行狀態。 ????????在這樣的背景下,uptime-kuma 應運而生。uptime-kuma 是一款開源的服務器監控面板,它能夠幫助用戶實時監控
    的頭像 發表于 01-17 09:42 ?249次閱讀
    基于華為云 Flexus X 實例部署 Uptime-Kuma <b class='flag-5'>服務器</b><b class='flag-5'>監控</b>面板

    Flexus 云服務器 X 實例實踐:部署 ServerBee 監控工具

    引言 在當今數字化的時代,服務器的有效監控與管理對于企業和開發者至關重要。華為云作為云計算領域的佼佼者,一直以強大的技術實力和卓越的服務品質著稱。其 Flexus 云服務器 X 實例,
    的頭像 發表于 01-14 09:26 ?323次閱讀
    Flexus 云<b class='flag-5'>服務器</b> X 實例實踐:部署 ServerBee <b class='flag-5'>監控</b>工具

    Flexus 云服務器 X 實例實踐:安裝 Ward 服務器監控工具

    了強大而靈活的計算能力。而在系統運維管理方面,Ward 這一專為 Linux 系統打造的監控工具功能強大,當我們將其安裝在華為云 Flexus 云服務器 X 實例上時,又會擦出怎樣的火花呢? 一、Flexus 云服務器 X 實例
    的頭像 發表于 01-13 15:51 ?148次閱讀
    Flexus 云<b class='flag-5'>服務器</b> X 實例實踐:安裝 Ward <b class='flag-5'>服務器</b><b class='flag-5'>監控</b>工具

    理解云服務器網絡指標:關鍵性能指標

    在云計算領域,網絡度量對于評估云服務器操作的性能、可靠性和效率至關重要。這些指標提供了對網絡服務運行狀況和性能的洞察,使管理員能夠就資源分配、擴展和優化做出明智的決策。本文將探討云服務器
    的頭像 發表于 11-11 17:04 ?409次閱讀

    使用zabbix監控服務器的方法

    Zabbix環境 在開始監控服務器之前,你需要準備Zabbix環境。這包括安裝Zabbix服務器、Zabbix代理和配置Web界面。 2.1 安裝Zabbix服務器 Zabbix
    的頭像 發表于 11-08 10:47 ?363次閱讀

    Kubernetes集群搭建容器云需要幾臺服務器

    Kubernetes集群搭建容器云需要幾臺服務器?至少需要4臺服務器。搭建容器云所需的服務器數量以及具體的搭建步驟,會根據所選用的技術棧、業務規模、架構設計以及安全需求等因素而有所不同
    的頭像 發表于 10-21 10:06 ?197次閱讀

    獨立服務器與云服務器的區別

    隨著互聯網技術的飛速發展,企業對于服務器的需求日益增加,而服務器市場也隨之出現了多種類型的產品,其中最常見的是獨立服務器和云服務器。這兩種服務器
    的頭像 發表于 10-12 14:34 ?337次閱讀

    如何在阿里ECS服務器上架設自己的OpenVPN服務器?

    需要自己架設服務器,讓現場的IR615路由連接自己的服務器。能通過自己的服務器進行數據采集和遠程運維。
    發表于 07-25 06:14

    如何獲取DNS服務器IP?

    當ESP8266在 STA 模式下連接時,訪問分配給 DHCP 客戶端的 DNS 服務器地址將非常有用。理想情況下,這些地址要么通過 wifi_get_ip_info 在ip_info結構中返回,要么通過專用 API(例如 espconn_dns_getserver)返回。
    發表于 07-11 06:15

    服務器和虛擬服務器的區別是什么

    服務器和虛擬服務器是兩種常見的服務器類型,它們在很多方面有相似之處,但也有一些關鍵的區別。本文將詳細介紹云服務器和虛擬服務器的區別,包括它
    的頭像 發表于 07-02 09:48 ?927次閱讀

     K8S學習教程一:使用PetaExpress云服務器安裝Minikube 集群

    使得開發人員能夠在本地機器上輕松創建一個單節點的 Kubernetes 集群,從而方便開發、測試和學習 Kubernetes。 我們看下如何使用PetaExpress云服務器安裝Minikube 集群
    的頭像 發表于 07-01 15:41 ?419次閱讀
     K8S學習教程一:使用PetaExpress云<b class='flag-5'>服務器</b>安裝Minikube 集群

    京準科技、大數據監控網絡里的NTP時鐘同步服務器應用

    京準科技、大數據網絡監控系統里的NTP時鐘同步服務器應用
    的頭像 發表于 06-06 14:15 ?355次閱讀

    服務器監控完整指南

    運行混合云環境時。下面,恒訊科技小編我給大家介紹下云服務器監控完整指南。 一、什么是云服務器監控? 我們應該根據既定的自定義指標持續
    的頭像 發表于 03-20 17:19 ?458次閱讀

    linux服務器和windows服務器

    Linux服務器和Windows服務器是目前應用最廣泛的兩種服務器操作系統。兩者各有優劣,也適用于不同的應用場景。本文將 對Linux服務器和Windows
    發表于 02-22 15:46
    百家乐视频游戏聊天| 信誉棋牌游戏| 澳门百家乐官网路子分析| 视频百家乐破解| 真人百家乐官网信誉| 百家乐游戏台| 百家乐998| 百家乐官网是怎样的| 百家乐官网网上真钱娱乐平台| 百家乐园天将| 怎么玩百家乐官网呀| 大发888存款方式| 木星百家乐官网的玩法技巧和规则 | 百家乐官网园sun811| 澳门百家乐群代理| 百家乐官网塑料扑克牌盒| 威尼斯人娱乐官方网站| 百家乐官网的最佳玩| 顶级赌场 足彩分析| 百家乐官网赌场| 百家乐官网| 百家乐赌场策略论坛| 百家乐官网棋牌正式版| 水果老虎机游戏| 百家乐官网作| 赌博粉| ea百家乐系统| 淘金百家乐官网现金网| 威尼斯人娱乐城会员| 百家乐官网作| 武强县| 大发888娱乐城注册lm0| 百家乐官网自动投注| 棋牌评测网| 百家乐象棋赌博| 网络百家乐官网赌博赢钱| 大发888官方授权网| 24分金| 百家乐官网存在千术吗| 大发888娱乐城菲律宾| 百家乐靠什么赢|