我如何上传二进制文件,如证书文件作为配置映射
How can i upload Binary file like cert file as Config-map
我如何将证书文件等二进制文件上传为配置映射
我正在尝试将 .p12 之类的证书文件上传为配置映射,但每次都失败。上传后我没有看到文件刚刚进入。
我使用的命令:
oc create configmap mmx-cert --from-file=xyz.p12
失败。
还用过:
oc create configmap mmx-cert--from-file=game-special-key=example-files/xyz.p12
也失败了。
不确定命令是什么 oc
,但如果您谈论的是 kubectl
,请确保提供正确的参数
kubectl create configmap mmx-cert --from-env-file=path/to/xyz.p12
也请通过help
,参数--from-file
是基于文件夹,而不是文件。
$ kubectl create configmap --help
...
# Create a new configmap named my-config based on folder bar
kubectl create configmap my-config --from-file=path/to/bar
你不能,ConfigMap 本身不能包含二进制数据。您将需要自己对其进行编码并在另一端对其进行解码,通常是 base64。或者只是一个 Secret,它可以处理二进制数据。
我就是这样做的。
1) 将证书添加到 CAE 阶段:
证书与您在同一目录中 运行 oc 命令:
oc create secret generic mmx-cert --from-file='cert.p12'
2) 添加密卷:
下一步是为机密创建一个卷。作为测试,我能够使用 oc 命令在 apache 节点上创建卷。由于 apache 节点具有部署配置,因此很简单。我采用了该测试设置,并手动将其添加到应用程序 pods。我添加到部署 yaml 中的部分是:
- mountPath: /opt/webserver/cert/nonprod/
name: mmxcert-volume
- name: mmxcert-volume
secret:
defaultMode: 420
secretName: mmx-cert
3) 验证证书
md5sum cert.p12
IDK 如果接受的答案随时间改变 但是 你实际上可以将二进制文件放在 cms base64 编码上你实际上不需要做任何事之后例如:
apiVersion: v1
kind: ConfigMap
binaryData:
elasticsearch.keystore: P9dsFxZlbGFzdGljc2VhcmNoLmtleXN0b3JlAAAABAAAAAC/AAAAQM5hkNkN7WjdNRwa/vKIte4mnBrWKZxzuqTdvNdneTWzZyQU+TIquP+ZlV1zCOGm2Jbdg+wMNcWqTQY4LvoSKHEAAAAMo5XONlIK6969bNQFAAAAZ6Cn+jnDe29K0W4a0unPodSljz+W+tRxgD59+oFnt17vN9hSutTbk1lzCJNiwnhK5mliHmS5Ie/9dhWfnI+vhkzXvFAYauvFxS7aJ9L3uKw3opFUtSrPY76fAXPcEYMGp8TcTceMZK7AKJPoAAAAAAAAAAAGacI8
data:
elasticsearch.yml: |
...
来源:https://kubernetes.io/docs/concepts/configuration/configmap/
我如何将证书文件等二进制文件上传为配置映射
我正在尝试将 .p12 之类的证书文件上传为配置映射,但每次都失败。上传后我没有看到文件刚刚进入。
我使用的命令:
oc create configmap mmx-cert --from-file=xyz.p12
失败。
还用过:
oc create configmap mmx-cert--from-file=game-special-key=example-files/xyz.p12
也失败了。
不确定命令是什么 oc
,但如果您谈论的是 kubectl
,请确保提供正确的参数
kubectl create configmap mmx-cert --from-env-file=path/to/xyz.p12
也请通过help
,参数--from-file
是基于文件夹,而不是文件。
$ kubectl create configmap --help
...
# Create a new configmap named my-config based on folder bar
kubectl create configmap my-config --from-file=path/to/bar
你不能,ConfigMap 本身不能包含二进制数据。您将需要自己对其进行编码并在另一端对其进行解码,通常是 base64。或者只是一个 Secret,它可以处理二进制数据。
我就是这样做的。
1) 将证书添加到 CAE 阶段:
证书与您在同一目录中 运行 oc 命令:
oc create secret generic mmx-cert --from-file='cert.p12'
2) 添加密卷:
下一步是为机密创建一个卷。作为测试,我能够使用 oc 命令在 apache 节点上创建卷。由于 apache 节点具有部署配置,因此很简单。我采用了该测试设置,并手动将其添加到应用程序 pods。我添加到部署 yaml 中的部分是:
- mountPath: /opt/webserver/cert/nonprod/
name: mmxcert-volume
- name: mmxcert-volume
secret:
defaultMode: 420
secretName: mmx-cert
3) 验证证书
md5sum cert.p12
IDK 如果接受的答案随时间改变 但是 你实际上可以将二进制文件放在 cms base64 编码上你实际上不需要做任何事之后例如:
apiVersion: v1
kind: ConfigMap
binaryData:
elasticsearch.keystore: P9dsFxZlbGFzdGljc2VhcmNoLmtleXN0b3JlAAAABAAAAAC/AAAAQM5hkNkN7WjdNRwa/vKIte4mnBrWKZxzuqTdvNdneTWzZyQU+TIquP+ZlV1zCOGm2Jbdg+wMNcWqTQY4LvoSKHEAAAAMo5XONlIK6969bNQFAAAAZ6Cn+jnDe29K0W4a0unPodSljz+W+tRxgD59+oFnt17vN9hSutTbk1lzCJNiwnhK5mliHmS5Ie/9dhWfnI+vhkzXvFAYauvFxS7aJ9L3uKw3opFUtSrPY76fAXPcEYMGp8TcTceMZK7AKJPoAAAAAAAAAAAGacI8
data:
elasticsearch.yml: |
...
来源:https://kubernetes.io/docs/concepts/configuration/configmap/