docker - 在容器中使用证书 (.pem) 文件的最佳实践
问题描述
我正在学习 docker/k8s;我想将 .pem 文件传递/存储到在 k8s 集群上运行的 boostrap 容器。该容器使用 .pem 创建一个 k8s 密钥(kubectl create secrets ...),通过挂载 kubernetes 密钥,运行在 k8s 上的其他应用程序将使用该密钥。
我可以想到以下选项,
- 我可以将 .pem 详细信息作为 ENV 传递给容器。
- 我可以使用 .pem 文件构建图像。
- 我可以将 .pem 文件存储在 S3 中并从容器中下载。
想了解其中哪些是完成此任务的最佳实践/安全方法。
解决方案
我已经看到它以多种方式完成,但我建议使用配置映射,以便 pem 文件存在于您的 k8s 集群中,您不必处理 s3 等中的加密。如果您将其包含在 docker 代码中,这也允许您的 devops 团队而不是应用程序开发人员来处理维护
创建配置映射
kubectl -n <namespace-for-config-map-optional> create configmap ca-pemstore — from-file=my-cert.pem
将新配置添加到您的 pod yaml 文件
apiVersion: v1 kind: Pod metadata: name: <some metadata name> spec: containers: - name: <container name> image: <container image> volumeMounts: - name: ca-pemstore mountPath: /etc/ssl/certs/my-cert.pem subPath: my-cert.pem readOnly: false ports: - containerPort: 80 command: ... args: ... volumes: - name: ca-pemstore configMap: name: ca-pemstore
推荐阅读
- javascript - javascript用完全匹配替换字符串
- python - Python Requests Post 在没有任何明确原因的情况下为内容返回“null”
- plc - 铸造功能块
- python-3.x - 如何“解决” Python 数据类实例?
- python - 如果我们不在 Python 中声明变量类型,默认情况下是什么?
- tableau-api - Tabeau 经理未启动
- xml - 条件不满足模式,仍在执行处理
- javascript - 等待带有 axios 的方法完成后再继续
- web - 键盘可访问性 - 仅为键盘导航添加轮廓,但在鼠标单击时删除
- php - 使用jquery添加/删除后的动态行编号