「Helm」- 常用命令

常用命令

第一步、添加仓库

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处于运行状态,且默认的仓库配置完成:

# kubectl get pods –all-namespaces greptiller

# helm repo list

现在查找 Redis 包:

# helm search redis

Helm将创建该图表中定义的所有 Kubernetes对象,例如,一个secret(请参阅8.2节),一个PVC(请参阅8.5节),一个服务(请参阅5.1节),以及一个部署。所有这些对象组成了一个Helm发行,可以作为一个单元管理。

最终将得到一个能够正常运行的 redis pod:

# helm 1s

# 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的图表:

# helm create oreilly

如果你已经写好了所有的清单文件,那么可以将它们复制到/templates目录下,并删除骨架中生成的清单文件。如果想把你的清单文件变成模板,那么可以将清单文件中需要替换的部分写入 values.yaml文件中。接下来编辑Chart.yaml中的元数据,并将所有独立的图表放入/charts目录中。

你可以通过以下命令在本地测试图表:

# helm install./oreilly

最后使用 helm package oreilly 该命令讲生成Chart的tarball。将它复制到本地的图表代码库中,并为本地代码库生成一个新的 index.yaml文件。查看~/.helm,应该能看到如下类似的内容:

ls -l ~/.helm/repository/local/

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