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 部署 Prometheus,您可以按照以下步骤进行操作: 1. 安装 Helm:首先,您需要在您的机器上安装 Helm。您可以从 [Helm 的官方网站](https://helm.sh/docs/intro/install/) 下载适合您的操作系统的 Helm 安装包。 2. 添加 Prometheus 的 Helm chart 仓库:使用以下命令添加 Prometheus 的 Helm chart 仓库: ```bash helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update ``` 3. 安装 Prometheus使用以下命令安装 Prometheus: ```bash helm install prometheus prometheus-community/kube-prometheus-stack ``` 上述命令将使用 Prometheus 的 Helm chart 安装 kube-prometheus-stack。该 chart 包含 Prometheus Server、Alertmanager、Prometheus Operator 和 Grafana 等组件。 4. 等待安装完成:使用以下命令等待 Prometheus 的所有组件都安装成功: ```bash kubectl get pods -n <namespace> ``` 在上述命令中,将 `<namespace>` 替换为您安装 Prometheus 的命名空间。 5. 访问 Prometheus使用以下命令暴露 Prometheus Server 的服务: ```bash kubectl port-forward -n <namespace> prometheus-prometheus-kube-prometheus-prometheus-0 9090 ``` 在上述命令中,将 `<namespace>` 替换为您安装 Prometheus 的命名空间。访问 `http://localhost:9090` 即可访问 Prometheus Web UI。 6. 访问 Grafana:使用以下命令暴露 Grafana 的服务: ```bash kubectl port-forward -n <namespace> prometheus-grafana-<random-string> 3000 ``` 在上述命令中,将 `<namespace>` 替换为您安装 Prometheus 的命名空间,`<random-string>` 为随机生成的字符串。访问 `http://localhost:3000` 即可访问 Grafana Web UI。初始用户名和密码分别为 `admin` 和 `prom-operator`。 以上就是使用 Helm 部署 Prometheus 的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值