k8s集成kube-prometheus

正文

下载kube-prometheus,注意与k8s版本对应支持,k8s-1.25版本使用kube-prometheus-release-0.12

克隆仓库,按照指引使用kubectl安装prometheus

git clone -b release-0.12 https://github.com/prometheus-operator/kube-prometheus.git
cd kube-prometheus
kubectl apply --server-side -f manifests/setup
kubectl wait \
	--for condition=Established \
	--all CustomResourceDefinition \
	--namespace=monitoring
kubectl apply -f manifests/

需要注意的是,prometheus有从register.k8s.io中下载的镜像,以下两个镜像

  • prometheus-adapter
  • kube-state-metrics

未配置代理会导致下载失败。大多数解决方式都是将镜像从国内源下载后重新tag。如果有条件的话,这里推荐方法是添加k8s使用的底层代理。下面是两种运行时的配置方式,需要注意一下自己的配置目录。

Containerd

sudo mkdir -p /etc/systemd/system/containerd.service.d

sudo tee /etc/systemd/system/containerd.service.d/http-proxy.conf > /dev/null << EOF
[Service]
Environment="HTTP_PROXY=http://[ip]:[port]"
Environment="HTTPS_PROXY=http://[ip]:[port]"
EOF

sudo systemctl daemon-reload
sudo systemctl restart containerd

Docker

sudo mkdir -p /lib/systemd/system/docker.service.d/

sudo tee /lib/systemd/system/docker.service.d/http-proxy.conf > /dev/null << EOF
[Service]
Environment="HTTP_PROXY=http://[ip]:[port]"
Environment="HTTPS_PROXY=http://[ip]:[port]"
EOF

sudo systemctl daemon-reload
sudo systemctl restart docker

修改以下三个service的type为NodePort,端口随机

  • prometheus-k8s
  • grafana
  • alertmanager-main

注:在release-0.11版本之后新增了NetworkPolicy
默认是允许自己访问,如果了解NetworkPolicy可以修改一下默认的规则,可以用查看 ls *networkPolicy*,如果不修改的话则会影响到修改NodePort类型也无法访问
如果不会Networkpolicy可以直接删除就行。

kubectl delete networkpolicy --all -n monitoring

在以上所有步骤完成后,在Kubernetes Dashboard查看namespace为monitoring所有资源都为正常的。

并且通过grafana服务暴露出来的端口进行访问,修改密码后登录界面如下。

为了快速入门,可以直接使用自带模板,也可以在官网搜索模板,复制dashboard id或者json文件进行导入。

推荐使用模板,K8S for Prometheus Dashboard 20211010,预览图如下。

参考

kube-prometheus-github
grafana-dashboard-ui
Grafana-K8s全览监控
k8s 代理问题一站式解决
Kube-Prometheus 部署

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×