出于某些奇怪和未知的原因,当我使用具有键值对的ConfigMap时(将使用envFrom
设置为Pod中的环境变量),我的Pod无法启动。
这是我的YAML的ConfigMap部分:
apiVersion: v1
kind: ConfigMap
metadata:
name: all-config
data:
# DB configuration
dbServer: "host.docker.internal"
dbPort: "3306"
# problematic config
validationQuery: 'Select 1'
如果我注释掉validationQuery
键/值对,则窗格开始。如果我将其保留,它将失败。如果我删除空间,它将运行!归结为空格的行为非常奇怪。
关于为什么失败以及用户如何解决这个问题的任何想法?有人可以尝试复制吗?
答案 0 :(得分:3)
老实说,这是因为您的应用程序不喜欢带有空格的环境变量。我自己尝试了一下,当我装入吊舱/容器时,我看到的环境变量的空间很好,很漂亮。
PodSpec:
...
spec:
containers:
- command:
- /bin/sleep
- infinity
env:
- name: WHATEVER
valueFrom:
configMapKeyRef:
key: myenv
name: j
...
$ kubectl get cm j -o=yaml
apiVersion: v1
data:
myenv: Select 1
kind: ConfigMap
metadata:
creationTimestamp: 2018-10-10T20:44:02Z
name: j
namespace: default
resourceVersion: "11111111"
selfLink: /api/v1/namespaces/default/configmaps/j
uid: aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaa
root@mypod-xxxxxxxxxx-xxxxx:/# echo $WHATEVER
Select 1
root@mypod-xxxxxxxxxx-xxxxx:/#