gpt4 book ai didi

kubernetes - 在没有自定义代理的情况下将 statefulset 中的每个 pod 公开到互联网

转载 作者:行者123 更新时间:2023-12-03 09:35:25 26 4
gpt4 key购买 nike

我有一个带 Pod 的 StatefulSet server-0 , server-1等。我想通过像 server-0.mydomain.com 或像 mydomain.com/server-0 这样的 URL 将它们直接公开到互联网。

我希望能够扩展 StatefulSet 并自动能够从 Internet 访问新的 pod。例如,如果我将其放大以包含 server-2 ,我希望 mydomain.com/server-2 在准备好时将请求路由到新 pod。我不想也必须扩展一些其他资源或创建另一个服务来实现这种效果。

我可以使用自定义代理服务来实现这一点,该服务仅检查请求路径并在内部转发到正确的 pod,但这似乎容易出错且浪费。

有没有办法让 Ingress 自动路由到 StatefulSet 中的不同 pod,或者其他一些可以避免自定义代码的内置技术?

最佳答案

我不认为你能做到。作为同一个 statefulSet 的一部分,直到 pod-x 的所有 pod 都是服务的目标。由于您无法定义哪个 pod 将收到请求,因此您无法强制将“pod-1.yourapp.com”或“yourapp.com/pod-1”发送到 pod-1。它将被发送到服务,服务可能会将它发送到 pod-4。

即使可以,您也需要动态更新入口规则,这很容易导致几分钟的停机时间。

使用自定义代理,我也认为这是不可能的。请注意,它基本上需要替换 pod 后面的服务。如果您的入口 Controller 知道它需要将数据包传送到服务,那么现在您必须强制它传送到您的代理。但是如何?

关于kubernetes - 在没有自定义代理的情况下将 statefulset 中的每个 pod 公开到互联网,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50785652/

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