【问题标题】:Is it possible to create a string array secret in k8s?是否可以在 k8s 中创建字符串数组秘密?
【发布时间】:2021-03-31 04:43:33
【问题描述】:

我正在尝试将字符串数组存储为秘密;我有这个 secrets.yml 文件,我在本地环境中使用它并且工作正常(值仅用于解释目的):

secrets.yml

passwordz:
  - pass_001
  - pass_002
  - pass_003

这个想法是能够存储多个密码,我想将它们用作 k8s 机密的一部分,但到目前为止还没有运气;像这样:

k8s-secrets.yml

apiVersion: v1
kind: Secret
metadata:
  name: master-passwordz
type: Opaque
data:
  secrets.yml: |-
    passwordz: CiAgLSBwYXNzXzAwMQogIC0gcGFzc18wMDIKICAtIHBhc3NfMDAz

当时尝试应用这个秘密:

kubectl apply -f ./k8s-secrets.yml

我收到以下错误:

Error from server (BadRequest): error when creating "k8s-secrets.yml": Secret in version "v1" cannot be handled as a Secret: v1.Secret.ObjectMeta: v1.ObjectMeta.TypeMeta: Kind: Data: decode base64: illegal base64 data at input byte 3

知道是否可以做到这一点吗?

【问题讨论】:

    标签: kubernetes kubernetes-secrets


    【解决方案1】:

    您可以尝试使用“stringData”而不是“data”。 AFAIK 当您未在 Secrets 中提供完整的 base64 编码数据时,应使用此密钥。

    【讨论】:

      【解决方案2】:

      不,值必须是[]byte,即某种字符串。您必须使用某种编码(通常是 JSON)来存储您的数组,所以它是一个简单的字符串。

      【讨论】:

        【解决方案3】:
        apiVersion: v1
        kind: Secret
        metadata:
          name: master-passwordz
        type: Opaque
        data:
            passwordz__0: pass_001
            passwordz__1: pass_002
            passwordz__2: pass_003
        

        这样做怎么样?

        【讨论】:

          猜你喜欢
          • 2021-10-26
          • 1970-01-01
          • 2021-05-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-12-07
          相关资源
          最近更新 更多