k8s metrics-server 輕量化監(jiān)控

metrics-server 是用來取代heapster狼速,負責從kubelet中采集數(shù)據(jù), 并通過Metrics API在Kubernetes Apiserver中暴露它們酝蜒。

metrics-server 采集node 和pod 的cpu/mem誊辉,數(shù)據(jù)存在容器本地,不做持久化亡脑。這些數(shù)據(jù)的使用場景有 kubectl top 和scheduler 調度堕澄、hpa 彈性伸縮,以及原生的dashboard 監(jiān)控數(shù)據(jù)展示霉咨。

metrics-server 和prometheus 沒有半毛錢關系蛙紫。 也沒有任何數(shù)據(jù)或者接口互相依賴關系。

prometheus 能力更強途戒,也更重惊来,擁有更多的監(jiān)控指標以及自定義監(jiān)控指標,可以配合grafana 面板更好的展示數(shù)據(jù)棺滞,配合alertmanager 實現(xiàn)告警裁蚁。介紹見之前內容
https://github.com/cai11745/k8s-ocp-yaml/blob/master/prometheus/2019-10-22-prometheus-1-install-and-metricsIngress.md

metrics-server 指標少矢渊,但是更輕量,適用于簡單場景的容器與節(jié)點數(shù)據(jù)監(jiān)控枉证。

安裝 metrics-server

官網(wǎng) https://github.com/kubernetes-sigs/metrics-server

修改下鏡像地址矮男,默認的k8s.grc.io 國內拉取不到,換成阿里云
registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server-amd64:v0.3.6

[root@master ~]# wget https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.6/components.yaml        
[root@master ~]# vim components.yaml 
# 修改image
# registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server-amd64:v0.3.6   
[root@master ~]# kubectl apply -f components.yaml 

使用kubectl top 查看pod 和node 的資源使用情況室谚,獲取不到數(shù)據(jù)

[root@master ~]# kubectl top node        
error: metrics not available yet
[root@master ~]# kubectl top pod
W0414 13:34:35.193688   13720 top_pod.go:266] Metrics not available for pod default/centos-758b7556f5-542wl, age: 299h19m20.193680607s
error: Metrics not available for pod default/centos-758b7556f5-542wl, age: 299h19m20.193680607s

查看metrics-server pod 日志

[root@master ~]# kubectl -n kube-system logs metrics-server-58c885686f-nlp25 
...
E0414 05:34:32.752194       1 reststorage.go:135] unable to fetch node metrics for node "node1": no metrics known for node
E0414 05:34:32.752208       1 reststorage.go:135] unable to fetch node metrics for node "master": no metrics known for node
E0414 05:34:35.186237       1 reststorage.go:160] unable to fetch pod metrics for pod default/tomtest-86f7667d85-hxnzl: no metrics known for pod
E0414 05:34:35.186247       1 reststorage.go:160] unable to fetch pod metrics for pod default/centos-758b7556f5-542wl: no metrics known for pod

提示 無法解析節(jié)點的主機名毡鉴,是metrics-server 這個容器不能通過CoreDNS 解析各Node的主機名,metrics-server 連節(jié)點時默認是連接節(jié)點的主機名秒赤,需要加個參數(shù)猪瞬,讓它連接節(jié)點的IP,而不是使用主機名:
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP

修改yaml 文件入篮,增加這兩行

        image: k8s.gcr.io/metrics-server-amd64:v0.3.6
        imagePullPolicy: IfNotPresent
        args:
          - --cert-dir=/tmp
          - --secure-port=4443
          - --kubelet-insecure-tls
          - --kubelet-preferred-address-types=InternalIP

導入文件陈瘦,過一會就正常了

[root@master ~]# kubectl apply -f components.yaml 

[root@master ~]# kubectl top node                     
NAME     CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%   
master   101m         5%     971Mi           17%       
node1    72m          1%     914Mi           3%        
[root@master ~]# kubectl top pod --all-namespaces
NAMESPACE       NAME                                       CPU(cores)   MEMORY(bytes)   
ingress-nginx   nginx-ingress-controller-c8848f54b-z2fwd   4m           181Mi           
kube-system     calico-kube-controllers-77c4b7448-n92dt    1m           14Mi            
kube-system     calico-node-nqltv                          12m          53Mi            
kube-system     calico-node-rf9gh                          10m          49Mi            
kube-system     coredns-6955765f44-579bp                   2m           13Mi            
kube-system     coredns-6955765f44-7h4vh                   1m           13Mi            
kube-system     etcd-master                                12m          108Mi           
kube-system     kube-apiserver-master                      19m          336Mi           
kube-system     kube-controller-manager-master             5m           42Mi            
kube-system     kube-proxy-24k9w                           1m           22Mi            
kube-system     kube-proxy-w48qf                           1m           17Mi            
kube-system     kube-scheduler-master                      2m           18Mi            
kube-system     metrics-server-6ffdb54684-lg77c            1m           14Mi  

接口測試

metrics-server 將node 和pod 的監(jiān)控數(shù)據(jù)通過k8s 標準api 暴露出來。

All endpoints are GET endpoints, rooted at /apis/metrics/v1alpha1/. There won't be support for the other REST methods.

The list of supported endpoints:

/nodes - all node metrics; type []NodeMetrics
/nodes/{node} - metrics for a specified node; type NodeMetrics
/namespaces/{namespace}/pods - all pod metrics within namespace with support for all-namespaces; type []PodMetrics
/namespaces/{namespace}/pods/{pod} - metrics for a specified pod; type PodMetrics
The following query parameters are supported:

labelSelector - restrict the list of returned objects by labels (list endpoints only)

通過kubectl proxy 命令暴露api 端口潮售,默認8080痊项,非加密端口。如果端口被用了就加上-p 參數(shù)指定一個端口

kubectl proxy -p 8002

# 再開一個終端酥诽,測試訪問
[root@master ~]# kubectl api-resources |grep metrics                        
nodes                                          metrics.k8s.io                 false        NodeMetrics
pods                                           metrics.k8s.io                 true         PodMetrics

[root@master ~]# curl 127.0.0.1:8002/ |grep metrics
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  4963    0  4963    0     0  4822k      0 --:--:-- --:--:-- --:--:-- 4846k
    "/apis/metrics.k8s.io",
    "/apis/metrics.k8s.io/v1beta1",
    "/metrics",

# 獲取所有node    
[root@master ~]# curl 127.0.0.1:8002/apis/metrics.k8s.io/v1beta1/nodes

# 某個pod
[root@master ~]# curl 127.0.0.1:8002/apis/metrics.k8s.io/v1beta1/namespaces/kube-system/pods/kube-apiserver-master
{
  "kind": "PodMetrics",
  "apiVersion": "metrics.k8s.io/v1beta1",
  "metadata": {
    "name": "kube-apiserver-master",
    "namespace": "kube-system",
    "selfLink": "/apis/metrics.k8s.io/v1beta1/namespaces/kube-system/pods/kube-apiserver-master",
    "creationTimestamp": "2020-04-14T15:25:04Z"
  },
  "timestamp": "2020-04-14T15:24:10Z",
  "window": "30s",
  "containers": [
    {
      "name": "kube-apiserver",
      "usage": {
        "cpu": "19383740n",
        "memory": "344704Ki"
      }
    }
  ]
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末鞍泉,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子肮帐,更是在濱河造成了極大的恐慌咖驮,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件训枢,死亡現(xiàn)場離奇詭異游沿,居然都是意外死亡,警方通過查閱死者的電腦和手機肮砾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進店門诀黍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人仗处,你說我怎么就攤上這事眯勾。” “怎么了婆誓?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵吃环,是天一觀的道長。 經(jīng)常有香客問我洋幻,道長郁轻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮好唯,結果婚禮上竭沫,老公的妹妹穿的比我還像新娘。我一直安慰自己骑篙,他們只是感情好蜕提,可當我...
    茶點故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著靶端,像睡著了一般谎势。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上杨名,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天脏榆,我揣著相機與錄音,去河邊找鬼台谍。 笑死须喂,一個胖子當著我的面吹牛,可吹牛的內容都是我干的典唇。 我是一名探鬼主播镊折,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼胯府,長吁一口氣:“原來是場噩夢啊……” “哼介衔!你這毒婦竟也來了?” 一聲冷哼從身側響起骂因,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤炎咖,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后寒波,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體乘盼,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年俄烁,在試婚紗的時候發(fā)現(xiàn)自己被綠了绸栅。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡页屠,死狀恐怖粹胯,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情辰企,我是刑警寧澤风纠,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站牢贸,受9級特大地震影響竹观,放射性物質發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一臭增、第九天 我趴在偏房一處隱蔽的房頂上張望懂酱。 院中可真熱鬧,春花似錦速址、人聲如沸玩焰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽昔园。三九已至,卻和暖如春并炮,著一層夾襖步出監(jiān)牢的瞬間默刚,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工逃魄, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留荤西,地道東北人。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓伍俘,卻偏偏與公主長得像邪锌,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子癌瘾,可洞房花燭夜當晚...
    茶點故事閱讀 45,047評論 2 355

推薦閱讀更多精彩內容