如何解码/解码Kubernetes机密

这是续集。
您可以通过以下链接以PDF格式下载本文来支持我们。

以PDF格式下载指南


这是续集。

这是续集。
这是续集。

诸如密码,SSH密钥,API凭证和OAuth令牌之类的敏感信息作为秘密存储在Kubernetes中。我最近创建了一个有关如何将Kubernetes机密从一个名称空间复制到另一个名称空间的指南。如果需要查看密码的实际值,则可以解码base64数据。本简短指南介绍了如何使用kubectl命令对Kubernetes中的base64秘密进行解码。

在此演示中,我们将使用数据库用户名和密码创建一个简单的秘密。

echo -n 'admin' > ./username.txt
echo -n 'Password' > ./password.txt

运行kubectl create secret命令在Kubernetes API服务器上创建一个秘密对象。

$ kubectl create secret generic my-user-pass --from-file=./username.txt --from-file=./password.txt
secret/my-user-pass created

您可以通过运行以下kubectl命令来验证秘密对象是否已成功创建。

$ kubectl get secret

解码机密数据。

kubectl get secret $secret_name -o go-template='{{range $k,$v := .data}}{{printf "%s: " $k}}{{if not $v}}{{$v}}{{else}}{{$v | base64decode}}{{end}}{{"n"}}{{end}}'

这是我的命令执行输出:

password.txt: Password
username.txt: admin

如果你有 q 您可以使用以下命令对其进行解码。

$ kubectl get secret my-user-pass -o json | jq '.data | map_values(@base64d)'
{
  "password.txt": "Password",
  "username.txt": "admin"

}

使用以下命令安装jq。

--- Ubuntu / Debian ---
$ sudo apt install jq

--- CentOS / Fedora ---
$ sudo yum install jq

这使Kubernetes可以轻松输出base64编码的密码。

以下是有关Kubernetes的其他文章。

在EKS Kubernetes集群上部署Prometheus

如何在命名空间之间复制Kubernetes机密

将水平Pod自动缩放器与Kubernetes EKS集群一起使用

这是续集。
您可以通过以下链接以PDF格式下载本文来支持我们。

以PDF格式下载指南


这是续集。

这是续集。
这是续集。

Sidebar