gpt4 book ai didi

networking - 如何让 Kubernetes Pod 连接到只能由一部分节点访问的目的地?

转载 作者:行者123 更新时间:2023-12-04 21:03:28 24 4
gpt4 key购买 nike

我有一个使用 Calico + flannel 作为 CNI 的 Kubernetes v1.13 集群。所有节点都有一个可公开路由的 IP 地址,并且运行 Ubuntu 16.04。

一些节点位于公司网络中,同时位于 LAN 和 DMZ 中,因此可以访问内部服务,同时仍可公开访问。其他是在云提供商处托管的 VM。

Cluster

考虑上面的简化示例。我想要一个 Kubernetes Pod 来访问 Internal Server C (这只是一个普通服务器,而不是集群的一部分)。我可以强制将 Pod 安排在内部 Node B仅,但由于连接只需要低延迟和带宽,并且 Node A 上有更多资源,我更愿意使用 Node B就像某种网关一样。 (考虑几个Node B,所以实际上没有SPOF)。

我目前的方法是使用一个 DaemonSet 和一个 Node Selector,针对所有内部 (B) 节点,定义一个 HAProxy Pod。这些 HAproxy 实例可以作为 Kubernetes 服务访问,并将请求转发到内部目标服务。

您是否看到一种更好或更直接的方法来实现从位于任何节点的 Pod 到只能由一部分节点访问的目标的连接?

最佳答案

根据你在这里所说的:

I could enforce the Pod to be scheduled on the internal Node B only, but as there is only a low latency and bandwidth required for the connection, and there is way more resources on Node A, I would prefer to use Node B just as some kind of gateway.



我认为您正在寻找的是 Ambassador图案。基本上你会在你的 B 中创建这种容器。区域,您的流量将使用 ClusterIP 进入此容器/ pods 服务,因为它在集群内。

然后,这些容器将运行 代理在它们内部(就像您现在在守护程序上拥有的那种),这会将流量透明地路由到您所针对的常规服务器。

其他可能有用的链接可能是 this from MSthis slideshows (p.42) .

如果这与您已经运行的内容相比具有很大的优势,我不确定,但我确实更喜欢只使用 pod 并尽可能减少其他组件。

关于networking - 如何让 Kubernetes Pod 连接到只能由一部分节点访问的目的地?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53048484/

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