解码Kubernetes secret

识趣 发表于: 2022-02-12   最后更新时间: 2022-02-12 22:54:11   622 游览

我继承了Kubernetes/Docker的配置,但不小心修改了与数据库密码有关的东西,导致pod崩溃。

我试图解决这个问题。

我没有太多的Kubernetes或Docker经验,我还在学习阶段。

这个值包含在db-user-pass凭证里面,这是一个不透明类型的密码。

describing它:

kubectl describe secrets/db-user-pass
Name:         db-user-pass
Namespace:    default
Labels:       <none>
Annotations:  <none>

Type:  Opaque

Data
====
password:  16 bytes
username:  13 bytes

但我不知道如何从这个密钥中获得明文。Kubernetes网站上的例子似乎假定我有一个base64编码的字符串,但我连这个都获取不到。我怎样才能得到这个值呢?

发表于 2022-02-12

你可以使用kubectl get secrets/db-user-pass -o yaml-o json,你会看到base64编码的usernamepassword。然后,你可以复制这个值,并使用echo <ENCODED_VALUE> | base64 -D(Mac OS X)这样的方法进行解码。

一个更方便获取的方式是:

kubectl get secrets/db-user-pass --template={{.data.password}} | base64 -D

同样的,对于username也是如此:

kubectl get secrets/db-user-pass --template={{.data.username}} | base64 -D

注意:在GNU/Linux上,base64标志是-d,而不是-D

识趣 -> 半兽人 2年前

谢谢,获取到了!

你的答案

查看kubernetes相关的其他问题或提一个您自己的问题