终于开始可以部署Prometheus了。
其实可以执行一条非常简单的命令:
helm install --name zhang-prom stable/prometheus-operator
就可以一键的把Prometheus的监控体系部署起来了。但是 网络问题无法访问到google 仓库,阿里仓库也不更新。本地做一些个性化配置需要修改经常调整变化配置。
采用本地安装方式
gitbhub地址:https://github.com/helm/charts.git
Clone 到本地,内容比较多耐心等待。
➜ ~ git clone https://github.com/helm/charts.git
进入charts
文件夹把里面的prometheus-operator
拷贝到本地,这就是我们要用到东西。
➜ ~ cp -r charts/stable/prometheus-operator/ .
➜ ~ ll prometheus-operator/
总用量 148
-rw-r--r--. 1 root root 703 2月 4 16:39 Chart.yaml
drwxr-xr-x. 2 root root 83 2月 4 16:39 ci
-rw-r--r--. 1 root root 658 2月 4 16:39 CONTRIBUTING.md
drwxr-xr-x. 2 root root 152 2月 4 16:39 crds
drwxr-xr-x. 3 root root 129 2月 4 16:39 hack
-rw-r--r--. 1 root root 96 2月 4 16:39 OWNERS
-rw-r--r--. 1 root root 69091 2月 4 16:39 README.md
-rw-r--r--. 1 root root 454 2月 4 16:39 requirements.lock
-rw-r--r--. 1 root root 461 2月 4 16:39 requirements.yaml
drwxr-xr-x. 7 root root 140 2月 4 16:39 templates
-rw-r--r--. 1 root root 58712 2月 4 16:39 values.yaml
拷贝依赖
如果不拷贝依赖会报错:
Error: found in requirements.yaml, but missing in charts/ directory: kube-state-metrics, prometheus-node-exporter, grafana
# 新建 charts文件夹 拷贝: kube-state-metrics, prometheus-node-exporter, grafana组件
➜ ~ mkdir prometheus-operator/charts
➜ ~ cp -r charts/stable/kube-state-metrics/ prometheus-operator/charts/
➜ ~ cp -r charts/stable/prometheus-node-exporter/ prometheus-operator/charts/
➜ ~ cp -r charts/stable/grafana/ prometheus-operator/charts/
helm install 「prometheus-operator目录」 --name 「名字」 --namespace 「命令空间」
# 安装prometheus-operator 也可以不用指定命名空间
➜ ~ helm install ./prometheus-operator/ --name imooc-prom --namespace monitoring
# prometheus-operator
azk8spull quay.io/prometheus/alertmanager:v0.20.0
azk8spull squareup/ghostunnel:v1.5.2
azk8spull quay.io/coreos/prometheus-operator:v0.35.0
azk8spull quay.io/coreos/configmap-reload:v0.0.1
azk8spull k8s.gcr.io/hyperkube:v1.12.1
azk8spull quay.io/prometheus/prometheus:v2.15.2
# grfana
azk8spull grafana/grafana:6.6.0
azk8spull busybox:1.30
azk8spull kiwigrid/k8s-sidecar:0.1.75
# kube-state-metrics
azk8spull quay.io/coreos/kube-state-metrics:v1.9.4
# prometheus-node-exporter
azk8spull quay.io/prometheus/node-exporter:v0.18.1
查看一下crd 有哪些自定的资源类型
alertmanagers
是对应prometheuses的组件,prometheuses
是prometheuses server,prometheusesrules
是报警规则,servicemontuors
是Exporters
➜ ~ kubectl get crd|grep coreos
有了crd 就会确定自定义的配置文件是否是合法的,查看一下alertmanagers
的自定的配置
➜ ~ kubectl get alertmanager -n monitoring
跟我们常见的配置一样
➜ ~ kubectl get alertmanagers -n monitoring imooc-prom-prometheus-oper-alertmanager -o yaml
如果碰到镜像下载不了,我们来到/prometheus-operator目录 搜索一下image
➜ ~ find .|grep values.yaml|xargs grep "image"
修改镜像地址
➜ ~ vi ./charts/grafana/values.yaml
然后通过helm 升级
helm upgreade imooc-prom ./prometheus-operator/ -f .prometheus-operator/charts/grafana/values.yaml
遇到类似问题用上面方法就可以。
最终镜像全部下载完成
➜ ~ kubectl get deploy -n monitoring
都是以我们定义的imooc-prom
名字命名的
3 个ds 是负责节点指标的,每台机器运行了一个,三台机器运行了三个。
➜ ~ kubectl get ds -n monitoring
一个是prometheus本身一个是alertmanager
➜ ~ kubectl get statefulset -n monitoring
看下service
➜ ~ kubectl get svc -n monitoring
创建这些所以的东西还包括角色权限的一些定义都是prometheus-operator目录都东西来描述的,就像一个插件一样,把这些东西创建出来插在了prometheus上面。
可用通过helm delete imooc=prom 把所有安装的东西和创建的东西全部删除,当然还有手动删除一下crd
这么删除是放在了回收站,--purge
是强制清空回收站
➜ ~ helm delete imooc=prom --purge