如何为swarm集群中不同节点上的mongod容器提供证书进行内部认证?

时间:2017-04-03 14:05:57

标签: docker docker-compose docker-swarm

我正在试验码头群中的mongod。我使用docker-compose文件(v3)在swarm中部署了mongod服务。我的群由三个节点组成

node1 node2 node3

当我使用docker stack deploy --compose-file <my-docker-compose-file>部署mongod服务时,mongod服务分布在三个节点之间,然后我将这些mongod实例配置为副本集。

要在副本集中启用内部身份验证,我需要提供为容器内运行的mongod实例生成的x.509证书。我已生成位于node1目录中的所有相关证书。现在我需要将这些证书提供给服务中运行的容器。我无法找到一种方法来添加docker-compose文件的配置,该文件将node1的证书挂载到node2node3上运行的容器。

我尝试过:

services: rs1a: ... volumes: - certs:/certs
volumes: certs: driver: local driver_opts: device:/path/to/dir/containing/certs/on/node1

它没有工作并引发错误no such device

请注意,当我使用compose-file重新部署服务时,它们可能会被分发到任何随机节点,因此我需要为可以共享的地方的所有mongod实例提供证书。我不能在节点上拥有mongod实例特定的证书。我不知道这是否是解决问题的好方法。如果有更好的方法,请提出建议。

0 个答案:

没有答案