ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

第十三章 九析带你轻松完爆 helm3 Prometheus

2020-01-09 23:55:25  阅读:1215  来源: 互联网

标签:完爆 helm3 九析 轻松 prometheus nfs


本系列文章:


第一章:九析带你轻松完爆 helm3 安装
第二章:九析带你轻松完爆 helm3 公共仓库

第三章:九析带你轻松完爆 helm3 私有仓库

第四章:九析带你轻松完爆 helm3 chart

第五章:九析带你轻松完爆 helm3 release

第六章:九析带你轻松完爆 helm3 gitlab

第七章:九析带你轻松完爆 helm3 nginx-ingress

第八章:九析带你轻松完爆 helm3 gitlab nfs

第九章:九析带你轻松完爆 helm3 nexus

第十章:九析带你轻松完爆 helm3 heapster

第十一章:九析带你轻松完爆 helm3 kubernetes-dashboard

第十二章:九析带你轻松完爆 helm3 harbor

第十三章:九析带你轻松完爆 helm3 prometheus

目录

1 前言

2 下载 Prometheus

3 创建 prometheus 命名空间

4 安装 prometheus

    4.1 修改 deployment apiVersion

    4.2 添加 daemonset selector

    4.3 添加 deployment selector

    4.4 修改 ingress apiVersion

    4.5 验证 prometheus 安装

5 安装 nfs

6 创建 pv

7 验证 prometheus

8 修改 service type

9 访问 prometheus


1 前言

        本文采用 helm v3.0.0;k8s v1.16.3。


2 下载 Prometheus

        helm 搜索 Prometheus:

helm  search repo prometheus

        helm 下载解压 Prometheus:

helm fetch stable/prometheus

tar -zxvf prometheus-5.4.0.tgz


3 创建 prometheus 命名空间

kubectl create ns prometheus


4 安装 prometheus

        第一个 prometheus 是 helm release 名,第二个是命名空间,第三个是 prometheus 本地解压缩目录。

helm install prometheus -n prometheus prometheus

4.1 修改 deployment apiVersion

        如果在安装过程中有如下错误:

Error: unable to build kubernetes objects from release manifest: unable to recognize "": no matches for kind "Deployment" in version "extensions/v1beta1"

        执行如下语句轻松完爆:

grep -irl 'extensions/v1beta1' prometheus/ | xargs sed -i 's#extensions/v1beta1#apps/v1#g'

4.2 添加 daemonset selector

        如果再次安装有如下错误:

Error: unable to build kubernetes objects from release manifest: error validating "": error validating data: ValidationError(DaemonSet.spec): missing required field "selector" in io.k8s.api.apps.v1.DaemonSetSpec

        编辑 templates/node-exporter-daemonset.yaml 文件,添加如下内容:

clipboard1.png

4.3 添加 deployment selector:

        再次安装如果报如下错:

Error: unable to build kubernetes objects from release manifest: error validating "": error validating data: ValidationError(Deployment.spec): missing required field "selector" in io.k8s.api.apps.v1.DeploymentSpec

        编辑 templates/alertmanager-deployment.yaml 文件,添加如下内容:

clipboard2.png

        编辑 templates/kube-state-metrics-deployment.yaml 文件,添加如下内容:

clipboard3.png

        编辑 templates/pushgateway-deployment.yaml 文件,添加如下内容:

clipboard4.png

        编辑 templates/server-deployment.yaml 文件,添加如下内容:

clipboard4.png

4.4 修改 ingress apiVersion

        再次安装如果报如下错:

Error: unable to build kubernetes objects from release manifest: unable to recognize "": no matches for kind "Ingress" in version "apps/v1"

        编辑 templates/alertmanager-ingress.yaml 文件,将 apps/v1 修改为 extenstions/v1beta1:

clipboard5.png

4.5 验证 prometheus 安装

        如果执行安装后,显示如下内容:

clipboard6.png

        执行如下操作语句,如果出现如下结果,则说明安装成功:

helm list -n prometheus

clipboard7.png

        但安装成功,并不代表运行成功。还需要做进一步的配置。


5 安装 nfs

        如何安装 nfs 服务器,请参考本人《轻松完爆 nfs 安装》,不用担心,简单到爆,让你分分钟轻松完爆。

mkdir -p /data/nfs/prometheus/2g

mkdir -p /data/nfs/prometheus/8g

chmod 777 -R /data/nfs/prometheus

systemctl restart nfs


6 创建 pv

        安装完 nfs 后,查看 prometheus pvc:

kubectl get pvc -n prometheus

clipboard8.png

        发现 pvc 处于 pending 状态,原因在于并没有可用的 pv 可以使用,需要手动创建 pv。

clipboard9.png

        发现 pvc 的申请规格有 2 种,分别是 2Gi 和 8Gi。下面分别创建 pv 资源文件, 注意这里的 server 地址就是 nfs 服务器所在地址。

        创建 pv-prometheus-2g.yaml 文件,内容如下:

apiVersion: v1

kind: PersistentVolume

metadata:

    name: prometheus-2g

spec:

    capacity:

        storage: 2Gi

    volumeMode: Filesystem

    accessModes:

    -  ReadWriteOnce

    persistentVolumeReclaimPolicy: Retain

    nfs:

        server: 10.110.101.106

        path: /data/nfs/prometheus/2g

        创建 pv-prometheus-8g.yaml 文件,内容如下:

apiVersion: v1

kind: PersistentVolume

metadata:

    name: prometheus-8g

spec:

    capacity:

        storage: 8Gi

    volumeMode: Filesystem

    accessModes:

    -  ReadWriteOnce

    persistentVolumeReclaimPolicy: Retain

    nfs:

        server: 10.110.101.106

        path: /data/nfs/prometheus/8g

        执行如下语句创建 pv:

kubectl apply -f pv-prometheus-2g.yaml

kubectl apply -f pv-prometheus-8g.yaml

        查看 pvc 状态:

kubectl get pvc -n prometheus

clipboard10.png

        自此,pvc 和 pv 已经关联。


7 验证 prometheus

        查看 prometheus pod 运行状态,发现 prometheus-server 并没有启动成功:

kubectl get pod -n prometheus

image11.png

        查看容器日志状态发现报如下错误:

err="Error loading config couldn't load configuration (--config.file=/etc/config/prometheus.yml): parsing YAML file /etc/config/prometheus.yml: yaml: line 160: mapping values are not allowed in this context"

image12.png

        解决方案:

kubectl edit configmap -n prometheus prometheus-prometheus-server

        定位 “target_label: kubernetes_pod_namealerting:”

image13.png

        修改为:

image14.png

        修改完保存退出,然后删除 prometheus-prometheus-server pod,让控制器再重新生成新的 pod,从而读取修改过的 configmap 信息。再次查看整个 pod 状态,发现全部启动成功:

image15.png


8 修改 service type

        将 prometheus service type 修改为 NodePort 类型:

kubectl patch svc -n prometheus prometheus-prometheus-server -p '{"spec": {"type": "NodePort"}}'

kubectl get svc -n prometheus

image16.png


9 访问 prometheus

        打开浏览器,访问 prometheus-server,注意端口正确,本人是 30347:

image17.png

        自此,helm3 安装 prometheus 轻松完爆。

标签:完爆,helm3,九析,轻松,prometheus,nfs
来源: https://blog.51cto.com/14625168/2465697

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有