部署前提:k8s集群完善
- prometheus部署在k8s-master上
由于网上github镜像下载失败,我是从其他地方把镜像拉到自己的私有仓库中使用
git clone https://github.com/coreos/prometheus-operator
所需的yum文件都在这里,亲测可用
把压缩包放到k8s-master这台主机上
解压 unzip prometheus-operator-0.29.0.zip
在根目录下创建目录:mkdir /prometheus
把文件移到根目录下 mv ~/prometheus-operator-0.29.0/* /prometheus/
- 创建命名空间
cd /Prometheus/manifests
kubectl apply -f 00namespace-namespace.yaml
cd ..
kubectl apply -f bundle.yaml 部署prometheus
- 部署相关插件
cd manifests/
kubectl apply -f ./
- 查看所有pod状态
kubectl get pod -n monitoring -o wide
全部显示running才正常
因为我们要设置外网访问服务,所以还要设置端口转发
这里我们选择设置成nodeport模式
修改grafana-service.yaml文件,使用nodepode方式访问grafana:
vim manifests/grafana-service.yaml
这里我们把服务的3000端口映射到宿主机的30515端口,type设置为NodePort
- 重新导入配置文件
kubectl apply -f grafana-service.yaml
- 查看端口映射是否成功
[root@k8s-master manifests]# kubectl get svc -n monitoring
现在我们可以通过k8s集群中任意一台主机的30515端口访问grafana
初始 用户和密码都是admin
用镜像部署的prometheus非常方便,他自身已经定义好了完善的自动发现机制和报警规则,我们只需要在他的基础上做自己的修改就行
同样的,如果要让外部访问alertmanager-service和prometheus-service两个服务,也要配置端口转发
vim prometheus-service.yaml
重新导入配置文件
kubectl apply -f prometheus-service.yaml
`vim alertmanager-service.yaml`
kubectl apply -f alertmanager-service.yaml