首页 > 解决方案 > 在容器中使用证书 (.pem) 文件的最佳实践

问题描述

我正在学习 docker/k8s;我想将 .pem 文件传递​​/存储到在 k8s 集群上运行的 boostrap 容器。该容器使用 .pem 创建一个 k8s 密钥(kubectl create secrets ...),通过挂载 kubernetes 密钥,运行在 k8s 上的其他应用程序将使用该密钥。

我可以想到以下选项,

想了解其中哪些是完成此任务的最佳实践/安全方法。

标签: dockerkubernetescertificate

解决方案


我已经看到它以多种方式完成,但我建议使用配置映射,以便 pem 文件存在于您的 k8s 集群中,您不必处理 s3 等中的加密。如果您将其包含在 docker 代码中,这也允许您的 devops 团队而不是应用程序开发人员来处理维护

配置图 Kubernetes 文档

  1. 创建配置映射

    kubectl -n <namespace-for-config-map-optional> create configmap ca-pemstore — from-file=my-cert.pem
    
  2. 将新配置添加到您的 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
    

推荐阅读