提问者:小点点

秘密是没有正确解码库伯内特斯秘密


我使用库伯内特斯部署我的grafana仪表板,我试图使用库伯内特斯秘密保存grafana管理员密码

    apiVersion: v1
    kind: Secret
    metadata:
      name: $APP_INSTANCE_NAME-grafana
      labels:
        app.kubernetes.io/name: $APP_INSTANCE_NAME
        app.kubernetes.io/component: grafana
    type: Opaque
    data:
      # By default, admin-user is set to `admin`
      admin-user: YWRtaW4=
      admin-password: "$GRAFANA_GENERATED_PASSWORD"

GRAFANA_GENERATED_PASSWORD的值是base64编码和导出

export GRAFANA_GENERATED_PASSWORD="$(echo -n $PASSWORD | base64)"

其中PASSWORD是我在机器上导出的变量,例如export PASSWORD=qwerty123

我试图传递GRAFANA_GENERATED_PASSWORD的值到yaml文件的秘密喜欢

envsubst '$GRAFANA_GENERATED_PASSWORD'  > "grafana_secret.yaml"

传递base64编码值后的yaml文件如下

apiVersion: v1
kind: Secret
metadata:
  name: kafka-monitor-grafana
  labels:
    app.kubernetes.io/name: kafka-monitor
    app.kubernetes.io/component: grafana
type: Opaque
data:
  # By default, admin-user is set to `admin`
  admin-user: YWRtaW4=
  admin-password: "cXdlcnR5MTIz"

部署完我所有的对象后,我无法使用密码qwerty123登录到我的仪表板,该密码已正确编码。

但是当我尝试像一样对密码进行编码时,导出GRAFANA_GENERATED_PASSWORD="$(echo-n'qwerty123'|base64)"

它工作正常,我可以使用密码qwerty123登录到我的仪表板…看起来问题发生在我使用变量编码我的密码时….但是我使用变量编码我的密码


共1个答案

匿名用户

正如@Pratheesh评论中提到的,在首次部署grafana后,不会删除/重新创建持久卷,并且包含Grafana仪表板密码的文件grafana. db仍保留旧密码。

为了解决这个问题,在使用新密码应用秘密之前,需要删除PV。