首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动更新iptables转发规则到码头群中的相应码头服务端口

自动更新iptables转发规则到码头群中的相应码头服务端口
EN

Stack Overflow用户
提问于 2018-02-23 10:57:56
回答 1查看 498关注 0票数 0

目标:有一个类似脚本的脚本,它将调用Docker来自动创建新的客户端主机服务,然后将所有群集节点上的iptables转发规则相应地更新到新的服务端口。

问题:是跨多个集群节点动态更新iptables规则的最佳/健壮方法,以便轻松地将新的客户端应用程序添加到新的客户端主机。

场景的流:

  1. 客户端主机直接连接到端口80/tcp上的网络负载均衡器。
  2. 网络均衡器接收来自客户端主机的流量,并重定向到池主机(即码头群节点)。
  3. Docker群节点只允许端口80/tcp上的连接。
  4. 码头群节点上的IPTables规则将根据客户端(源IP)将流量重定向到正确的停靠群服务(tcp端口)。

场景图像:

场景(示例):

  • 码头群主机
代码语言:javascript
复制
- master01 = ip 10.20.30.100
- node01 = ip 10.20.30.161
- node02 = ip 10.20.30.162

  • 码头群服务
代码语言:javascript
复制
- app01 = port 8081/tcp (belongs to client01)
- app02 = port 8082/tcp (belongs to client02)

  • 客户端主机
代码语言:javascript
复制
- client01 = ip 192.168.10.100
- client02 = ip 192.168.10.200

  • 网络LoadBalancer
代码语言:javascript
复制
- network-lb = ip 10.10.10.10
- pool = ip [10.20.30.161, 10.20.30.162]

  • 群集节点的IPTables规则
代码语言:javascript
复制
- iptables -t nat -I PREROUTING -p tcp -s 192.168.10.100 --dport 80 -j REDIRECT --to-port 8081
- iptables -t nat -I PREROUTING -p tcp -s 192.168.10.200 --dport 80 -j REDIRECT --to-port 8082

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-24 18:50:01

好的,一些快速的项目,可以帮助你决定一个解决方案。这是截至17.12版的版本:

  • 听起来这部分是正确的,但作为提醒,Docker服务的设计是为了使该服务的所有副本都是相同的,而不是在配置上是唯一的。
  • Docker覆盖网络、路由网和VIP/DNSRR功能不能基于客户端(始发) IP路由通信。
  • 考虑到Swarm管理了许多iptables规则,我会考虑添加自己的外部iptables编辑解决方案。要确保两个人在一起玩得很好可能会很棘手.但我从来没试过。
  • 基于客户端IP的连接路由最可能的“码头方式”可能是使用Traefik或Docker代理,它们都具有群集感知能力,并使用nginx/ Proxy将传入连接的流量路由到群集。他们通常基于所请求的DNS名称或URL路径来进行路由,但是他们应该能够基于客户端IP做出群集服务路由决策。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48946247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档