常用命令
第一步、添加仓库
helm repo add incubator https://kubernetes-charts-incubator.storage.googleapis.com/ helm repo add stable https://kubernetes-charts.storage.googleapis.com # 稳定版仓库 helm repo update # 从 Chart 仓库中,更新本地缓存的可用 Chart 信息;
第二步、搜索图表
helm search repo "<chart-name>" helm search repo "haproxy" # 在仓库中搜索 haproxy helm search repo -l "haproxy" # 查看所有版本
安装图表
kubernetes – How to install a specific Chart version – Stack Overflow
helm install "<name>" "<repo/chart-name>" helm install "foo" "incubator/haproxy-ingress" # 生成的资源(比如Ingress、Service、Deployment等等)将会以foo-为前缀 helm install "foo" "incubator/haproxy-ingress" --version "v1.1.2" # 安装特定版本 helm pull "<repo/chart-name>" # 下载 Chart(将下载到当前目录) helm install "foo" "foo-6.3.3.tgz" # 并从本地直接安装 helm install "foo" "incubator/haproxy-ingress" --set scName=xxxxxxx # 指定参数 helm install "foo" "incubator/haproxy-ingress" -f /path/to/values.yaml # 通过文件指定参数
补充说明:
1)在安装前,Helm 会下载 Chart,并保存在 ~/.cache/helm/repository/ 目录;
2)如果通过 helm pull 命令下载 Chart,将会下载到当前目录;
查看图表
# helm -n '<namespace>' list # helm -n kube-storage-nfs list NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION nfs-sc kube-storage-nfs 1 2022-04-18 02:19:20.142099667 +0000 UTC deployed nfs-subdir-external-provisioner-4.0.16 4.0.2
卸载图表
helm uninstall "<name>" helm uninstall "foo" helm delete "foo"
14.2. Using Helm to Install Applications
如果已经安装了he1m命令,如何查找并部署图表呢?
默认情况下,Helm自带一些配置好的图表仓库这些仓库是由社区维护的,详情请参阅 github (https://github.com/kubernetes/charts%EF%BC%89%E3%80%82%E5%85%B6%E4%B8%8A%E6%9C%89100%E5%A4%9A%E4%B8%AA%E5%8F%AF%E5%88%A9%E7%94%A8%E7%9A%84%E5%9B%BE%E8%A1%A8%E3%80%82
例如,假设你想部署 Redis。那么可以再Helm中查找redis并安装。Helm会获取该图表并创建一个实例,该实例称为发行。
首先,确认 tiller处于运行状态,且默认的仓库配置完成:
# helm repo list
现在查找 Redis 包:
Helm将创建该图表中定义的所有 Kubernetes对象,例如,一个secret(请参阅8.2节),一个PVC(请参阅8.5节),一个服务(请参阅5.1节),以及一个部署。所有这些对象组成了一个Helm发行,可以作为一个单元管理。
最终将得到一个能够正常运行的 redis pod:
# kubectl get pods
更多关于Helm图表,以及如何创建自己的图表,请参阅14.3节
14.3. Creating Your Own Chart to Package Your Application with Helm
现有一个包含多AKubernetes个清单文件的应用程序,如何将它打包成Helm图表?
可以使用 helm create 和 helm package命令。
通过 helm create,可以生成图表的骨架。在终端窗口中执行该命令,指定图表的名称。例如,创建一个名为 oreilly的图表:
如果你已经写好了所有的清单文件,那么可以将它们复制到/templates目录下,并删除骨架中生成的清单文件。如果想把你的清单文件变成模板,那么可以将清单文件中需要替换的部分写入 values.yaml文件中。接下来编辑Chart.yaml中的元数据,并将所有独立的图表放入/charts目录中。
你可以通过以下命令在本地测试图表:
最后使用 helm package oreilly 该命令讲生成Chart的tarball。将它复制到本地的图表代码库中,并为本地代码库生成一个新的 index.yaml文件。查看~/.helm,应该能看到如下类似的内容:
KuberntsBiadm《(lrpsw的Bitnami文档中关于“如何创建第一个Helm
hps: docs.bitnami. com/kubernetes/how-to/ create-your-first-helm-chart/)
Helm文档关于“图表最佳实践 helm x#*T"B&k*RH "
(https://docs. helm.sh/chart_best_ practices/)。
参考文献
Helm/Documentation/Quickstart Guide
Uninstalling the Chart
How to delete(uninstall) helm chart on specific resource
For a helm chart, what versions are available?
How to install a specific Chart version
Helm | Helm Pull
Helm | Helm Repo Update
Helm | Values Files