本文首发于本人的知乎专栏。
0 前置要求
请承认你的服务器上已正确安装Docker, Kubernetes, Ingress-Nginx。
关于Ingress-Nginx的运用,能够参阅这篇。
1 Kube-state-metrics
1.1 简介
项目地址:
github.com/kubernetes/…
Kube-state-metrics 是一个与Kubernetes API服务器交互的服务,以取得关于一切API目标的一切细节,如Deployments、Pods、Daemonsets、Statefulsets等。
它主要是以Prometheus格式发生目标,其稳定性与Kubernetes API相同。总的来说,它供给的Kubernetes目标和资源目标是你无法直接从本地Kubernetes监控组件中取得的。
Kube-state-metrics 服务在/metrics
URI上公开了一切的目标。Prometheus 能够抓取Kube-state-metrics 露出的一切目标。
以下是咱们能够从Kube-state-metrics中取得的一些重要目标。
- 节点状况,节点容量(CPU和内存)
- 仿制集的合规性(每个布置的仿制所需的/可用的/不可用的/更新的状况)
- Pod状况(等候、运转、准备等)
- Ingress 目标
- PV、PVC 目标
- Daemonset 和 Statefulset目标
- 资源请求和约束
- Job 和 Cronjob 目标
1.2 布置
我的服务器上的kubernetes版别是v1.19,所以我选用了v2.3.0版别的Kube-state-metrics。
如果你的版别与我相同,你能够直接运用下面的布置文件,否则请自行修改为可用的版别。
# clone布置文件
git clone https://github.com/devopscube/kube-state-metrics-configs.git
# 一键布置
kubectl apply -f kube-state-metrics-configs/
# 检查Deployment的状况
kubectl get deployments kube-state-metrics -n kube-system
如果你在pull k8s.gcr.io/kube-state-metrics/kube-state-metrics:v2.3.0
镜像过程中遇到了问题,能够先pul我上传到Docker Hub的镜像,再重命名:
docker pull placebo0531/kube-state-metrics:v2.3.0
docker tag placebo0531/kube-state-metrics:v2.3.0 k8s.gcr.io/kube-state-metrics/kube-state-metrics:v2.3.0
然后你能够重新布置。
承认状况没有问题今后,能够进入下一步。
2 Prometheus
2.1 简介
Prometheus是一个高扩展性的开源监控框架。它为Kubernetes容器编列平台供给开箱即用的监控功能。别的,在可调查性领域,它正变得越来越盛行,因为它有助于目标和警报。
Prometheus的架构如下:
2.2 布置
git clone https://github.com/Placeboy/kubernetes-prometheus.git
# 创建命名空间
kubectl create namespace monitoring
# 一键布置
kubectl apply -f kubernetes-prometheus
然后拜访http:/prometheus.example.com/prometheus/graph
,应该能够看到如下界面:
点击 Status → Targets,能够看到相似下面的界面:
回到主页,在查找框中输入container_cpu_usage_seconds_total
,点击回车,挑选”Graph”,能够看到曩昔一小时各个容器的CPU运用情况:
现在咱们能够进行最后一项工作——布置Grafana。
3 Grafana
3.1 简介
Grafana是一个开源的轻量级仪表盘工具。它能够与许多数据源集成,如Prometheus、AWS云调查、Stackdriver等。
3.2 布置
git clone https://github.com/Placeboy/kubernetes-grafana.git
# 一键布置
kubectl apply -f kubernetes-grafana
拜访 http://你的服务器IP:32000/
,能够看到如下界面:
用户名和密码都是admin。
登陆成功今后,点击加号,点击Import按钮:
咱们运用ID为8588的模板,点击右边的Load:
在下拉框中挑选prometheus作为数据源,点击下方的Import:
功德圆满!
参阅文章
How To Setup Kube State Metrics On Kubernetes Cluster
How To Setup Prometheus Monitoring On Kubernetes [Tutorial]
How To Setup Grafana On Kubernetes – Beginners Guide