一 集群监控
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
提示: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监控方案》