Kubernetes secrets 作为环境变量添加 space 字符

Kubernetes secrets as environment variable add space character

我目前在使用 K8S 时遇到了一个奇怪的问题。事实上,我正在创建一个带有 envFrom 语句的容器,并且 env 变量是从一个秘密中提取的:

envFrom:
  - secretRef:
    name: my-super-secret

我用 base64 编码值创建了秘密,当我在容器中回显变量时,它在末尾添加了一个 space,这是一个很大的问题,因为它是一个密码 ;-)

这是我的秘密:

apiVersion: v1
kind: Secret
metadata:
  name: my-super-secret
data:
  DB_PASSWORD: base64encodedvalue

有没有人可以在这里为我提供一些指导? 我完全不知道这里发生了什么......

您是如何对值进行编码的?

使用这个(Mac)

echo -n "base64encodedvalue" | base64
YmFzZTY0ZW5jb2RlZHZhbHVl

我可以在我的容器中访问我的值,没有尾随 space。

echo YmFzZTY0ZW5jb2RlZHZhbHVl | base64 -d
base64encodedvalue

来源:https://kubernetes.io/docs/tasks/configmap-secret/managing-secret-using-kubectl/