我如何上传二进制文件,如证书文件作为配置映射

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/