k8s学习--使用helm快速安装prometheus全家桶并使用ingress发布出去的详细过程

前言

使用helm安装的优势

使用Helm快速安装Prometheus有几个显著的优势:

快速部署和配置: Helm是一个流行的Kubernetes包管理工具,它允许你通过简单的命令快速部署和配置应用程序。对于Prometheus这样的复杂监控系统,使用Helm可以大大简化安装过程,减少手动配置的需要。

标准化和可重复性: Helm Charts(Helm的包描述文件)定义了如何安装和配置Prometheus及其相关组件。这确保了部署的标准化,使得在不同环境中重复部署变得更加可靠和简单。

版本控制和更新管理: 使用Helm安装Prometheus,你可以方便地管理版本和更新。Helm允许你指定要安装的特定版本或者升级到新版本,同时能够回滚到先前的版本,以便处理升级中可能出现的问题。

依赖管理: Prometheus通常会与其他组件(如Alertmanager、Grafana等)一起使用。Helm Charts可以定义和管理这些组件的依赖关系,确保所有的相关组件能够正确地安装和配置。

社区支持和生态系统: Helm是一个活跃的开源项目,拥有庞大的社区支持和丰富的第三方Charts库。这意味着你可以从社区中获取到各种用于安装和配置Prometheus的最佳实践,同时也能够共享和贡献你自己的经验。

prometheus全家桶包括哪些组件

Prometheus Operator:
Prometheus Operator 是一个运营 Prometheus 和相关工具的 Kubernetes Operator。它简化了在 Kubernetes 上部署和管理 Prometheus 实例的过程。

Prometheus Server:
Prometheus Server 负责收集和存储时间序列数据,支持通过 PromQL 查询语言进行数据分析和查询。

Alertmanager:
Alertmanager 用于处理和路由警报。它能够接收来自 Prometheus Server 的警报,并根据配置的路由规则发送通知。

Grafana:
Grafana 不是 Prometheus 的一部分,但通常包含在 kube-prometheus-stack 中作为可选组件。Grafana 提供了强大的数据可视化和仪表板功能,允许用户创建、查看和管理监控面板。

kube-state-metrics:
kube-state-metrics 是一个用于从 Kubernetes API 服务器提取 Kubernetes 资源状态信息的组件。它为 Prometheus 提供了丰富的 Kubernetes 监控指标。

node-exporter:
node-exporter 是一个用于收集主机系统级别的性能数据的代理。它通过 HTTP 暴露指标,Prometheus 可以从中获取主机级别的指标数据。

kube-rbac-proxy:
kube-rbac-proxy 是一个用于代理和增强 Kubernetes API 请求的反向代理。它有助于在 Prometheus 和其他 Kubernetes 组件之间建立安全的访问。

Prometheus Adapter:
Prometheus Adapter 允许 Kubernetes 的自动伸缩 API (HPA) 使用 Prometheus 的度量数据来进行自动伸缩决策。

环境

虚拟机

Ip主机名cpu内存硬盘
192.168.10.11master012cpu双核4G100G
192.168.10.12worker012cpu双核4G100G
192.168.10.13worker022cpu双核4G100G

版本 centos7.9
已部署k8s-1.27

一、负载均衡器metallb部署

1. 修改kube-proxy代理模式
kubectl edit configmap kube-proxy -n kube-syste

更改两处
strictARP 后的flase改为true
node 后添加ipvs
没看见往下翻

在这里插入图片描述

重启

kubectl rollout restart daemonset kube-proxy -n kube-system	
2. metallb部署
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.14.5/config/manifests/metallb-native.yaml

服务器连接不了时,可在vpn连接后,浏览器中访问https://raw.githubusercontent.com/metallb/metallb/v0.14.5/config/manifests/metallb-native.yaml
看到内容后复制创建文件

也可以使用离线下载后的文件部署

kubectl apply -f metallb-native.yaml

查看

kubectl -n metallb-system get pod

等待一会,可通过查看描述信息跟踪pod的运行状态,长时间无法完成下载时,各节点重启docker

kubectl -n metallb-system describe pod controller-6b9fd67ff4-rzvg2
3. IP地址池准备
vim ippool.yaml

addresses下是范围

apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: ippool
  namespace: metallb-system
spec:
  addresses:
  - 192.168.10.240-192.168.10.250

yaml应用

kubectl apply -f ippool.yaml

若出现故障提示,等上面pod全部运行起来再部署
还不行,各节点重启docker

查看地址池信息

kubectl -n metallb-system describe ipaddresspools.metallb.io ippool

在这里插入图片描述

4.开启二层通告
vim L2.yaml
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
  name: example
  namespace: metallb-system

应用yaml

kubectl apply -f L2.yaml 

二、 服务代理ingress nginx部署

(1)获取ingress nginx部署文件
创建目录

mkdir tsdir
cd tsdir

windows浏览器打开文件:

https://github.com/kubernetes/ingress-nginx/blob/main/deploy/static/provider/baremetal/deploy.yaml

复制文件内容到linux中deploy.yaml文件

vim deploy.yaml

(2)修改部署文件deploy.yaml

vim deploy.yaml

修改此行 type: NodePort
为 type: LoadBalancer

修改前
在这里插入图片描述
修改后
在这里插入图片描述

(3)部署ingress nginx

kubectl apply -f deploy.yaml

稍等几分钟后查看 需要vpn,没有的话查看信息时会显示连接不到镜像仓库

kubectl -n ingress-nginx get pod

可以看到已经成功运行了
在这里插入图片描述
注; 经过测试,1.24版本的k8s集群部署会出现错误
解决方法
链接: REK安装K8S后,Ingress-nginx一直状态为ContainerCreating

三、使用helm安装prometheus全家桶

先下载kube-prometheus-stack的values到kube-prometheus-stack.yaml-default文件中

helm show values prometheus-community/kube-prometheus-stack > kube-prometheus-stack.yaml-default
cp kube-prometheus-stack.yaml-default kube-prometheus-stack.yaml
 vim kube-prometheus-stack.yaml

把true修改为false
在这里插入图片描述
在这里插入图片描述

	serviceMonitorSelectorNilUsesHelmValues: false
     ruleSelectorNilUsesHelmValues: false

注:
kube-prometheus-stack 识别 k8s 集群内所有的 ServiceMonitor 和 PrometheusRule
默认情况下,kube-prometheus-stack 只识别自己创建的 ServiceMonitor,如果 k8s 集群内有多个非 kube-prometheus-stack 创建的 ServiceMonitor,不会被识别到。PrometheusRule 同理。
要识别所有的 ServiceMonitor 和PrometheusRule ,需要在 将相应的值改成false

安装

helm install kps prometheus-community/kube-prometheus-stack -f kube-prometheus-stack.yaml -n monitoring --create-namespace --version 61.2.0 --debug

注:–debug 输出debug调试信息

查看pod状态

kubectl get pod -n monitoring 

在这里插入图片描述

四、配置prometheus及grafana访问(通过ingress发布)

创建一个目录

mkdir prometheus
cd prometheus

编写ingress对象清单文件

vim prometheus.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-prometheus                    #自定义ingress名称
  namespace: monitoring
spec:
  ingressClassName: nginx
  rules:
  - host: prometheus.test.com                   # 自定义域名
    http:
      paths:
      - pathType: Prefix
        path: "/"
        backend:
          service:
            name: kps-kube-prometheus-stack-prometheus     # 对应上面创建的service名称
            port:
              number: 9090

执行yaml清单文件

kubectl apply -f prometheus.yaml

查看服务

kubectl -n ingress-nginx get svc

在这里插入图片描述

在windows中etc/hosts文件添加

192.168.10.240 prometheus.test.com

在这里插入图片描述
访问
在这里插入图片描述

grafana

vim  grafana.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-grafana                    #自定义ingress名称
  namespace: monitoring
spec:
  ingressClassName: nginx
  rules:
  - host: grafana.test.com                   # 自定义域名
    http:
      paths:
      - pathType: Prefix
        path: "/"
        backend:
          service:
            name: kps-grafana     # 对应上面创建的service名称
            port:
              number: 80

执行yaml文件

kubectl apply -f grafana.yaml

查看

kubectl get secret-n monitoring

在这里插入图片描述

kubectl get  secret kps-grafana -n monitoring -o yaml

在这里插入图片描述
获取账号和密码

账号

echo -n "YWRtaW4=" | base64 --decode

在这里插入图片描述

admin

密码

echo -n "cHJvbS1vcGVyYXRvcg==" | base64 --decode

在这里插入图片描述

prom-operator

在windows中etc/hosts文件添加

192.168.10.240 grafana.test.com

在这里插入图片描述
访问

grafana.test.com

在这里插入图片描述

根据找到的账号和密码登录
在这里插入图片描述
在这里插入图片描述
完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃龙利鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值