我使用库伯内特斯部署我的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登录到我的仪表板…看起来问题发生在我使用变量编码我的密码时….但是我使用变量编码我的密码
正如@Pratheesh评论中提到的,在首次部署grafana后,不会删除/重新创建持久卷,并且包含Grafana仪表板密码的文件grafana. db
仍保留旧密码。
为了解决这个问题,在使用新密码应用秘密之前,需要删除PV。