从文件创建 Secret 时,使用 Kubernetes Secret 作为环境变量

Alo*_*ngh 1 kubernetes

我从文件 (secret.txt) 创建了一个 kubernetes 秘密:

k1=v1
k2=v2
k3=v3
Run Code Online (Sandbox Code Playgroud)

看起来像这个秘密——:

k1=v1
k2=v2
k3=v3
Run Code Online (Sandbox Code Playgroud)

我将它用作 pod 中的环境变量,如下所示:

apiVersion: v1
metadata:
  name: secret007
data:
  secret.txt: bWFza1NhbHQ9InRlc3RzYWx0IgpzM1
Run Code Online (Sandbox Code Playgroud)

问题 由于数据的值为单个 base64 值,因此出现问题。我无法在 Pod 中引用它并收到此错误。

  Warning  Failed     6s (x2 over 6s)  kubelet, Error: couldn't find key k1 in Secret kube-system/secret007
Run Code Online (Sandbox Code Playgroud)

请建议如何在不更改机密格式的情况下执行此操作,即机密将是文件名的单个键值,所有 Secret.txt 值将作为单个 base64 值。是否可以?

Fed*_*oni 5

您可以从环境文件创建秘密条目

kubectl create secret generic test --from-env-file=secret.txt
Run Code Online (Sandbox Code Playgroud)

并且输出将在您的秘密中具有不同的值

apiVersion: v1
data:
  k1: djE=
  k2: djI=
  k3: djM=
kind: Secret
metadata:
  creationTimestamp: null
  name: test
Run Code Online (Sandbox Code Playgroud)