我目前使用Docker Swarm和Consul设置了3个EC2实例.我有3个简单的节点应用程序分布在所有3个实例上,然后使用nginx在我的集群主机上进行路由.
使用Overlay Networks指南,我创建了一个名为mynet的新覆盖图,并使每个容器都连接到该网络.使用docker inspect我可以确认每个节点容器和Nginx容器都已连接到mynet并具有IP.但是,在进入我的nginx容器后,它只能通过网络与位于同一主机上的节点应用程序通信,而不能与集群中其他主机上的节点应用程序通信.
运行docker网络检查mynet后,仅列出我的两个容器(位于同一主机上的nginx和一个节点实例),而未列出其他两个容器,即使它们具有该覆盖网络的名称和IP从码头检查.
这个想法是使用nginx reverse proxy将所有在线的新容器添加到它的配置中,但是一直困扰于使所有连接的容器.根据Docker networking docs for overlay,这应该可行.
我究竟做错了什么?谢谢.
编辑:
在对docker网络发送垃圾邮件几次后,检查mynet,即使我关闭了所有防火墙并打开了端口以进行测试,容器似乎仍在不断地与网络连接和断开连接.是什么原因引起的呢?
一种是我正在使用kernel 3.13,而docker network overlay不支持.升级到3.16可解决此问题.其次,Swarm 1.0.1中存在一个错误,该错误确实正确聚合了网络信息.它已经被固定为here,但截至撰写本文时尚未发布.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。