如何解决Docker 容器架构中的子集群和覆盖网络
我想在多台机器上分发许多基于微服务的项目。这些项目共享一个通用的分层架构。
微服务以 Docker 容器的形式实现。
我正在寻找一种只有网络的方法,没有像 Kubernetes 或 Swarm 这样的编排器。
为了解释和简单起见,我会尽量简化。
2 台机器或节点(裸机或 VPS,无所谓)。每个节点都有自己的公共 IP (eth0) 和私有 IP (eth1)。 2个项目(A、B) 每个项目 2 个容器(X、Y)。容器可以存在于任何机器中,这是不确定的。
我希望每个项目都位于自己的“子集群”或“二级集群”中。每个子集群都有自己的专用网络。每个子集群的网络相同(例如:10.0.0.0/24)
所以在每个项目或子集群中:
X: 10.0.0.1/24
Y: 10.0.0.2/24
显然,往返于 10.0.0.0/24 的路由仅在每个子集群内有意义。
我希望每个子集群的容器 X 成为覆盖网络的一部分,以便它们可以在它们之间进行通信。例如 192.168.0.0/16。
X (subcluster A): 192.168.0.1
X (subcluster B): 192.168.0.2
所以可能的情况是:
Node 1:
XA
dev0: 10.0.0.1
dev1: 192.168.0.1
YB
dev0: 10.0.0.2
Node 2:
YA
dev0: 10.0.0.2
XB
dev0: 10.0.0.1
dev1: 192.168.0.2
当涉及到主机和主机间网络以及标准 Linux 网络工具时,我熟悉创建子网来划分网络。
但这里的挑战是我们正在处理一个容器网络,并且我想要具有相同私有网络的子集群。我什至不知道这是否有意义。
我正在尝试使用 Calico 的一种方法,但看起来它过于面向 Kubernetes。现在我在看 Weave。但此刻我很迷茫。
欢迎任何建议或想法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。