docker - 解码 Kubernetes secret

标签 docker kubernetes

我继承了 Kubernetes/Docker 设置,但由于更改了与数据库密码相关的内容,我不小心使 pod 崩溃。

我正在尝试解决此问题。

我没有太多的 Kubernetes 或 Docker 经验,所以我仍在学习如何做事。

我相信该值包含在 db-user-pass 凭证中,这是一个 Opaque 类型的 secret 。

我是这样描述的:

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

但我不知道如何从这个 secret 中获取任何数据。 Kubernetes 站点上的示例似乎假设我将拥有一个 base64 编码的字符串,但我什至无法理解。我如何获得这个值(value)?

最佳答案

您可以使用 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
同样对于用户名:
kubectl get secrets/db-user-pass --template={{.data.username}} | base64 -D
注意:在 GNU/Linux 上,base64 标志是 -d ,不是 -D .

关于docker - 解码 Kubernetes secret ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56909180/

相关文章:

docker stack 使用 GPU 部署,但找不到 nvidia 设备

apache-spark - 使用自定义插件和调度框架优化 Kubernetes 上的 Apache Spark

docker - nginx入口将流量发送到pod中的nginx,但不返回 Assets

Bash 重定向不适用于容器创建 : "can' t create/dev/tcp/<ip>/<port>: nonexistent directory"

linux - 如何将文件传输到主机并将密码传递给它

docker - 在Docker容器中与 `apt-get install`一起安装的软件包在哪里?

docker - 是否可以使用不同的参数多次运行docker容器?

库伯内特斯 : Dynamic Storage Provisioning using host-path

networking - 有没有办法在 Kubernetes 中保留传出流量的源端口?

kubernetes - 运行 kubelet 时 "x509: certificate signed by unknown authority"