gpt4 book ai didi

azure - 创建 Azure Kubernetes 入口 Controller 以限制每个 Pod 1 个连接

转载 作者:行者123 更新时间:2023-12-03 05:40:04 25 4
gpt4 key购买 nike

我正在使用 Azure Kubernetes 服务,并且有一个独特的场景,我希望每个 Pod 只允许一个连接。我使用“高级”网络选项来设置集群,以便每个 Pod 都有自己的内部 IP 地址。问题是,所有这些 Pod 都位于公共(public)负载均衡器 IP 地址后面,负载均衡器决定将流量路由到何处。

我需要 A) 设置一条规则,使负载均衡器只允许每个 pod 一个连接,并将新流量路由到新 pod,每个请求 1 个,或者 B) 设置一个入口 Controller 来执行相同的操作。我认为 B) 是解决方案,但我没有明确的路径来说明如何做到这一点。我发现你可以通过 URL 进行路由,但你必须为每个 pod 设置规则,这绝对不是一个好主意。有没有办法设置一个规则,只限制每个 Pod 1 个 session ?或者其他一些类似的方法。

谢谢。

最佳答案

这是一个非常好的问题。根据您在问题第二部分中建议的解决方案,我想在这里添加我的意见。但是,不仅限于或只能使用这些,人们还有最有效的高级方法来建立与其 pod 的连接。

A.) 我正在研究如何将流量从负载均衡器路由到 pod,一般来说,Kubernetes 集群内的每个 pod 默认情况下都有自己的 IP。如果我们知道这一点,您将如何管理从外部世界到每个 Pod 的流量。我可以将我的答案添加到可能解决方案的A部分。但不建议采用这种方法,因为你的 pod 很可能会死掉,并且可能会创建一个具有新 ip 的新 pod,你需要手动将流量路由到新创建的 pod,这就是为什么人们选择 kubernetes 而不是手动管理 docker VM 上的容器。但我可能是错的,你可能有不同的复杂系统,但这是有争议的。

B.) 就像你说的,研究过的 Ingress 和服务也是一种解决方案,遗憾的是,目前还没有可用的入口 Controller 注释,只能限制每个 pod 的一个连接,但就像你所说的,基于 URL 是其中的一部分解决方案,但正如您已经确定的那样,这种方式会产生开销,它更像是每个 pod 的单个服务和每个服务的子域。它更像是具有与其关联的唯一服务以及具有唯一子域的唯一服务的单一部署。这是一个复杂的设置,但可行。

根据评论进行编辑(已删除 HPA)

根据您添加的信息,我可以建议一种不同的方法,但这是使用 kubernetes 的一种错误方式,但根据您计划实现的系统类型,它又是值得商榷的。在其中一个节点上运行代理服务器(HAProxy、NGINX 或您最喜欢的),并使用代理中 pod 的内部 IP 将流量从外部世界直接路由到您的 pod。您可以根据代理配置中的连接数等进行路由,请记住这不是您的 kubernetes pod,它是您操作系统运行的独立服务。但请注意,当节点死亡时,pod 会死亡,pod 的 IP 地址也会死亡。

但这是我们不应该做的事情,我相信在几周左右的时间里你就会对 K8s 及其移动部件有更全面的了解,你可能会说这是错误的,因为有很多手动设置开销。

希望这对您有所帮助。

关于azure - 创建 Azure Kubernetes 入口 Controller 以限制每个 Pod 1 个连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59570181/

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