使用 helm 时创建的额外秘密

Bha*_*ara 12 kubernetes kubernetes-helm kubernetes-secrets

我创建了一个舵图,它具有secrets.yaml

apiVersion: v1
kind: Secret
type: Opaque
metadata: 
 name: appdbpassword
stringData:
  password: password@1
Run Code Online (Sandbox Code Playgroud)

我的豆荚是:

apiVersion: v1
kind: Pod
metadata:
  name: expense-pod-sample-1
spec:
  containers:
    - name: expense-container-sample-1
      image: exm:1
      command: [ "/bin/sh", "-c", "--" ]
      args: [ "while true; do sleep 30; done;" ]
      envFrom:
      - secretRef:
              name: appdbpassword
Run Code Online (Sandbox Code Playgroud)

每当我运行kubectl get secrets命令时,我都会得到以下秘密:

name                                     Type                 Data    Age
appdbpassword                            Opaque               1      41m
sh.helm.release.v1.myhelm-1572515128.v1  helm.sh/release.v1   1      41m
Run Code Online (Sandbox Code Playgroud)

为什么我会得到那个额外的秘密?我在这里错过了什么吗?

Edu*_*llo 7

Helm v2默认使用 ConfigMaps来存储发布信息。ConfigMap 是在 Tiller 的相同命名空间中创建的(通常为kube-system)。

在 Helm v3 中,Tiller 被删除了,每个发布版本的信息都必须放在某个地方

在 Helm 3 中,关于特定版本的发布信息现在存储在与发布本身相同的命名空间中。

此外,Helm v3使用 Secrets 作为默认存储驱动程序而不是 ConfigMaps(即,您应该看到每个具有发布版本的命名空间的这些 helm secrets)。

  • helm 应该创建一个新的命名空间并将这些烦人的秘密放在那里 (3认同)
  • 我希望当我使用升级 --install 时我只看到 1 个秘密而不是 20 个 (2认同)

js.*_*js. 6

有一个选项可以helm upgrade限制保留的旧部署机密的数量:

--history-max int      limit the maximum number of revisions saved per release.
                       Use 0 for no limit (default 10)
Run Code Online (Sandbox Code Playgroud)