最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

如何用helm在k8s上快速部署Prometheus+Grafana

2023-02-21 09:16 作者:bili_39183997178  | 我要投稿

如果監(jiān)控的是物理機(jī),推薦使用 Zabbix 做監(jiān)控,Zabbix 在傳統(tǒng)的監(jiān)控系統(tǒng)中,尤其是在服務(wù)器監(jiān)控方面,占據(jù)絕對(duì)優(yōu)勢(shì)。但如果是云環(huán)境,非常推薦使用 Prometheus,Prometheus 已經(jīng)是容器監(jiān)控方面的標(biāo)配。

文章的內(nèi)容比較長(zhǎng),請(qǐng)看內(nèi)容提要:

文章概要

接下來(lái),我們就跟大家一起一步一步的演示,如何部署Prometheus,在安裝Prometheus之前,我們要安裝helm工具。

一 安裝Helm3

Helm 是什么?我們可以將 Helm 看作是 k8s 的 apt-get/yum。Helm 倉(cāng)庫(kù)里面只有配置清單文件,并沒(méi)有鏡像,鏡像還是由鏡像倉(cāng)庫(kù)來(lái)提供,比如 hub.docker.com、私有倉(cāng)庫(kù)等。

對(duì)于使用者而言,使用 Helm 的好處是,不需要了解 k8s 的 yaml 應(yīng)用部署文件了,可以通過(guò) Helm 下載并在 k8s 上安裝需要的應(yīng)用。

Helm 的官方地址:https://helm.sh

1.1 版本選擇

選擇安裝哪個(gè)版本的 Helm 呢?當(dāng)一個(gè) Helm 的新版本發(fā)布時(shí),它是針對(duì) Kubernetes 的一個(gè)特定的版本編譯的。

在 Helm 的官方地址,
https://helm.sh/zh/docs/topics/version_skew/,提供了 k8s 和 Helm 的兼容版本對(duì)照表。我僅僅列出了一部分,由于我安裝的k8s版本是1.22.6,因此,我選擇下載 Helm3.9.x版本。

helm版本兼容性

1.2 安裝helm

[bigdata@k8s-master ~]$ cd /opt/module/

# 下載安裝包

[bigdata@k8s-master module]$ wget https://get.helm.sh/helm-v3.9.4-linux-amd64.tar.gz

# 解壓壓縮包

[bigdata@k8s-master module]$ tar -zxvf helm-v3.9.4-linux-amd64.tar.gz?

# 在解壓目中找到helm程序,移動(dòng)到需要的目錄中

[bigdata@k8s-master module]$ sudo mv linux-amd64/helm /usr/local/bin/helm# 驗(yàn)證[bigdata@k8s-master module]$ helm version


安裝helm

1.3 配置倉(cāng)庫(kù)

  • 安裝好 Helm 之后,就可以添加 chart 倉(cāng)庫(kù)了

# 添加公用的倉(cāng)庫(kù)

[bigdata@k8s-master module]$ helm repo add bitnami https://charts.bitnami.com/bitnami

# 配置helm阿里源地址

[bigdata@k8s-master module]$ helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

# 查看倉(cāng)庫(kù)

[bigdata@k8s-master module]$ helm repo list

  • 當(dāng)添加完成,就可以看到可以被安裝的 chart 列表了:

[bigdata@k8s-master module]$ helm search repo bitnami


bitnami chart 列表

[bigdata@k8s-master module]$ helm search repo aliyun


阿里云chart 列表

二 選擇Prometheus的版本

既然是云原生的環(huán)境,我們就使用kube-prometheus,github地址:
https://github.com/prometheus-operator/kube-prometheus

目前Prometheus的版本已經(jīng)到了v0.11版,我們?cè)撓螺d哪個(gè)版本呢?

Prometheus版本列表

在 github 代碼下方,用一個(gè)表格介紹了 k8s 和 Prometheus 的兼容性。

k8s 和 Prometheus 的兼容性列表

由于我們安裝的 k8s 版本是 1.22.6,因此下載 Prometheus0.9 和 Prometheus0.10 都是可以的,我選擇下載比較新的版本:Prometheus0.10。

k8s 版本是 1.22.6

三 安裝kube-prometheus

3.1 下載kube-prometheus0.10

下載Prometheus0.10的過(guò)程會(huì)比較慢,有可能會(huì)失敗,可能需要重試幾次。

# 下載Prometheus0.10

[bigdata@k8s-master module]$ git clone https://github.com/prometheus-operator/kube-prometheus.git -b release-0.10

3.2 安裝kube-prometheus

安裝manifest/setup目錄下的所有yaml文件。

[bigdata@k8s-master kube-prometheus]$ kubectl apply --server-side -f manifests/setup


安裝kube-prometheus

安裝manifest目錄下的所有yaml文件,kube-prometheus默認(rèn)安裝在 monitoring 命名空間中,安裝過(guò)程是非常緩慢的,有些鏡像在國(guó)外,還會(huì)因?yàn)槔〔坏蕉惭b失敗。

[bigdata@k8s-master kube-prometheus]$ cd manifests/setup/?

[bigdata@k8s-master setup]$ until kubectl get servicemonitors --all-namespaces ; do date; sleep 1; echo ""; done

[bigdata@k8s-master setup]$ cd ../..?

[bigdata@k8s-master kube-prometheus]$ kubectl apply -f manifests/

我們通過(guò)下面的命令查看安裝進(jìn)度。

[bigdata@k8s-master kube-prometheus]$ kubectl get all -n monitoring


查看安裝進(jìn)度

3.3 處理pod下載失敗問(wèn)題

3.3.1 查看哪些pod拉取失敗

通過(guò)下面的命令,查看每個(gè)pod的安裝情況,發(fā)現(xiàn)有的pod狀態(tài)是ImagePullBackOff(重新拉?。?,一旦狀態(tài)變成ImagePullBackOff,就說(shuō)明拉取失敗了。如果不做處理,一直都拉取不到鏡像。

[bigdata@k8s-master module]$ kubectl get pods -n monitoring -o wide


查看哪些pod拉取失敗

3.3.2 查看pod報(bào)錯(cuò)信息

通過(guò)kubectl describe pod [pod_name] -n [namespace]命令,查看每個(gè)pod的安裝情況。

[bigdata@k8s-master module]$ kubectl describe pod kube-state-metrics-5fcb7d6fcb-zxtqj -n monitoring


查看pod報(bào)錯(cuò)信息

例如,上面這個(gè)pod的報(bào)錯(cuò)信息表示,從"
k8s.gcr.io/kube-state-metrics"中拉取kube-state-metrics:v2.3.0失敗,因此我們要修改這個(gè)鏡像源。需要找到該鏡像所在的yaml文件。

3.3.3 更改報(bào)錯(cuò)pod的鏡像源

kube-prometheus中的鏡像對(duì)應(yīng)的yaml文件非常好找,名字有對(duì)應(yīng)關(guān)系。例如:
k8s.gcr.io/kube-state-metrics/kube-state-metrics:v2.3.0 對(duì)應(yīng)的 yaml文件是:kubeStateMetrics-deployment.yaml

[bigdata@k8s-master manifests]$ vi kubeStateMetrics-deployment.yaml


更改報(bào)錯(cuò)pod的鏡像源

修成成什么樣的鏡像源呢?有一個(gè)非常好的網(wǎng)站https://hub.docker.com/,通過(guò)dockerhub查找對(duì)應(yīng)的鏡像,因?yàn)閐ockerhub上的資源都是可以pull下來(lái)的。

輸入kube-state-metrics,回車搜索。

搜索kube-state-metrics

選擇stars數(shù)量最多的倉(cāng)庫(kù)源,
bitnami/kube-state-metrics的Stars數(shù)量最多,點(diǎn)擊bitnami/kube-state-metrics。

選擇倉(cāng)庫(kù)源

里面有很多版本,需要找到我們按照的v2.3.0版本號(hào),點(diǎn)擊左側(cè)的復(fù)制,查看地址為:docker pull
bitnami/kube-state-metrics:2.3.0

kube-state-metrics:2.3.0

因此,將
kubeStateMetrics-deployment.yaml 中的 image 替換成?bitnami/kube-state-metrics:2.3.0

[bigdata@k8s-master manifests]$ vi kubeStateMetrics-deployment.yaml image: bitnami/kube-state-metrics:2.3.0


kube-state-metrics:2.3.0

重新加載
kubeStateMetrics-deployment.yaml文件,helm會(huì)從新的鏡像地址拉取并按照pod。

[bigdata@k8s-master manifests]$ kubectl apply -f kubeStateMetrics-deployment.yaml

同樣的道理,我們?cè)偻ㄟ^(guò)kubectl get pods -n monitoring查看,現(xiàn)在還有prometheus-adpther報(bào)錯(cuò)。

kubectl get pods -n monitoring

同理,我們直接修改
prometheusAdapter-deployment.yaml的鏡像源。

[bigdata@k8s-master manifests]$ vi prometheusAdapter-deployment.yaml


kubectl get pods -n monitoring

在https://hub.docker.com/上找到,它的鏡像地址是:
willdockerhub/prometheus-adapter:v0.9.1


prometheusAdapter-deployment.yaml 中?k9s.gcr.io/prometheus-adapter:v0.9.1 的鏡像地址替換成willdockerhub/prometheus-adapter:v0.9.1

prometheusAdapter-deployment.yaml

然后執(zhí)行
prometheusAdapter-deployment.yaml 文件

[bigdata@k8s-master manifests]$ kubectl apply -f prometheusAdapter-deployment.yaml

以此類推,都是這樣重新拉取失敗的鏡像。拉取鏡像的時(shí)間還是比較長(zhǎng)的,這種方式肯定是可以拉取到的。

3.4 減少pod副本數(shù)量

經(jīng)過(guò)一段時(shí)間的努力,最后終于拉取成功。雖然拉取成功了,但是有的pod是3副本,有的pod是兩副本。由于我們演示環(huán)境的虛擬機(jī)配置比較低,需要減少一些副本數(shù)量。

減少pod副本數(shù)量

對(duì)于內(nèi)存空間本就不是很充裕的演示環(huán)境來(lái)說(shuō),就不考慮高可用了。在哪些yaml中配置了副本數(shù)量呢?

grep -rn 'replicas:' *

查找副本

安裝下面的副本策略,修改副本數(shù)量。

  • alertmanager-alertmanager.yaml(保留2副本)

  • prometheusAdapter-deployment.yaml(保留1副本)

  • prometheus-prometheus.yaml(保留1副本)

然后重新運(yùn)行yaml文件,驗(yàn)證副本數(shù)是否復(fù)合要求。

[bigdata@k8s-master kube-prometheus]$ kubectl apply -f manifests/?

[bigdata@k8s-master kube-prometheus]$ kubectl get pods -n monitoring



然后重新運(yùn)行yaml文件

也可以通過(guò)kubernetes dashboard,驗(yàn)證Prometheus+Grafana是否安裝成功??梢?jiàn)Prometheus+Grafana都已經(jīng)安裝成功。

驗(yàn)證Prometheus+Grafana是否安裝成功

查看svc,都已經(jīng)安裝成功。

[bigdata@k8s-master ~]$ kubectl get svc -n monitoring

驗(yàn)證Prometheus+Grafana是否安裝成功

四 通過(guò)web訪問(wèn)Prometheus和Grafana

雖然現(xiàn)在pod都已經(jīng)安裝好了,但如果想訪問(wèn)Prometheus,還需要做一點(diǎn)修改。把訪問(wèn)類型改成type: NodePort。

4.1 修改alertmanager-service.yaml

Alertmanager除了基本的告警通知能力外,Alertmanager還支持對(duì)告警進(jìn)行去重、分組、抑制、靜默和路由等功能;在如下位置新增type: NodePort

[bigdata@k8s-master ~]$ cd /opt/module/kube-prometheus/manifests/[bigdata@k8s-master manifests]$ vi alertmanager-service.yaml

alertmanager-service.yaml

重新加載alertmanager-service.yaml

[bigdata@k8s-master manifests]$ kubectl apply -f alertmanager-service.yaml [bigdata@k8s-master manifests]$ kubectl get svc -n monitoring

alertmanager-service.yaml

通過(guò)web方式訪問(wèn)Alertmanager

web方式訪問(wèn)Alertmanager

4.2 修改grafana-service.yaml

Grafana 是一款用 Go 語(yǔ)言開(kāi)發(fā)的開(kāi)源數(shù)據(jù)可視化工具,可以做數(shù)據(jù)監(jiān)控和數(shù)據(jù)統(tǒng)計(jì),帶有告警功能。

同樣,新增type: NodePort

[bigdata@k8s-master manifests]$ vi grafana-service.yaml

web方式訪問(wèn)Alertmanager

重新加載grafana-service.yaml 文件。

[bigdata@k8s-master manifests]$ kubectl apply -f grafana-service.yaml [bigdata@k8s-master manifests]$ kubectl get svc -n monitoring

grafana-service.yaml

通過(guò)web方式訪問(wèn)Grafana,用戶名:密碼/admin:admin

訪問(wèn)Grafana

在Grafana上,可以展示自定義報(bào)表、圖表等。Grafana的UI更加靈活,有豐富的插件,功能強(qiáng)大。


訪問(wèn)Grafana

訪問(wèn)Grafana

4.3 修改prometheus-service.yaml

增加type: NodePort

[bigdata@k8s-master manifests]$ vi prometheus-service.yaml

prometheus-service.yaml

重新加載prometheus-service.yaml

[bigdata@k8s-master manifests]$ kubectl apply -f prometheus-service.yaml [bigdata@k8s-master manifests]$ kubectl get svc -n monitoring


kubectl get svc -n monitoring

prometheus已經(jīng)幫我們配置好了一些監(jiān)控報(bào)警。

prometheus


如何用helm在k8s上快速部署Prometheus+Grafana的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
德安县| 平度市| 东乡| 固始县| 深泽县| 绥江县| 夏河县| 南昌县| 五莲县| 石家庄市| 安康市| 铅山县| 永修县| 毕节市| 澄迈县| 平乐县| 丹寨县| 廊坊市| 深州市| 镇坪县| 山阳县| 鸡西市| 资源县| 广昌县| 定边县| 清新县| 南乐县| 安岳县| 贡嘎县| 新巴尔虎右旗| 龙口市| 乡城县| 汝阳县| 嫩江县| 抚宁县| 屏边| 伊通| 潞城市| 益阳市| 龙泉市| 旬阳县|