作者 乐维社区(forum.lwops.cn)许远

背景

随着容器化技术的飞速发展,Kubernetes已成为企业级容器编排的事实标准。为了确保容器化应用的稳定性和性能,有效的监控和告警系统显得尤为重要。因容器监控需要,某公司拟在k8s集群中搭建prometheus,计划通过Helm进行部署。

Kubernetes原生应用程序拥有一系列YAML文件,允许用户在部署应用时自定义应用程序的一些元数据,以便于应用程序的分发。而Helm则是Kubernetes生态系统中的一个软件包管理工具,类似于Ubuntu的apt、CentOS的yum或Python的pip,专门负责管理Kubernetes应用资源,它主要作用包括应用程序封装、版本管理、依赖检查以及便于应用程序分发,使得用户能够以一种标准化和自动化的方式部署、升级和回滚应用程序。

以下是详细部署教程:

1. 安装HELM

下载二进制文件安装:

[root@k8s-master~]wget -c https://get.helm.sh/helm-v3.14.1-linux-amd64.tar.gz

[root@k8s-master ~] tar zxvf helm-v3.14.1-linux-amd64.tar.gz [root@k8s-master ~] cd linux-amd64/

[root@k8s-master linux-amd64] ls helm  LICENSE  README.md

[root@k8s-master linux-amd64] mv helm /usr/local/bin


#查看版本

[root@k8s-master ~] helm version

version.BuildInfo{Version:"v3.13.0",

GitCommit:"825e86f6a7a38cef1112bfa606e4127a706749b1", GitTreeState:"clean", GoVersion:"go1.20.8"}


#查看命令帮助

[root@k8s-master ~] helm --help


2. 添加仓库


[root@k8s-master]# helm repo add bitnami https://charts.bitnami.com/bitnami [root@k8s-master ~]# helm repo list

NAME    URL

bitnami  https://charts.bitnami.com/bitnami



3. 搜索应用

[root@k8s-master ~]# helm search repo bitnami | grep prometheus


4. 拉取应用

[root@k8s-master ~] helm pull bitnami/prometheus


5. 进入目录

[root@k8s-master ~] cd prometheus/


6. 修改value.yaml文件

修改prometheus中的value.yaml文件(prometheus/templates/下k8s构建的 资源对象,就是引用的value.yaml的值):

[root@k8s-master ~] vi value.yaml


修改svc资源的type方式:

Prometheus部署教程——基于 HELM 方式_prometheus安装部署

  1. 如果使用了storageclass就将文件中的storageclass改变成自己本地的storageclass的名字
  2. 将svc的type改为NodePort( NodePort就是映射主机端口,进行访问用的)
  3. 可以将pv的值调大点
  4. 安装promtheus [root@k8s-master ~] helm install 自定义应用名称 -f values.yaml bitnami/prometheus

8.查看开放端口

[root@k8s-master ~] kubectl get svc

Prometheus部署教程——基于 HELM 方式_Prometheus_02

使用浏览器访问ip:30331即可:

Prometheus部署教程——基于 HELM 方式_prometheus安装部署_03

检查资源对象是否成功:

Prometheus部署教程——基于 HELM 方式_Prometheus_04

Prometheus部署教程——基于 HELM 方式_prometheus安装部署_05

Prometheus部署教程——基于 HELM 方式_Prometheus_06

查看开放端口:

Prometheus部署教程——基于 HELM 方式_prometheus安装部署_07

至此,整个部署过程结束。

从部署过程看,使用Helm部署Prometheus并不复杂,甚至对比其他部署方式,

使用Helm部署Prometheus到Kubernetes集群还具有以下优势:

1.模板化和参数化:Helm使用模板化配置,允许用户在部署时自定义应用程序的参数,从而适应不同的部署需求和环境。

2.版本控制和回滚:Helm支持应用的版本管理,可以轻松回滚到先前的版本,如果新版本出现问题,增强了部署的安全性和灵活性。

3.依赖管理:Helm能够自动处理应用的依赖关系,确保所有必需的组件都能正确安装和配置,减少了手动管理依赖的复杂性。

4.安全性:Helm 3移除了服务端组件Tiller,使用Kubernetes原生的RBAC进行权限控制,简化了安全模型。

5.配置的一致性和可维护性:通过Helm管理的配置,可以确保不同环境中配置的一致性,同时便于维护和更新配置。

这些优势使得Helm成为Kubernetes集群中部署和管理Prometheus及其他应用的强大工具。

以上就是本期的全部内容,更多运维技巧欢迎关注乐维社区,更多运维问题也欢迎到乐维社区留言提问。