gpt4 book ai didi

docker - Docker群阻止节点参与入口网络

转载 作者:行者123 更新时间:2023-12-02 18:22:03 25 4
gpt4 key购买 nike

这可能是一个非常琐碎的问题,但是我在文档中找不到任何有关此类功能的信息。我们从routing mesh documentation知道:

All nodes participate in an ingress routing mesh. The routing mesh enables each node in the swarm to accept connections on published ports for any service running in the swarm, even if there’s no task running on the node. The routing mesh routes all incoming requests to published ports on available nodes to an active container.



但是,我不希望某些节点参与路由网格,但我仍然希望它们参与托管服务。

我正在尝试实现的配置看起来像这样:

node-topology

我有一个服务 hello-world,其中包含三个实例,每个节点一个。

在此示例中,我只希望 node-1node-2参与外部化 ingress网络。但是,当我访问 10.0.0.3时,它仍然会暴露 80443端口,因为它仍然必须具有 ingress网络才能运行容器 hello-world,我希望情况并非如此。

本质上,我希望能够为在 80上托管端口 44310.0.0.3的服务运行容器,而无需通过在Web浏览器中访问 10.0.0.3来访问它。有什么方法可以配置吗?即使节点上没有容器在运行,它仍会将流量转发到正在运行的容器。

谢谢!

最佳答案

对您的特定问题的简短回答是“否”,没有支持的方法来选择性地启用/禁用特定覆盖网络上特定节点上的入口网络。

但是根据您的要求,仅将特定节点用于传入流量的预期模型是控制哪些节点接收流量,而不是关闭特定节点上的端口...

在典型的6节点集群中,您将管理者分离出来,使其受到与DMZ不同的子网(例如,位于工作人员后面的子网)的保护。您将使用放置约束来确保将您的应用程序工作负载仅分配给工作程序节点,并且这些节点是VLAN /安全组/等中的唯一节点。可从用户/客户端流量访问。

Swarm的大多数产品设计都建议保护您的管理器(管理容器的编排和计划,存储 secret 等)免受外部流量的影响。

为什么不把您的代理放在客户端可访问的网络中的工作人员上,并将那些节点放在DMZ /外部LB中?

请注意,如果仅允许防火墙/ LB访问某些节点(例如,仅3个工作线程),则其他未接收外部传入流量的节点实际上将不使用其入口网络,从而可以达到预期的效果。接收外部连接的节点使用其VIP将流量直接路由到运行已发布容器端口的节点。

关于docker - Docker群阻止节点参与入口网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49474930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com