【问题标题】:kubernetes secrets have trailing whitespace in environment variablesKubernetes 机密在环境变量中有尾随空格
【发布时间】:2018-01-02 20:40:30
【问题描述】:

我在 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:9.6 图像中的POSTGRES_PASSWORDPOSTGRES_USER。环境中的其他变量(包括那些从我的部署 yaml 中设置的没有秘密的变量)不包括尾随空格;只有秘密有问题。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 你应该更具体。 OP的意思是当你用base64编码时你应该使用echo -n。示例:echo -n "my secret" | base64 -w0
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    • 2019-07-04
    • 2023-01-22
    • 2015-08-07
    • 1970-01-01
    相关资源
    最近更新 更多