二进制文件的 kubernetes configmaps

use*_*861 5 kubernetes

我的 kubernetes 版本是 1.10.4。

我正在尝试为 java 密钥库文件创建一个 ConfigMap:

kubectl create configmap key-config --from-file=server-keystore=/home/ubuntu/ssl/server.keystore.jks --from-file=server-truststore=/home/ubuntu/ssl/server.truststore.jks --from-file=client--truststore=/home/ubuntu/ssl/client.truststore.jks --append-hash=false
Run Code Online (Sandbox Code Playgroud)

它说configmap "key-config" created

但是当我描述 configmap 时,我得到了空值:

$ kubectl describe configmaps key-config
Name:         key-config
Namespace:    prod-es
Labels:       <none>
Annotations:  <none>

Data
====
Events:  <none>
Run Code Online (Sandbox Code Playgroud)

我知道我的版本 kubernetes 支持二进制数据作为配置映射或机密,但我不确定我的方法有什么问题。

对此的任何投入都受到高度赞赏。

Jan*_*art 7

kubectl describe目前在 ConfigMaps 中不显示二进制数据(kubectl 版本 v1.10.4);输出的DATAkubectl get configmap也不包括二进制元素:

$ kubectl get cm
NAME           DATA      AGE
key-config     0         1m
Run Code Online (Sandbox Code Playgroud)

但是数据就在那里,目前只是一个糟糕的UI体验。您可以通过以下方式验证:

kubectl get cm key-config -o json
Run Code Online (Sandbox Code Playgroud)

或者你可以使用这个友好的命令来检查 ConfigMap 是否可以挂载以及投影的内容是否与你的原始文件匹配:

kubectl run cm-test --image=busybox --rm --attach --restart=Never --overrides='{"spec":{"volumes":[{"name":"cm", "configMap":{"name":"key-config"}}], "containers":[{"name":"cm-test", "image":"busybox", "command":["sh","-c","md5sum /cm/*"], "volumeMounts":[{"name":"cm", "mountPath":"/cm"}]}]}}'