Helm 是一个管理 Charts 的工具。Charts是预先配置的 Kubernetes 资源的包。 Helm 是一种简化安装和管理 Kubernetes 应用程序的工具。把它想象成 Kubernetes 的 apt/yum/homebrew。 github: helm、helm-www,Docs、中文
在线安装
xxxxxxxxxxcurl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
离线安装 github下载页面
xxxxxxxxxx# https://github.com/helm/helm/releases/tag/v3.8.2# https://get.helm.sh/helm-v3.8.2-linux-amd64.tar.gztar -zxvf helm-v3.*-linux-amd64.tar.gzmv linux-amd64/helm /usr/bin/rm -rf linux-amd64chmod +x /usr/bin/helm# 添加自动补全source <(helm completion bash)echo 'source <(helm completion bash)' >> /etc/profile
xxxxxxxxxx# 添加 Helm Chart 存储库helm repo add bitnami https://charts.bitnami.com/bitnamihelm repo add stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts# 查看所有仓库helm repo list# 移除仓库helm repo remove bitnami# 查找仓库中的charts:helm search repo [keyword] [flags]helm search repo bitnamihelm search repo stablehelm search repo nginx# 查找某个charts的所有版本:helm search repo bitnami/sonarqube -lhelm search repo bitnami/keycloak -l# 安装示例chartshelm repo update # Make sure we get the latest list of chartshelm install bitnami/mysql --generate-name# pull Charts包,修改 values.yaml 和 templates/configmap.yaml等文件helm pull gitlab/gitlab-runnerhelm pull gitlab/gitlab-runner --version 1.0.0# 查看已安装的charts:helm list# 显示RELEASE的历史修订版本helm history <RELEASE_NAME># 将版本回滚到以前的修订版helm rollback <REVISION># 卸载版本,要卸载版本,请使用以下helm uninstall命令:helm uninstall mysql-1612624192
有五种不同的方式可以表达你想要安装的 chart:
helm install mymaria example/mariadbhelm install mynginx ./nginx-1.2.3.tgzhelm install mynginx ./nginxhelm install mynginx https://example.com/charts/nginx-1.2.3.tgzhelm install --repo https://example.com/charts/ mynginx nginxxxxxxxxxxxhelm install gitlab-runner -f values.yaml gitlab/gitlab-runnerhelm install gitlab-runner -f values.yaml gitlab-runner/
升级的参数必须包括发布名称和 chart。chart 参数可以是以下任意一种:
对于 chart 引用,除非设置了 --version 标志,否则将指定最新版本。
xxxxxxxxxxhelm upgrade gitlab-runner -f values.yaml gitlab-runner/helm upgrade gitlab-runner -f values.yaml gitlab/gitlab-runner --version 1.0.0
可以使用 helm upgrade --install 命令来合并安装/升级命令:
xxxxxxxxxxhelm upgrade --install gitlab-runner -f values.yaml gitlab-runner/
# 创建 namespacekubectl create ns helm# 构建一个 Helm Charthelm create mychart# 查看构建的 Helm Chart 文件列表tree mychart/[root@VM-4-6-centos ~]# tree mychart/mychart/|-- charts|-- Chart.yaml <--- #编写mychart的应用描述信息,修改app版本,和包版本|-- templates| |-- deployment.yaml| |-- _helpers.tpl| |-- hpa.yaml| |-- ingress.yaml| |-- NOTES.txt| |-- serviceaccount.yaml| |-- service.yaml| `-- tests| `-- test-connection.yaml`-- values.yaml <--- #编写应用部署信息# 检查依赖和模板配置是否正确helm lint mychart/helm lint toolclis/# 打包helm package mychart/# 测试模板渲染的内容但又不想安装任何实际应用(helm template)helm upgrade --install --dry-run --namespace helm mychart ./mychart --debughelm template --namespace helm mychart ./mychart --debug# 查看实际加载的模板helm get manifest full-coral# 查看变量定义的值helm show values mychart# 更新helm upgrade mychart ./mychart --set replicaCount=3