k8s入门:kube-prometheus-stack 全家桶搭建(Grafana + Prometheus)

系列文章


第一章:✨ k8s入门:裸机部署 k8s 集群
第二章:✨ k8s入门:部署应用到 k8s 集群
第三章:✨ k8s入门:service 简单使用
第四章:✨ k8s入门:StatefulSet 简单使用
第五章:✨ k8s入门:存储(storage)
第六章:✨ K8S 配置 storageclass 使用 nfs 动态申领本地磁盘空间
第七章:✨ k8s入门:配置 ConfigMap & Secret
第八章:✨ k8s入门:k8s入门:Helm 构建 MySQL
第九章:✨ k8s入门:kubernetes-dashboard 安装
第十章:✨ k8s入门:kube-prometheus-stack 全家桶搭建(Grafana + Prometheus)


Artifact Hub 官网:https://artifacthub.io/packages/helm/prometheus-community/kube-prometheus-stack

一、简介

安装 kube-prometheus 堆栈、Kubernetes 清单、Grafana 仪表板和 Prometheus 规则的集合,并结合文档和脚本,使用Prometheus Operator 通过 Prometheus 提供易于操作的端到端 Kubernetes 集群监控。

二、安装

1、helm 安装

helm 安装 kube-prometheus-stack

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install prometheus-community/kube-prometheus-stack --generate-name
2、yaml 清单安装

上面可能网络原因安装失败,可以从 GitHub 上下载文件安装

GitHub 下载地址:https://github.com/prometheus-operator/kube-prometheus

使用 manifests 文件夹创建 kube-prometheus-stack

kubectl apply --server-side -f manifests/setup
until kubectl get servicemonitors --all-namespaces ; do date; sleep 1; echo ""; done
kubectl apply -f manifests/

想要删除 manifests 文件夹创建的 kube-prometheus-stack 可使用如下命令

kubectl delete --ignore-not-found=true -f manifests/ -f manifests/setup
3、查看资源

使用 manifests 文件夹创建成功会创建一个 namespace/monitoring,以及所需的 service、StatefulSet、Deployment、Secret、ConfigMap 等等…(下面图是错误解决的截图)

扫描二维码关注公众号,回复: 15272467 查看本文章

在这里插入图片描述

4、解决错误 Error: ImagePullBackOff

错误如下,拉去镜像失败
在这里插入图片描述

查看 monitorin 命名空间下的所有资源 kubectl get all -n monitoring,发现有两个资源镜像拉去错误
在这里插入图片描述
解决方法

  • 方法一:从 dockerHub 上拉去镜像,在使用 docker tag 复制一份镜像与上面拉去镜像名保持一致(需要将镜像下载指定的 node 节点,即 pod 部署哪个节点,哪个节点就需要有该镜像)
# dockerHub 上拉去镜像
docker pull willdockerhub/prometheus-adapter:v0.9.1
docker pull bitnami/kube-state-metrics:2.5.0
# 镜像重命名
docker tag willdockerhub/prometheus-adapter:v0.9.1 k8s.gcr.io/prometheus-adapter/prometheus-adapter:v0.9.1
docker tag bitnami/kube-state-metrics:2.5.0 k8s.gcr.io/kube-state-metrics/kube-state-metrics:v2.5.0
  • 方法二:在 kubernetes-dashboard 修改配置文件并重启,没安装的可参考我上一篇文章
    在这里插入图片描述
    如果你没有安装 kubernetes-dashboard,则可以单个 yaml 文件去修改,然后重新部署即可
5、安装成功

重启过后,如下,所有资源启动成功

在这里插入图片描述
如上安装完成所有 service 都是ClusterIP 类型,所有资源只能集群内部相互访问,下面修改 service 类型为 NodePort 类型,保证物理节点可访问

三、访问测试

1、grafana 物理节点访问

kubernetes-dashboard 修改 grafana 服务配置,添加物理节点端口 nodePort=13000
在这里插入图片描述

访问测试 http://192.168.25.100:13000/ 默认用户名密码 admin/admin
在这里插入图片描述

2、Prometheus 物理节点访问

kubernetes-dashboard 修改 prometheus-k8s 配置,添加物理节点端口 nodePort=19090
在这里插入图片描述

访问测试 http://192.168.25.100:19090/
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41538097/article/details/125564711