【发布时间】:2020-11-19 16:21:39
【问题描述】:
我从一个文件 (secret.txt) 创建了一个 kubernetes 密钥:
k1=v1
k2=v2
k3=v3
看起来像这个秘密-:
apiVersion: v1
metadata:
name: secret007
data:
secret.txt: bWFza1NhbHQ9InRlc3RzYWx0IgpzM1
我在 pod 中使用它作为环境变量,如下所示:
- name: KEY1
valueFrom:
secretKeyRef:
key: k1
name: secret007
optional: false
问题 问题是因为数据的值是单个 base64 值。我无法在 pod 中引用它并收到此错误。
Warning Failed 6s (x2 over 6s) kubelet, Error: couldn't find key k1 in Secret kube-system/secret007
请建议如何在不更改密钥格式的情况下执行此操作,即 Secret 将是文件名的单个键值,所有 secret.txt 值作为单个 base64 值。有可能吗?
【问题讨论】:
-
Kubernetes 从不尝试查看 Secret 值(或 ConfigMap 值)的“内部”。您可以参考问题中显示的整个 Secret 值,但无法告诉它 (a) 该值实际上是换行符分隔的键=值对(与 TOML、YAML、JSON、XML , ...) 和 (b) 你想从中选择一些特定的值。
-
感谢您的解释。明白了,不读秘密是有道理的。
-
如果可以解决您的问题,请考虑发布答案。这对社区的其他人来说会更加明显。
标签: kubernetes