Helm 在哪里存储安装状态?

Nat*_*ong 2 kubernetes-helm

当您运行helm install命令时,Helm 会输出信息,例如此安装的修订版。

Helm 在哪里存储这些信息?(我假设它在集群中的某个地方。)

Nat*_*ong 6

取决于配置

我在文档中找到了答案。

Helm 3 将默认发布信息存储更改为发布名称空间中的 Secrets。 https://helm.sh/docs/topics/advanced/#storage-backends

它接着说,您可以将其配置为将该状态存储在ConfigMap或 PostgreSQL 数据库中。

所以默认情况下,kubectl get secret --namespace my-namespace将包含一个条目,如

sh.helm.release.v1.st.v1   helm.sh/release.v1                    1      13m
Run Code Online (Sandbox Code Playgroud)

并且kubeclt describe sh.helm.release.v1.st.v1会输出类似的东西

Name:         sh.helm.release.v1.st.v1
Namespace:    my-namespace
Labels:       modifiedAt=1613580504
              name=st
              owner=helm
              status=deployed
              version=1
Annotations:  <none>

Type:  helm.sh/release.v1
Run Code Online (Sandbox Code Playgroud)


Adi*_*iii 1

Helm2 中的 Helm 有两个部分:Helm 客户端 (helm)Helm 服务器 (Tiller)(在 Helm3 中已删除)。

当我们运行helm init它时,在 Kubernetes 集群上安装 Tiller 部分。您可以确认安装

kubectl get pods --namespace kube-system 
#see Tiller running.
Run Code Online (Sandbox Code Playgroud)

Helm 在哪里存储这些信息?(我假设它在集群中的某个地方。)至于

默认情况下,tiller 将发布信息存储在其运行的命名空间的 ConfigMaps 中,新版本还支持 SQL 存储后端来存储发布信息。

存储后端

获取发布信息

kubectl get configmap -n kube-system -l "OWNER=TILLER"
Run Code Online (Sandbox Code Playgroud)

然后从配置映射中检查发布信息

kubectl get configmap -n kube-system -o yaml myapp.v2:
Run Code Online (Sandbox Code Playgroud)

helm 如何使用 configmaps 来存储数据

  • 啊哈 - 我在文档的答案中找到 - “Helm 3 将默认发布信息存储更改为发布名称空间中的 Secrets。” - https://helm.sh/docs/topics/advanced/#storage-backends (6认同)