成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

容器監(jiān)控實(shí)踐—Custom Metrics

laznrbfe / 1361人閱讀

摘要:自定義指標(biāo)由提供,由此可支持任意采集到的指標(biāo)。文件清單的,收集級(jí)別的監(jiān)控?cái)?shù)據(jù)監(jiān)控服務(wù)端,從拉數(shù)據(jù)并存儲(chǔ)為時(shí)序數(shù)據(jù)。本文為容器監(jiān)控實(shí)踐系列文章,完整內(nèi)容見(jiàn)

概述

上文metric-server提到,kubernetes的監(jiān)控指標(biāo)分為兩種:

Core metrics(核心指標(biāo)):從 Kubelet、cAdvisor 等獲取度量數(shù)據(jù),再由metrics-server提供給 Dashboard、HPA 控制器等使用。

Custom Metrics(自定義指標(biāo)):由Prometheus Adapter提供API custom.metrics.k8s.io,由此可支持任意Prometheus采集到的指標(biāo)。

核心指標(biāo)只包含node和pod的cpu、內(nèi)存等,一般來(lái)說(shuō),核心指標(biāo)作HPA已經(jīng)足夠,但如果想根據(jù)自定義指標(biāo):如請(qǐng)求qps/5xx錯(cuò)誤數(shù)來(lái)實(shí)現(xiàn)HPA,就需要使用自定義指標(biāo)了,目前Kubernetes中自定義指標(biāo)一般由Prometheus來(lái)提供,再利用k8s-prometheus-adpater聚合到apiserver,實(shí)現(xiàn)和核心指標(biāo)(metric-server)同樣的效果。

以下是官方metrics的項(xiàng)目介紹:

Resource Metrics API(核心api)

Heapster

Metrics Server

Custom Metrics API:

Prometheus Adapter

Microsoft Azure Adapter

Google Stackdriver

Datadog Cluster Agent

部署

Prometheus可以采集其它各種指標(biāo),但是prometheus采集到的metrics并不能直接給k8s用,因?yàn)閮烧邤?shù)據(jù)格式不兼容,因此還需要另外一個(gè)組件(kube-state-metrics),將prometheus的metrics數(shù)據(jù)格式轉(zhuǎn)換成k8s API接口能識(shí)別的格式,轉(zhuǎn)換以后,因?yàn)槭亲远xAPI,所以還需要用Kubernetes aggregator在主API服務(wù)器中注冊(cè),以便直接通過(guò)/apis/來(lái)訪問(wèn)。

文件清單:

node-exporter:prometheus的export,收集Node級(jí)別的監(jiān)控?cái)?shù)據(jù)

prometheus:監(jiān)控服務(wù)端,從node-exporter拉數(shù)據(jù)并存儲(chǔ)為時(shí)序數(shù)據(jù)。

kube-state-metrics:將prometheus中可以用PromQL查詢(xún)到的指標(biāo)數(shù)據(jù)轉(zhuǎn)換成k8s對(duì)應(yīng)的數(shù)

k8s-prometheus-adpater:聚合進(jìn)apiserver,即一種custom-metrics-apiserver實(shí)現(xiàn)

開(kāi)啟Kubernetes aggregator功能(參考上文metric-server)

k8s-prometheus-adapter的部署文件:

其中創(chuàng)建了一個(gè)叫做cm-adapter-serving-certs的secret,包含兩個(gè)值: serving.crt和serving.key,這是由apiserver信任的證書(shū)。kube-prometheus項(xiàng)目中的gencerts.sh和deploy.sh腳本可以創(chuàng)建這個(gè)secret

包括secret的所有資源,都在custom-metrics命名空間下,因此需要kubectl create namespace custom-metrics

以上組件均部署成功后,可以通過(guò)url獲取指標(biāo)

基于自定義指標(biāo)的HPA

使用prometheus后,pod有一些自定義指標(biāo),如http_request請(qǐng)求數(shù)

創(chuàng)建一個(gè)HPA,當(dāng)請(qǐng)求數(shù)超過(guò)每秒10次時(shí)進(jìn)行自動(dòng)擴(kuò)容

apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
  name: podinfo
spec:
  scaleTargetRef:
    apiVersion: extensions/v1beta1
    kind: Deployment
    name: podinfo
  minReplicas: 2
  maxReplicas: 10
  metrics:
  - type: Pods
    pods:
      metricName: http_requests
      targetAverageValue: 10

查看hpa

$ kubectl get hpa

NAME      REFERENCE            TARGETS     MINPODS   MAXPODS   REPLICAS   AGE
podinfo   Deployment/podinfo   899m / 10   2         10        2          1m

對(duì)pod進(jìn)行施壓

#install hey
$ go get -u github.com/rakyll/hey

#do 10K requests rate limited at 25 QPS
$ hey -n 10000 -q 5 -c 5 http://PODINFO_SVC_IP:9898/healthz

HPA發(fā)揮作用:

Events:
  Type    Reason             Age   From                       Message
  ----    ------             ----  ----                       -------
  Normal  SuccessfulRescale  5m    horizontal-pod-autoscaler  New size: 3; reason: pods metric http_requests above target
  Normal  SuccessfulRescale  21s   horizontal-pod-autoscaler  New size: 2; reason: All metrics below target
關(guān)于k8s-prometheus-adapter

其實(shí)k8s-prometheus-adapter既包含自定義指標(biāo),又包含核心指標(biāo),即如果按照了prometheus,且指標(biāo)都采集完整,k8s-prometheus-adapter可以替代metrics server。

在1.6以上的集群中,k8s-prometheus-adapter可以適配autoscaling/v2的HPA

因?yàn)橐话闶遣渴鹪诩簝?nèi),所以k8s-prometheus-adapter默認(rèn)情況下,使用in-cluster的認(rèn)證方式,以下是主要參數(shù):

lister-kubeconfig: 默認(rèn)使用in-cluster方式

metrics-relist-interval: 更新metric緩存值的間隔,最好大于等于Prometheus 的scrape interval,不然數(shù)據(jù)會(huì)為空

prometheus-url: 對(duì)應(yīng)連接的prometheus地址

config: 一個(gè)yaml文件,配置如何從prometheus獲取數(shù)據(jù),并與k8s的資源做對(duì)應(yīng),以及如何在api接口中展示。

config文件的內(nèi)容示例(參考文檔)

rules:
    - seriesQuery: "{__name__=~"^container_.*",container_name!="POD",namespace!="",pod_name!=""}"
      seriesFilters: []
      resources:
        overrides:
          namespace:
            resource: namespace
          pod_name:
            resource: pod
      name:
        matches: ^container_(.*)_seconds_total$
        as: ""
      metricsQuery: sum(rate(<<.Series>>{<<.LabelMatchers>>,container_name!="POD"}[1m])) by (<<.GroupBy>>)
    - seriesQuery: "{__name__=~"^container_.*",container_name!="POD",namespace!="",pod_name!=""}"
      seriesFilters:
      - isNot: ^container_.*_seconds_total$
      resources:
        overrides:
          namespace:
            resource: namespace
          pod_name:
            resource: pod
      name:
        matches: ^container_(.*)_total$
        as: ""
      metricsQuery: sum(rate(<<.Series>>{<<.LabelMatchers>>,container_name!="POD"}[1m])) by (<<.GroupBy>>)
    - seriesQuery: "{__name__=~"^container_.*",container_name!="POD",namespace!="",pod_name!=""}"
      seriesFilters:
      - isNot: ^container_.*_total$
      resources:
        overrides:
          namespace:
            resource: namespace
          pod_name:
            resource: pod
      name:
        matches: ^container_(.*)$
        as: ""
      metricsQuery: sum(<<.Series>>{<<.LabelMatchers>>,container_name!="POD"}) by (<<.GroupBy>>)
問(wèn)題

為什么我看不到自定義的metric

檢查下config配置文件,是否有選擇你的metric

檢查下采集的信息是否正確,如foo{namespace="somens",deployment="bar"},foo這個(gè)名稱(chēng)的數(shù)據(jù)來(lái)自于somens的命名空間+bar這個(gè)部署

啟動(dòng)的時(shí)候加上--v=6,可以打出adapter實(shí)際的query信息

參考k8s-prometheus-adapter,可以實(shí)現(xiàn)自己的adapter,比如獲取已有監(jiān)控系統(tǒng)的指標(biāo),匯聚到api-server中,k8s-prometheus-adapter的實(shí)現(xiàn)邏輯會(huì)在后續(xù)文章中專(zhuān)門(mén)來(lái)講。

本文為容器監(jiān)控實(shí)踐系列文章,完整內(nèi)容見(jiàn):container-monitor-book

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/32849.html

相關(guān)文章

  • 容器監(jiān)控實(shí)踐Custom Metrics

    摘要:自定義指標(biāo)由提供,由此可支持任意采集到的指標(biāo)。文件清單的,收集級(jí)別的監(jiān)控?cái)?shù)據(jù)監(jiān)控服務(wù)端,從拉數(shù)據(jù)并存儲(chǔ)為時(shí)序數(shù)據(jù)。本文為容器監(jiān)控實(shí)踐系列文章,完整內(nèi)容見(jiàn) 概述 上文metric-server提到,kubernetes的監(jiān)控指標(biāo)分為兩種: Core metrics(核心指標(biāo)):從 Kubelet、cAdvisor 等獲取度量數(shù)據(jù),再由metrics-server提供給 Dashboar...

    DangoSky 評(píng)論0 收藏0
  • 容器監(jiān)控實(shí)踐Metrics Server

    摘要:出現(xiàn)后,新的監(jiān)控架構(gòu)將變成上圖的樣子核心流程黑色部分這是正常工作所需要的核心度量,從等獲取度量數(shù)據(jù),再由提供給控制器等使用。本文為容器監(jiān)控實(shí)踐系列文章,完整內(nèi)容見(jiàn) 概述 從 v1.8 開(kāi)始,資源使用情況的監(jiān)控可以通過(guò) Metrics API的形式獲取,具體的組件為Metrics Server,用來(lái)替換之前的heapster,heapster從1.11開(kāi)始逐漸被廢棄。 Metrics-S...

    libxd 評(píng)論0 收藏0
  • 容器監(jiān)控實(shí)踐Metrics Server

    摘要:出現(xiàn)后,新的監(jiān)控架構(gòu)將變成上圖的樣子核心流程黑色部分這是正常工作所需要的核心度量,從等獲取度量數(shù)據(jù),再由提供給控制器等使用。本文為容器監(jiān)控實(shí)踐系列文章,完整內(nèi)容見(jiàn) 概述 從 v1.8 開(kāi)始,資源使用情況的監(jiān)控可以通過(guò) Metrics API的形式獲取,具體的組件為Metrics Server,用來(lái)替換之前的heapster,heapster從1.11開(kāi)始逐漸被廢棄。 Metrics-S...

    lmxdawn 評(píng)論0 收藏0
  • 容器監(jiān)控實(shí)踐—開(kāi)篇

    摘要:方案匯總一開(kāi)源方案采集展示報(bào)警二商業(yè)方案三云廠商騰訊云阿里云百度云華為云四主機(jī)監(jiān)控五日志監(jiān)控六服務(wù)監(jiān)控七存儲(chǔ)后端腦圖本文為容器監(jiān)控實(shí)踐系列文章,完整內(nèi)容見(jiàn) 概述 隨著越來(lái)越多的線上服務(wù)docker化,對(duì)容器的監(jiān)控、報(bào)警變得越來(lái)越重要,容器監(jiān)控有多種形態(tài),有些是開(kāi)源的(如promethues),而另一些則是商業(yè)性質(zhì)的(如Weave),有些是集成在云廠商一鍵部署的(Rancher、谷歌云)...

    Zack 評(píng)論0 收藏0
  • 容器監(jiān)控實(shí)踐—開(kāi)篇

    摘要:方案匯總一開(kāi)源方案采集展示報(bào)警二商業(yè)方案三云廠商騰訊云阿里云百度云華為云四主機(jī)監(jiān)控五日志監(jiān)控六服務(wù)監(jiān)控七存儲(chǔ)后端腦圖本文為容器監(jiān)控實(shí)踐系列文章,完整內(nèi)容見(jiàn) 概述 隨著越來(lái)越多的線上服務(wù)docker化,對(duì)容器的監(jiān)控、報(bào)警變得越來(lái)越重要,容器監(jiān)控有多種形態(tài),有些是開(kāi)源的(如promethues),而另一些則是商業(yè)性質(zhì)的(如Weave),有些是集成在云廠商一鍵部署的(Rancher、谷歌云)...

    hellowoody 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<