kubernetes(k8s)如何部署secret资源?

发表于: 2020-12-21   最后更新时间: 2020-12-21 22:45:55   1,241 游览

我是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文件中进行设置。

发表于 2020-12-21

使用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解码。

你的答案

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