kubernetes秘密在环境变量

时间:2018-01-02 20:40:30

标签: kubernetes google-kubernetes-engine docker-secrets

我在GKE上运行的Kubernetes 1.9中创建了一个部署,它利用了放入环境变量的秘密。我使用带有秘密base64编码的yaml文件将秘密上传到GKE。

我在容器中看到的是环境变量在那里,但值包括尾随空格。如果我设置一个值为“bar”的环境变量FOO,那么这就是它的样子,其中我在秘密yaml中放入的base64将是“YmFyCg ==”:

$ echo $FOO
bar 
$ echo \"$FOO\"
"bar "
$ echo $FOO | base64
YmFyCg==
$ echo "$FOO" | base64
YmFyIAo=

对于从环境变量读取的应用程序而言,如果没有额外的空格(例如POSTGRES_PASSWORDPOSTGRES_USER postgres:9.6图像中的for (int i = 0; i < planets.length; i++) { System.out.print(planets[i]); System.out.printf(" %4.2f", planetDiameter[i]); System.out.printf(" %4.2f", planetMass[i]); System.out.printf(" %4.2f\n", gravity[i]); } ENVIRONMENT=somevalue ,则会对编码值进行编码。环境中的其他变量(包括我的部署yaml中没有保密的那些变量)不包括尾部空格;这是唯一有问题的秘密。

1 个答案:

答案 0 :(得分:2)

您的回音正在添加换行符。添加-n以省略尾随换行符