Der*_*har 16 configuration configuration-files kubernetes
可以在Kubernetes ConfigMap中存储二进制文件,然后从安装此ConfigMap的卷中读取相同的内容吗?例如,如果目录/etc/mycompany/myapp/config包含二进制文件keystore.jks,则会
kubectl create configmap myapp-config --from-file=/etc/mycompany/myapp/config
Run Code Online (Sandbox Code Playgroud)
keystore.jks在ConfigMap myapp-config中包含文件,以后可以映射到卷,挂载到容器中,并作为二进制文件读取?
例如,假设下面的吊舱规范,应该keystore.jks是提供给myapp在/etc/mycompany/myapp/config/keystore.jks?
apiVersion: v1
kind: Pod
metadata:
name: myapp
spec:
containers:
- name: myapp
image: mycompany/myapp
volumeMounts:
- name: myapp-config
mountPath: /etc/mycompany/myapp/config
volumes:
- name: myapp-config
configMap:
name: myapp-config
Run Code Online (Sandbox Code Playgroud)
Kubernetes版本详细信息:
derek@derek-HP-EliteOne-800-G1-AiO:~/Documents/platinum/fix/brvm$ kubectl version
Client Version: version.Info{Major:"1", Minor:"3", GitVersion:"v1.3.6", GitCommit:"ae4550cc9c89a593bcda6678df201db1b208133b", GitTreeState:"clean", BuildDate:"2016-08-26T18:13:23Z", GoVersion:"go1.6.2", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"3", GitVersion:"v1.3.6+coreos.0", GitCommit:"f6f0055b8e503cbe5fb7b6f1a2ee37d0f160c1cd", GitTreeState:"clean", BuildDate:"2016-08-29T17:01:01Z", GoVersion:"go1.6.2", Compiler:"gc", Platform:"linux/amd64"}
Run Code Online (Sandbox Code Playgroud)
小智 15
自Kubernetes版本1.10.0起,现在支持二进制ConfigMaps.从自述文件中注意到:
ConfigMap对象现在通过新的binaryData字段支持二进制数据.使用kubectl create configmap --from-file时,包含非UTF8数据的文件将放在此新字段中,以保留非UTF8数据.请注意,kubectl的--append-hash功能不会考虑binaryData.使用此功能需要1.10+ apiserver和kubelet.(#57938,@ dims)
有关详细信息,请参阅更改日志:https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.10.md#apps
根据其他答案,Base64 对我有用(仅一次)
脚步:
base64 -w 0 cacerts > cacerts.base64
sha256sum.exe cacerts.base64
keytool.exe -list -v -keystore cacerts
Run Code Online (Sandbox Code Playgroud)
我连接到 openshift 并创建配置图
oc 创建 configmap cacerts.base64 --from-file=cacerts.base64
...
template:
metadata:
name: mydeployment...
spec:
volumes:
- name: cacerts-volume
configMap:
name: cacerts.base64
containers:
- name: crg-driver
command:
- base64
args:
- '--decode'
- '-w 0'
- '/opt/axatech/openpaas/certificates/cacerts.base64 > /opt/axatech/openpaas/certificates/cacerts' #this does not work yet
env:
- name: SWARM_JVM_ARGS
value: >-
-Djavax.net.ssl.trustStore=/opt/certificates/cacerts.base64
-Djavax.net.ssl.trustStorePassword=changeit
volumeMounts:
- name: cacerts-volume
mountPath: /opt/certificates
Run Code Online (Sandbox Code Playgroud)
编辑/更新现有 cacerts 的最简单方法是将新 cacerts 编码为 base64(使用选项 -w 0),使用文件编辑器(即记事本)打开它,复制内容并通过 OpenShift 控制台 UI 粘贴
https://osconsole.mycloud.something.example/console/project/project-dev/browse/config-maps/cacerts.base64
Run Code Online (Sandbox Code Playgroud)
或在命令行中
oc 编辑 configmap cacerts.base64