049.Kubernetes集群管理-集群监控Metrics

一 集群监控

1.1 Metrics

Kubernetes的早期版本依靠Heapster来实现完整的性能数据采集和监控功能,Kubernetes从1.8版本开始,性能数据开始以Metrics API的方式提供标准化接口,并且从1.10版本开始将Heapster替换为Metrics Server。在Kubernetes新的监控体系中,Metrics Server用于提供核心指标(Core Metrics),包括Node、Pod的CPU和内存使用指标。
对其他自定义指标(Custom Metrics)的监控则由Prometheus等组件来完成。

二 Metrics部署

2.1 开启聚合层

有关聚合层知识参考:https://blog.csdn.net/liukuan73/article/details/81352637
[root@k8smaster01 ~]# ll /etc/kubernetes/pki/
……
-rw-r--r-- 1 root root 1.1K Dec 2 21:21 front-proxy-client.crt
-rw------- 1 root root 1.7K Dec 2 21:21 front-proxy-client.key
-rw-r--r-- 1 root root 1.1K Dec 2 21:21 front-proxy-ca.crt
……
[root@k8smaster01 study]# vi /etc/kubernetes/manifests/kube-apiserver.yaml
  1 ……
  2     - --runtime-config=api/all=true
  3     - --proxy-client-cert-file=/etc/kubernetes/pki/front-proxy-client.crt
  4     - --proxy-client-key-file=/etc/kubernetes/pki/front-proxy-client.key
  5     - --requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.crt
  6     - --requestheader-allowed-names=front-proxy-client
  7     - --requestheader-extra-headers-prefix=X-Remote-Extra-
  8     - --requestheader-group-headers=X-Remote-Group
  9     - --requestheader-username-headers=X-Remote-User"
 10 ……
 11 
[root@k8smaster01 study]# systemctl restart kubelet.service
提示:所有master节点如上修改为kubeadm部署的Kubernetes中操作,其他部署类似,修改kube-apiserver配置文件即可。

2.2 获取部署文件

[root@k8smaster01 study]# git clone https://github.com/kubernetes-incubator/metrics-server.git

2.3 修改相应文件

[root@k8smaster01 ~]# cd metrics-server/deploy/1.8+/
[root@k8smaster01 1.8+]# vi metrics-server-deployment.yaml
  1 ……
  2         image: mirrorgooglecontainers/metrics-server-amd64:v0.3.6	#修改为国内源
  3         command:
  4         - /metrics-server
  5         - --metric-resolution=30s
  6         - --kubelet-insecure-tls
  7         - --kubelet-preferred-address-types=InternalIP,Hostname,InternalDNS,ExternalDNS,ExternalIP	#添加如上command
  8 ……
  9 

2.4 正式部署

[root@k8smaster01 1.8+]# kubectl apply -f .
[root@k8smaster01 1.8+]# kubectl -n kube-system get pods -l k8s-app=metrics-server
NAME READY STATUS RESTARTS AGE
metrics-server-68646b6dd9-lktrb 1/1 Running 0 3m14s
[root@k8smaster01 1.8+]# kubectl -n kube-system logs -l k8s-app=metrics-server -f #查看日志

2.5 查看资源监控

[root@k8smaster01 ~]# kubectl top nodes
[root@k8smaster01 ~]# kubectl top pods --all-namespaces
clipboard
提示:Metrics Server提供的数据也可以供HPA控制器使用,以实现基于CPU使用率或内存使用值的Pod自动扩缩容功能。
部署参考:https://linux48.com/container/2019-11-13-metrics-server.html
有关metrics更多部署参考:
https://kubernetes.io/docs/tasks/debug-application-cluster/resource-metrics-pipeline/
开启开启API Aggregation参考:
https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/apiserver-aggregation/
API Aggregation介绍参考:
https://kubernetes.io/docs/tasks/access-kubernetes-api/configure-aggregation-layer/

三 Prometheus+Grafana

3.1 Prometheus+Grafana监控方案

参考《050.集群管理-Prometheus+Grafana监控方案》
posted @ 2020-04-10 12:05  木二  阅读(730)  评论(0编辑  收藏  举报