Kubernetes手記(21)- 新一代監(jiān)控架構(gòu)

      網(wǎng)友投稿 960 2025-04-01

      二十一 新一代監(jiān)控架構(gòu)


      21.1 核心指標(biāo)流水線

      由 kubelet、metrics-server 以及由 apiserver 提供的 api 組成;主要 CPU累計使用率、內(nèi)存實時使用率、POD 資源占用率及容器的磁盤占用率。

      它是一個 apiserver ,它僅僅用于服務(wù)于核心指標(biāo)服務(wù)的,它不是 k8s 的組成部分,僅僅是托管在 k8s 之上 POD。

      k8s 的 apiserver 和 metrics-server 的 apiserver 前端應(yīng)該加一個代理服務(wù)器,它就是一個聚合器,把來自多個不同的 apiserver 聚合成一個。它就是 kube-aggregator,經(jīng)過它聚合后的 api 我么將通過 /apis/metrics.k8s.io/v1/beta1 來獲取。

      21.2監(jiān)控流水線

      用于從系統(tǒng)收集各種指標(biāo)數(shù)據(jù)并提供終端用戶、存儲系統(tǒng)以及 HPA,它包含核心指標(biāo)和非核心指標(biāo),非核心指標(biāo)不能被 k8s 所理解,k8s-prometheus-adapter 就是轉(zhuǎn)換為 k8s 所理解格式的一個插件

      prometheus

      CNCF下的第二大項目,收集各種維度的指標(biāo),

      它收集的信息,來決定是否進(jìn)行 HPA(自動伸縮) 的一個標(biāo)準(zhǔn)

      prometheus 既作為監(jiān)控系統(tǒng)使用,也作為特殊指標(biāo)的提供者來使用,但是如果想要作為特殊指標(biāo)提供給 HPA 這樣的機(jī)制使用,需要轉(zhuǎn)換格式,而這個轉(zhuǎn)換為特殊指標(biāo)的一個插件叫:k8s-prometheus-adapter。

      21.3 安裝 metrics-server

      官方倉庫,這里我使用第一個

      https://github.com/kubernetes-incubator/metrics-server/tree/master/deploy/1.8%2B # 插件官方地址 https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/metrics-server # k8s 官方插件示例

      安裝部署相關(guān)的文件:/tree/master/deploy/,修改 metrics-server-deployment.yaml 文件

      containers: - name: metrics-server image: k8s.gcr.io/metrics-server-amd64:v0.3.1 imagePullPolicy: Always args: # 添加參數(shù) - '--kubelet-preferred-address-types=InternalIP' # 不使用主機(jī)名,使用 IP - '--kubelet-insecure-tls' # 不驗證客戶端證書 volumeMounts: - name: tmp-dir mountPath: /tmp

      $ kubectl apply -f ./

      查看 POD 和 Service 的啟動情況

      $ kubectl get pods -n kube-system $ kubectl get svc -n kube-system

      查看 API 中是否存在,metrics.k8s.io/v1beta1

      $ kubectl api-versions

      通過測試接口獲取監(jiān)控數(shù)據(jù),kubectl proxy --port 8080,kubectl top 也可以正常使用了

      $ curl http://127.0.0.1:8080/apis/metrics.k8s.io/v1beta1 $ kubectl top nodes

      21.4 安裝 prometheus

      工作原理

      - prometheus 通過 pull metrilcs 指令從每個 Jobs/exporters 拉取數(shù)據(jù) - 其他的 short-lived jobs 也可以通過向 pushgateway 主動發(fā)送數(shù)據(jù),由 prometheus 被動接收 - prometheus 自身實現(xiàn)了一個時間序列數(shù)據(jù)庫,會將得到的數(shù)據(jù)存儲到其中 - 在 k8s 需要使用 service discovery 來發(fā)現(xiàn)服務(wù)取得需要監(jiān)控的目標(biāo) - 可以使用 apiclient、webui、Grafana、來將 prometheus 中的數(shù)據(jù)展示出來 - 當(dāng)需要報警的時候還會推送給 alertmanager 這個組件由這個組件來發(fā)送報警

      部署文件

      https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/prometheus https://github.com/iKubernetes/k8s-prom

      21.5 HPA命令行方式

      創(chuàng)建 POD 和 service

      kubectl run myapp --image=ikubernetes/myapp:v1 --replicas=1 --requests='cpu=50m',memory='256Mi' --limits='cpu=50m,memory=256Mi' --labels='app=myapp' --expose --port=80

      創(chuàng)建 HPA 控制器

      kubectl autoscale deployment myapp --min=1 --max=8 --cpu-percent=60

      查看 HPA 控制器,kubectl get hpa

      NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE myapp Deployment/myapp 0%/60% 1 8 1 17s

      開始壓力測試

      ab -c 100 -n 5000000 http://172.16.100.102:32749/index.html

      Kubernetes手記(21)- 新一代監(jiān)控架構(gòu)

      測試結(jié)果,自動擴(kuò)容生效

      $ kubectl get hpa -w NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE myapp Deployment/myapp 0%/60% 1 8 1 7m35s myapp Deployment/myapp 34%/60% 1 8 1 9m58s myapp Deployment/myapp 102%/60% 1 8 1 11m myapp Deployment/myapp 102%/60% 1 8 2 11m myapp Deployment/myapp 96%/60% 1 8 2 12m myapp Deployment/myapp 96%/60% 1 8 4 12m myapp Deployment/myapp 31%/60% 1 8 4 13m myapp Deployment/myapp 26%/60% 1 8 4 14m myapp Deployment/myapp 0%/60% 1 8 4 15m myapp Deployment/myapp 0%/60% 1 8 4 17m myapp Deployment/myapp 0%/60% 1 8 3 18m $ kubectl get pods NAME READY STATUS RESTARTS AGE myapp-64bf6764c5-45qwj 0/1 Terminating 0 7m1s myapp-64bf6764c5-72crv 1/1 Running 0 20m myapp-64bf6764c5-gmz6c 1/1 Running 0 8m1s

      21.6 HPA清單

      清單定義詳見:kubectl explain hpa.spec

      maxReplicas # 自動伸縮的 POD 數(shù)量上限 minReplicas # 自動伸縮的 POD 數(shù)量下限 scaleTargetRef # 其他的伸縮指標(biāo) apiVersion # 指標(biāo) api 版本 kind # 指標(biāo)類型 name # 可用指標(biāo) targetCPUUtilizationPercentage # 根據(jù)目標(biāo) 平均 CPU 利用率閾值評估自動伸縮

      示例清單,它實現(xiàn)了對 myapp 這個 deployment 控制器下的 POD 進(jìn)行自動擴(kuò)容

      apiVersion: autoscaling/v2beta1 kind: HorizontalPodAutoscaler metadata: name: myapp-hpa-v2 spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: myapp minReplicas: 1 maxReplicas: 10 metrics: - type: Resource resource: name: cpu targetAverageUtilization: 55 - type: Resource resource: name: memory targetAverageValue: 50Mi

      其他

      自己將手記發(fā)在:https://github.com/redhatxl/awesome-kubernetes-notes

      歡迎一鍵三連

      Kubernetes

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:在wps表格中怎樣固定某一行(wps如何把表格第一行固定)
      下一篇:excel水印(excel水印頁碼怎么設(shè)置
      相關(guān)文章
      婷婷亚洲综合五月天小说在线| 亚洲国产精品成人综合色在线婷婷| 亚洲人成电影网站久久| 亚洲高清在线播放| 亚洲成A∨人片在线观看不卡| 亚洲一区二区女搞男| 亚洲色欲久久久久综合网| 精品亚洲成a人在线观看| 久久亚洲中文字幕无码| 亚洲欧美国产日韩av野草社区| 国产亚洲精品bv在线观看| 亚洲精品人成网在线播放影院| 亚洲综合久久精品无码色欲| 亚洲砖码砖专无区2023| 亚洲乱人伦中文字幕无码| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 亚洲综合无码一区二区痴汉| 国内精品久久久久影院亚洲| 一本色道久久88亚洲精品综合| 中国亚洲呦女专区| 亚洲日韩看片无码电影| 亚洲av综合av一区二区三区| 亚洲av第一网站久章草| 国产区图片区小说区亚洲区| 亚洲区小说区图片区| 中文字幕精品亚洲无线码一区 | 亚洲乱码日产一区三区| 亚洲精品无码永久中文字幕| 亚洲Av无码精品色午夜| 亚洲卡一卡2卡三卡4卡无卡三| 亚洲码在线中文在线观看| 亚洲五月综合网色九月色| 亚洲精品无码中文久久字幕| 国产偷国产偷亚洲高清在线 | 亚洲色偷偷偷鲁综合| 亚洲天堂一区二区| 亚洲人成网站18禁止久久影院| 亚洲综合一区二区三区四区五区| 国产综合激情在线亚洲第一页| 亚洲性日韩精品一区二区三区| 亚洲人成人网站色www|