Kubernetes的Metrics API和Metrics Server

栏目: 编程工具 · 发布时间: 6年前

内容简介:Kubernetes 1.8关于资源使用情况的metrics(例如容器的CPU和内存),可以通过Metrics API获取到。 前面在做Kubernetes 1.11的升级工作时,Kubernetes 1.11已经废弃heapster那套监控的东东。因此是时候了解一下Kubernetes的Metrics API和Metrics Server了。这里使用Heml来部署metrics-server,chat模板的值文件metrics-server.yaml如下:将其安装到Kubernetes的kube-sys

Kubernetes 1.8关于资源使用情况的metrics(例如容器的CPU和内存),可以通过Metrics API获取到。 前面在做Kubernetes 1.11的升级工作时,Kubernetes 1.11已经废弃heapster那套监控的东东。因此是时候了解一下Kubernetes的Metrics API和Metrics Server了。

Metrics Server的安装

这里使用Heml来部署metrics-server,chat模板的值文件metrics-server.yaml如下:

args:
- --logtostderr
- --kubelet-insecure-tls

将其安装到Kubernetes的kube-system名字空间:

helm install stable/metrics-server \
-n metrics-server \
--namespace kube-system \
-f metrics-server.yaml

部署完成后使用下面的命令查看node相关的指标:

kubectl get --raw "/apis/metrics.k8s.io/v1beta1/nodes"
{"kind":"NodeMetricsList","apiVersion":"metrics.k8s.io/v1beta1","metadata":{"selfLink":"/apis/metrics.k8s.io/v1beta1/nodes"},"items":[]}

没有获取到信息,此时查看metric-server容器的日志,有下面的错误:

E1003 05:46:13.757009       1 manager.go:102] unable to fully collect metrics: [unable to fully scrape metrics from source kubelet_summary:node1: unable to fetch metrics from Kubelet node1 (node1): Get https://node1:10250/stats/summary/: dial tcp: lookup node1 on 10.96.0.10:53: no such host, unable to fully scrape metrics from source kubelet_summary:node2: unable to fetch metrics from Kubelet node2 (node2): Get https://node2:10250/stats/summary/: dial tcp: lookup node2 on 10.96.0.10:53: read udp 10.244.1.6:45288->10.96.0.10:53: i/o timeout]

可以看到metrics-server在从kubelet的10250端口获取信息时,使用的是hostname,而因为node1和node2是一个独立的Kubernetes演示环境,只是修改了这两个节点系统的/etc/hosts文件,而并没有内网的DNS服务器,所以metrics-server中不认识node1和node2的名字。这里我们可以直接修改Kubernetes集群中的coredns的configmap,修改Corefile加入hostnames插件,将Kubernetes的各个节点的主机名加入到hostnames中,这样Kubernetes集群中的所有Pod都可以从CoreDNS中解析各个节点的名字。

kubectl edit configmap coredns -n kube-system

apiVersion: v1
data:
  Corefile: |
    .:53 {
        errors
        health
        hosts {
           192.168.61.11 node1
           192.168.61.12 node2
           fallthrough
        }
        kubernetes cluster.local in-addr.arpa ip6.arpa {
           pods insecure
           upstream
           fallthrough in-addr.arpa ip6.arpa
        }
        prometheus :9153
        proxy . /etc/resolv.conf
        cache 30
        loop
        reload
        loadbalance
    }
kind: ConfigMap

配置修改完毕后重启集群中coredns和metrics-server,确认metrics-server不再有错误日志。

kubectl get --raw "/apis/metrics.k8s.io/v1beta1/nodes"

Metrics API

Metrics Server从Kubernetes集群中每个Node上kubelet的API收集metrics数据。通过Metrics API可以获取Kubernetes资源的Metrics指标,Metrics API挂载 /apis/metrics.k8s.io/ 下。 可以使用 kubectl top 命令访问Metrics API,例如:

kubectl top node
NAME    CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
node1   140m         14%    1285Mi          73%
node2   37m          3%     458Mi           26%
kubectl top pod --all-namespaces
NAMESPACE       NAME                                             CPU(cores)   MEMORY(bytes)
ingress-nginx   nginx-ingress-controller-77fc55d6dd-hmlmt        3m           90Mi
ingress-nginx   nginx-ingress-controller-77fc55d6dd-htms6        2m           84Mi
ingress-nginx   nginx-ingress-default-backend-684f76869d-pxlmz   1m           1Mi
kube-system     coredns-576cbf47c7-mlfcd                         2m           13Mi
kube-system     coredns-576cbf47c7-xgqdd                         2m           10Mi
kube-system     etcd-node1                                       13m          86Mi
kube-system     kube-apiserver-node1                             23m          514Mi
kube-system     kube-controller-manager-node1                    26m          54Mi
kube-system     kube-flannel-ds-amd64-8rcq4                      1m           18Mi
kube-system     kube-flannel-ds-amd64-mhx9t                      2m           14Mi
kube-system     kube-proxy-nljs8                                 2m           30Mi
kube-system     kube-proxy-pjdsj                                 2m           19Mi
kube-system     kube-scheduler-node1                             10m          18Mi
kube-system     kubernetes-dashboard-5746dd4544-gtj65            1m           28Mi
kube-system     metrics-server-8854b78d9-nx9tx                   1m           12Mi
kube-system     tiller-deploy-6f6fd74b68-mc2cw                   1m           27Mi

参考


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Kafka权威指南

Kafka权威指南

Neha Narkhede、Gwen Shapira、Todd Palino / 薛命灯 / 人民邮电出版社 / 2017-12-26 / 69.00元

每个应用程序都会产生数据,包括日志消息、度量指标、用户活动记录、响应消息等。如何移动数据,几乎变得与数据本身一样重要。如果你是架构师、开发者或者产品工程师,同时也是Apache Kafka新手,那么这本实践指南将会帮助你成为流式平台上处理实时数据的专家。 本书由出身于LinkedIn的Kafka核心作者和一线技术人员共同执笔,详细介绍了如何部署Kafka集群、开发可靠的基于事件驱动的微服务,......一起来看看 《Kafka权威指南》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具