環(huán)境準(zhǔn)備
Kubernetes準(zhǔn)備
當(dāng)然前提環(huán)境是你得先有一個(gè)Kubernetes集群,版本在v1.21.*~v1.27.*之間,當(dāng)然我已經(jīng)準(zhǔn)備好了Kubernetes:
可以看到我準(zhǔn)備的Kubernetes版本為1.21.14的,符合要求。本篇文章也以這個(gè)版本來進(jìn)行安裝,上面提到的版本安裝步驟和這個(gè)版本大體相同,按照步驟來即可。
安裝項(xiàng)目
因?yàn)樵贙ubernetes上安裝Prometheus很麻煩,所以有一些大佬在Github上貢獻(xiàn)了一些安裝它們的項(xiàng)目,這次我推薦使用的項(xiàng)目是 kube-prometheus
,地址為:https://github.com/prometheus-operator/kube-prometheus,但是你要注意安裝 kube-prometheus 的版本,版本的對應(yīng)列表:
Kubernetes版本 | Kube-prometheus版本 |
---|---|
1.21.* | 0.9.0 |
1.22.* | 0.9.0、0.10.0 |
1.23.* | 0.10.0、0.11.0 |
1.24.* | 0.11.0、0.12.0 |
1.25.* | 0.12.0 |
1.26.* | main |
1.27.* | main |
如圖:
要注意最好不要使用main分支的項(xiàng)目,因?yàn)檫€沒有正式發(fā)版,所以建議使用1.25.*以下的Kubernetes
開始安裝
下載安裝的項(xiàng)目
來到這個(gè)網(wǎng)址:https://github.com/prometheus-operator/kube-prometheus/releases,選擇對應(yīng)版本的發(fā)行版本進(jìn)行下載,因?yàn)槲业腒ubernetes安裝的是1.21.*,所以我下載的是0.9.0版本:
下載之后如圖:
安裝項(xiàng)目
我們先將這個(gè)項(xiàng)目給解壓:
tar -zxvf kube-prometheus-0.9.0.tar.gz
解壓之后如圖會出現(xiàn)一個(gè) kube-prometheus-0.9.0
文件夾:
我們先去到 kube-prometheus-0.9.0/manifests
目錄當(dāng)中:
cd kube-prometheus-0.9.0/manifests/
替換鏡像
因?yàn)橛胁糠昼R像是在 k8s.gcr.io
上拉取的,這個(gè)鏡像是谷歌上的,國內(nèi)拉取不下來,所以我們要修改一下拉取地址。因?yàn)閐ockerhub上已經(jīng)有人提供了這個(gè)鏡像的替代品,所以我們這里可以直接替換
替換kube-state-metrics
修改 ./kube-state-metrics-deployment.yaml
文件(在kube-prometheus-0.9.0/manifests/kube-state-metrics-deployment.yaml):
vim kube-state-metrics-deployment.yaml
在大概34行這個(gè)位置有 k8s.gcr.io/kube-state-metrics/kube-state-metrics:v2.1.1
鏡像(版本號可能不同,不影響安裝):
在dockerhub上查詢收藏最多的:
選擇相同的版本號(??注意這個(gè)版本號沒有v前綴):
所以我們將 k8s.gcr.io/kube-state-metrics/kube-state-metrics:v2.1.1
改為 docker.io/bitnami/kube-state-metrics:2.1.1
(加上docker.io前綴):
替換prometheus-adapter
修改 ./prometheus-adapter-deployment.yaml
文件(在kube-prometheus-0.9.0/manifests/prometheus-adapter-deployment.yaml):
vim ./prometheus-adapter-deployment.yaml
在大概34行這個(gè)位置有 k8s.gcr.io/prometheus-adapter/prometheus-adapter:v0.9.0
鏡像(版本號可能不同,不影響安裝):
我們在此來到dockerhub搜索,同樣使用這個(gè)下載和收藏最多的:
同樣注意版本號對應(yīng):
所以我們將 k8s.gcr.io/prometheus-adapter/prometheus-adapter:v0.9.0
改為 docker.io/willdockerhub/prometheus-adapter:v0.9.0
(加上docker.io前綴):
修改Service
因?yàn)橛幸恍┪覀冃枰獠吭L問的Service設(shè)置的類型是ClusterIP,所以我們要將它改為NodePort或LoadBalancer
修改alertmanager-service.yaml
這個(gè)文件在 kube-prometheus-0.9.0/manifests/alertmanager-service.yaml
,我們直接修改:
vim alertmanager-service.yaml
按照圖片提示修改,在 spec
下新增一行 type: NodePort
修改類型為 NodePort
,然后再在 spec.ports
下面新增一行 nodePort: 30093
修改nodePort端口為 30093
這個(gè)端口可以自行指定 30000~32767
之間的端口:
修改完成后保存并退出。
修改grafana-service.yaml
這個(gè)文件在 kube-prometheus-0.9.0/manifests/grafana-service.yaml
,我們直接修改:
vim grafana-service.yaml
操作步驟一樣,這里不再過多贅述,但要注意端口號不要沖突:
修改prometheus-service.yaml
這個(gè)文件在 kube-prometheus-0.9.0/manifests/prometheus-service.yaml
,我們直接修改:
vim prometheus-service.yaml
操作步驟一樣,這里不再過多贅述,但要注意端口號不要沖突:
執(zhí)行這些yaml資源清單文件
先來到 kube-prometheus-0.9.0
目錄:
然后執(zhí)行下面幾行命令:
kubectl apply --server-side -f manifests/setup
kubectl wait \
--for condition=Established \
--all CustomResourceDefinition \
--namespace=monitoring
kubectl apply -f manifests/
執(zhí)行結(jié)果如圖,創(chuàng)建了一堆的資源:
我們使用以下命令查詢是否創(chuàng)建成功:
watch kubectl get pod -o wide -n monitoring
當(dāng)安裝完成之后 STATUS
的值都是 Running
,并且 READY
的值也是全部沒有問題的:
訪問Grafana
使用這行命令查看grafana的端口:
kubectl get svc -o wide -n monitoring | grep grafana
可以看到grafana對外部訪問的nodePort端口為 30300
,這也是我們之前設(shè)置的值:
我們直接通過瀏覽器訪問任何一個(gè)節(jié)點(diǎn)的IP地址帶上這個(gè)端口就可以訪問到grafana了:
默認(rèn)的用戶名和密碼是 admin/admin
,我們可以直接登陸,登陸之后要我們從新設(shè)置密碼,為你們的admin用戶從新設(shè)置一個(gè)新密碼即可:
接下來我們就訪問到Grafana的主頁了:
按照我的提示點(diǎn)擊 Dashboards
-> Manage
:
然后再展開這個(gè)Default:
可以看到有很多的 kube-prometheus
已經(jīng)為我們準(zhǔn)備好的Dashboard:
我們選擇 Node Exporter/Nodes
的 Dashboard 進(jìn)去:
這個(gè)里面可以看到各個(gè)節(jié)點(diǎn)的 CPU 和內(nèi)存信息:
點(diǎn)擊 Kubernetes/Networking/Cluster
進(jìn)去:
可以看到各個(gè)命名空間下的網(wǎng)絡(luò)訪問情況;
好的,更多的Dashboard你們可以自己去查看
其他系統(tǒng)的訪問
Prometheus
使用以下命令查看Prometheus的NodePort端口:
kubectl get svc -o wide -n monitoring | grep prometheus-k8s
可以看到Prometheus的NodePort端口是我們自己設(shè)置的 30090:
訪問進(jìn)來可以直接到達(dá)Prometheus的主頁:
然后你可以對Prometheus做一些你想要的操作
AlertManager
我們可以直接通過以下命令查詢 alertmanager 的NodePort端口:
kubectl get svc -o wide -n monitoring | grep alertmanager-main
可以看到端口依然是我們之前設(shè)置的30093:
同樣訪問我們?nèi)魏我粋€(gè)節(jié)點(diǎn)的30093端口就能訪問到AlertManager的主頁:文章來源:http://www.zghlxwxcb.cn/news/detail-691960.html
好了,Kubernetes上搭建Prometheus和Grafana的步驟就已經(jīng)執(zhí)行完畢了,祝你們編碼開心文章來源地址http://www.zghlxwxcb.cn/news/detail-691960.html
到了這里,關(guān)于Kubernetes(k8s)上安裝Prometheus和Grafana監(jiān)控的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!