Kubernetes(k8s)之资源监控
Posted Tuki_a
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kubernetes(k8s)之资源监控相关的知识,希望对你有一定的参考价值。
资源监控Metrics-Server
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)之资源监控的主要内容,如果未能解决你的问题,请参考以下文章
Kubernetes(k8s)之部署让k8s图形化的Dashboard