Kubernetes(k8s)之资源监控

Posted Tuki_a

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kubernetes(k8s)之资源监控相关的知识,希望对你有一定的参考价值。

Metrics-Server

Metrics-Server是集群核心监控数据的聚合器,用来替换之前的heapster。
容器相关的 Metrics 主要来自于 kubelet 内置的 cAdvisor 服务,有了Metrics-Server之后,用户就可以通过标准的 Kubernetes API 来访问到这些监控数据
Metrics API 只可以查询当前的度量数据,并不保存历史数据
Metrics API URI 为 /apis/metrics.k8s.io/,在 k8s.io/metrics 维护。
必须部署 Metrics-server 才能使用该 API,Metrics-server 通过调用 Kubelet Summary API 获取数据。

Metrics-server属于Core metrics(核心指标),提供API metrics.k8s.io,仅提供Node和Pod的CPU和内存使用情况。而其他Custom Metrics(自定义指标)由Prometheus等组件来完成。

演示环境

server1:172.25.38.1	harbor仓库端
server2:172.25.38.2	k8s master端
server3:172.25.38.3	k8s node端
server4:172.25.38.4	k8s node端

Metrics-Server部署

先在仓库端获取镜像并上传到仓库
资源下载:https://github.com/kubernetes-incubator/metrics-server

新建一个目录,获取配置文件,执行如下命令:

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

修改配置文件,将镜像地址写为自己的

应用文件

监控的pod创建出来了,但有错

查看日志看是怎么回事kubectl logs metrics-server-6454465dcc-s55q4 -n kube-system,如下图是因为监听443端口被拒绝,没有权限

删掉pod等

修改端口为4443(因为要映射到真机端口,所以要大于1000,1000以下的端口在真机需要root权限才可以,而k8s操作是用的k8s账户)

重新应用又出现了如下错误,是因为没有证书
#Metric Server 支持一个参数 --kubelet-insecure-tls,可以跳过这一检查,然而官方也明说了,这种方式不推荐生产使用。

启用TLS Bootstrap 证书签发:在每一个节点(包括master)都做这个操作

编辑文件vim /var/lib/kubelet/config.yaml,在最后加入如图内容后重启

证书签名请求文件未通过的都通过了

这时再看pod,监控已经可以正常运行了

监控服务正常被调度,运行正常

使用kubectl top node命令监控节点状态

切换一个namespaces监控

下图命令可以查看节点详细信息

以上是关于Kubernetes(k8s)之资源监控的主要内容,如果未能解决你的问题,请参考以下文章

k8s之监控利器Weave Scope详解

Kubernetes(k8s)之部署让k8s图形化的Dashboard

k8s容器资源限制,资源监控

k8s容器资源限制,资源监控

云原生之kubernetes实战在k8s集群下部署Weave Scope监控平台

k8s资源监控metrics-server