我是Kubernetes的新手,正试图了解如何设置秘密。我将尝试用一个例子来说明。比方说,我有一个secret资源,看起来像。
apiVersion: v1
kind: Secret
metadata:
name: big-secrets
type: Opaque
data:
secret-password: "secretMeow"
secret-key: "angryWoof"
database-password: "happyWhale"
我如何使用kubectl设置(不知道这里的设置是否正确)这些secrets,以及如何验证它们?不知道如何从上面提到的yaml文件中进行设置。
使用
stringData
可以使用纯文本值创建一个secret。apiVersion: v1 kind: Secret metadata: name: big-secrets type: Opaque stringData: secret-password: "secretMeow" secret-key: "angryWoof" database-password: "happyWhale"
但是,值得注意的是,它为方便起见提供了更多信息,并且文档说:
它是作为一种只写的方便方法提供的。所有key和value在写入时都会被合并到数据字段中(覆盖现有的值)。当从API读取时,它不会被输出。
对于如何读取secret的问题,如果您希望以编程方式进行使用,可以使用
jq
之类的工具来解析Kubernetes
的输出并进行base64
解码:kubectl get secret big-secrets -o json | jq -r '.data["secret-password"] | @base64d'
这将以JSON形式获取创建的secret(
-o yaml
也可以选择),读取给定secret的数据字段(在这种情况下为secret-password
),然后对它进行base64
解码。你的答案