从文件创建密钥时,使用Kubernetes Secret作为环境变量 [英] Use Kubernetes Secret as Environment Variable when secret is create from a file

查看:137
本文介绍了从文件创建密钥时,使用Kubernetes Secret作为环境变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经从文件(secret.txt)中创建了一个kubernetes机密:

I have created a kubernetes secret from a file (secret.txt):

k1=v1
k2=v2
k3=v3

看起来像这个秘密-:

apiVersion: v1
metadata:
  name: secret007
data:
  secret.txt: bWFza1NhbHQ9InRlc3RzYWx0IgpzM1

我将其用作吊舱中的环境变量,如下所示:

I am using it as environment variable in the pod like this:

 - name: KEY1
   valueFrom:
     secretKeyRef:
       key: k1
       name: secret007
       optional: false

问题 由于数据具有作为单个base64值的值,因此出现问题.我无法在广告连播中引用它并收到此错误.

Problem Problem since the data has a value as a single base64 value. I am not able to refer it in the pod and getting this error.

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

请建议如何在不更改密码格式的情况下执行此操作,即,密码将是filename的单个键值,而所有secret.txt值将作为单个base64值.有可能吗?

Please suggest how to do this without changing the secret format i.e Secret would be a single key value of filename and all secret.txt values as a single base64 value. Is it possible?

推荐答案

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

You can create secret entries from environment file

kubectl create secret generic test --from-env-file=secret.txt

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

and the output will have distinct values in your secret

apiVersion: v1
data:
  k1: djE=
  k2: djI=
  k3: djM=
kind: Secret
metadata:
  creationTimestamp: null
  name: test

这篇关于从文件创建密钥时,使用Kubernetes Secret作为环境变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆