前言

监控也是运维体系中的重要的一环,云原生的监控体系基本是基于Promethus为核心的体系打造,这里我们使用kube-promethus项目

kube-prometheus 是一整套监控解决方案,它使用 Prometheus 采集集群指标,Grafana 做展示,包含如下组件:

  • The Prometheus Operator
  • Highly available Prometheus
  • Highly available Alertmanager
  • Prometheus node-exporter
  • Prometheus Adapter for Kubernetes Metrics APIs (k8s-prometheus-adapter)
  • kube-state-metrics
  • Grafana

部署

安装

下载,注意不同版本对应不同Kubernetes版本,注意切换版本

git clone https://github.com/prometheus-operator/kube-prometheus.git

进入kube-promethus文件夹,安装

1
2
3
kubectl apply -f manifests/setup
# 等到operator pod正常之后,下面需要下载很多镜像,可以配置镜像加速或提前下载
kubectl apply -f manifests/

如果使用其他镜像仓库,可以用如下命令替换: sed -i -e ’s_quay.io_quay.azk8s.cn_' manifests/*.yaml manifests/setup/*.yaml

查看安装完成状态

[root@node2 ~]# kubectl -n monitoring get po
NAME                                   READY   STATUS    RESTARTS   AGE
alertmanager-main-0                    2/2     Running   0          159m
alertmanager-main-1                    2/2     Running   0          3h39m
alertmanager-main-2                    2/2     Running   0          3h39m
grafana-69dfc7b6c8-x2txm               1/1     Running   0          3h39m
kube-state-metrics-54c596776b-2vxnn    3/3     Running   0          3h39m
node-exporter-8rfrx                    2/2     Running   0          154m
node-exporter-fd546                    2/2     Running   0          3h11m
node-exporter-hkq4t                    2/2     Running   0          151m
node-exporter-nj5pw                    2/2     Running   0          3h6m
node-exporter-qmcns                    2/2     Running   0          3h39m
prometheus-adapter-64f44945b5-25gq4    1/1     Running   0          3h39m
prometheus-k8s-0                       2/2     Running   0          3h39m
prometheus-k8s-1                       2/2     Running   0          3h39m
prometheus-operator-8559ff6d5d-6xq5g   2/2     Running   3          17h

快速配置UI访问

这种方式是调试试用,关闭掉端口转发即失效,如果想长久使用,需要修改Service暴露方式

Promethus

启动服务代理:

$ kubectl port-forward --address 0.0.0.0 pod/prometheus-k8s-0 -n monitoring 9090:9090
Forwarding from 0.0.0.0:9090 -> 9090
  • port-forward 依赖 socat
  • 访问执行该命名的节点IP + 端口即可访问

Grafana

启动代理:

$ kubectl port-forward --address 0.0.0.0 svc/grafana -n monitoring 3000:3000 
Forwarding from 0.0.0.0:3000 -> 3000
  • admin/admin登录

删除

1
kubectl delete --ignore-not-found=true -f manifests/ -f manifests/setup