helm chart prometheus_不会真的有人不用helm吧?不会吧不会吧?

本文介绍了Kubernetes中Helm的用途,将其比喻为Linux的YUM懒人包,详细阐述了Helm的安装步骤、配置国内仓库、基础命令使用、自定义配置选项以及查看和管理已安装包的方法。通过实例展示了如何创建和调试自定义chart,帮助读者快速掌握Helm的基础操作。
摘要由CSDN通过智能技术生成

有show me the money内味了

6d9863c1c5ec135016a68bc7c54a0102.png

先来张示意图压压惊。(这次决定不用手绘来吓唬人了)

10ff8c5720ed0751f29c1dbc6e0000b8.png

套用一哈官方的话就是

What is Helm?

Helm gives teams the tools they need to collaborate when creating, installing, and managing applications inside of Kubernetes.

With Helm, you can...

  • Find prepackaged software (charts) to install and use

  • Easily create and host your own packages

  • Install packages into any Kubernetes cluster

  • Query the cluster to see what packages are installed and running

  • Update, delete, rollback, or view the history of installed packages

Helm makes it easy to run applications inside Kubernetes.

62b54afe8a98d09b09328cd272b46970.png

对对对。你就理解成一个LINUX YUM懒人包好了。

有多懒呢。一条命令你就可以在kubernetes中构建任意一个复杂的高可用集群

那要不先装一下吧,1924aab676bbc60d47071c9536800cf5.png作为一名网管也就会先装一下了

①下载链接https://github.com/helm/helm/releases #下载v3.x版本

wget https://github.com/helm/helm/releases/xxxtar -zvxf xxxmv linux-amd64/helm /usr/binhelm version

②配置国内Chart仓库

  • 微软仓库http://mirror.azure.cn/kubernetes/charts

  • Aliyunhttps://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

helm repo add stable http://mirror.azure.cn/kubernetes/chartshelm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/chartshelm repo updatehelm repo listNAME      URL                                                   stable    http://mirror.azure.cn/kubernetes/charts              aliyun    https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

简简单单伐?接下来讲一下基础使用

①基础命令使用

事例:部署一个mysql

helm search repo mysqlhelm show values stable/mysql#查看stable/mysql的chart values## mysql image version## ref: https://hub.docker.com/r/library/mysql/tags/##image: "mysql"imageTag: "5.7.28"strategy:  type: Recreate。。。helm install db stable/mysql#如果没有pv的话,可能需要满足一个8GB大小的PV作为存储

②自定义chart配置选项(仍然测试mysql)

helm show values stable/mysql > values.yamlhelm install db2 -f values.yaml stable/mysql#修改完配置以后指定chart配置

③查看stable/mysql的chart结构

helm pull stable/mysql --untar#下载stable/mysql的chart包并解压[ec2-user@ip-172-16-0-105 mysql]$ tree.├── Chart.yaml├── README.md├── templates│   ├── configurationFiles-configmap.yaml│   ├── deployment.yaml│   ├── _helpers.tpl│   ├── initializationFiles-configmap.yaml│   ├── NOTES.txt│   ├── pvc.yaml│   ├── secrets.yaml│   ├── serviceaccount.yaml│   ├── servicemonitor.yaml│   ├── svc.yaml│   └── tests│       ├── test-configmap.yaml│       └── test.yaml└── values.yaml

学废了么?

现在来拆解一下结构。

①先创建一个自己的chart包

helm create mychart#创建一个名称为“mychart”的charttree .#查看结构.├── mychart │   ├── charts #定义了chart的依赖│   ├── Chart.yaml #定义了chart相关的基本信息,比如名称,版本等│   ├── templates #包含了所有这个chart的yaml│   │   ├── deployment.yaml│   │   ├── _helpers.tpl #模板│   │   ├── ingress.yaml│   │   ├── NOTES.txt #部署后输出的信息│   │   ├── serviceaccount.yaml│   │   ├── service.yaml│   │   └── tests│   │       └── test-connection.yaml│   └── values.yaml #定义了所有动态会修改的变量,修改后会被templates引用

②用一个nginx-deployment来调试一下这个chart包

rm -rf mychart/templates/*kubectl create deployment mychart --image=nginx -o yaml --dry-run > mychart/templates/deployment.yamlvim mychart/templates/deployment.yamlapiVersion: apps/v1kind: Deploymentmetadata:  name: {{ .Values.name }} #从values.yaml里取name的值spec:  replicas: {{ .Values.replicas }} #从values.yaml里取replicas的值  selector:    matchLabels:      app: mychart  template:    metadata:      labels:        app: mychart    spec:      containers:      - image: {{ .Values.image }}:{{ .Values.imageTag }} #从values.yaml里取image和imageTag的值        name: nginx                        vim mychart/values.yamname: nginxreplicas: 3image: nginximageTag: 1.16helm install nginx mychart/helm get manifest nginx#查看chart修改信息vim mychart/values.yaml#修改imageTag:1.17helm upgrade nginx mychart/#升级charthelm get manifest nginxhelm rollback nginx#回滚charthelm get manifest nginxhelm package mychart/#打包charthelm uninstall nginx#卸载chart

初步看上去非常眼熟吧。简直跟prometheus的rules使用方法如出一辙。

这里主要都是用了golang的标准库go template

所以这玩意儿到底好用在哪呢?看上去还是直接写yaml简单嘛

稍安勿躁,下一章节会整一个通用的微服务helm模板来跟普通的yaml部署battle一下(如果有下一章的话)

e5e02f26bdf4e05c9dc79853ce9a9919.png

Helm是一个流行的包管理工具,用于 Kubernetes 环境中部署、升级和卸载应用。Prometheus 是一个开源的监控系统,专门设计用于收集并存储时间序列数据。要使用 Helm 部署 Prometheus,你需要按照以下步骤操作: 1. **安装 Helm**: 如果你还没有安装 Helm,首先需要从其官网下载适合的版本,并根据官方文档完成安装。 2. **添加 Charts Repository**: 添加 Prometheus 的官方 Helm 图表仓库,通常使用 `helm repo add` 命令: ``` helm repo add prometheus-community https://prometheus-community.github.io/helm-charts ``` 3. **检索 Chart**: 使用 `helm search repo prometheus` 查找名为 "prometheus" 或包含 "prometheus" 的相关图表。 4. **安装 Chart**: 选择合适的图谱(如 `stable/prometheus`),然后安装它: ``` helm install my-prometheus prometheus-community/prometheus --version <chart_version> ``` 替换 `<chart_version>` 为你想要的 Prometheus 版本号。 5. **配置 Values**: 创建一个 `values.yaml` 文件来定制安装选项,例如设置监听地址、存储后端等。编辑此文件,保存在本地目录下,并在安装命令中指定: ```bash helm install my-prometheus prometheus-community/prometheus -f values.yaml --version <chart_version> ``` 6. **验证安装**: 安装完成后,你可以通过 Kubernetes 应用程序清单 (`kubectl get deployments` 或 `services`) 来确认 Prometheus 是否成功运行。 7. **监控和访问**: Prometheus 配置好后,通过访问 Pod 的 IP 和默认服务端口 (9090) 来查看指标和配置界面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值