当前位置: 首页 > 知识库问答 >
问题:

Kubernetes 1.18.6服务拓扑和入口支持

乔伯寅
2023-03-14

我已经在自托管的库伯内特斯集群中设置和配置了服务拓扑功能。当我使用ClusterIP或NodePort将流量直接路由到配置的服务时,一切都按预期进行。拓扑密钥得到尊重,选择了正确的节点来路由到pod等。

但是,当使用映射到服务的入口时(尝试使用haproxy和traefik入口),会忽略拓扑感知路由。我不确定这是不受支持,还是一个bug,或者是我缺少的一些配置。以下是我尝试过的方法。

1r)客户端卷曲-

结果:工作正常。

2r)busybox pod卷曲-

结果:工作正常。

3r)客户端卷曲-

结果:选定的节点pod是随机的,并且与节点上的拓扑密钥不一致。

4r)客户端卷曲-

结果:选定的节点pod是随机的,并且与节点上的拓扑密钥不一致。

据我所知,似乎haproxe和traefik入口都将流量直接路由到pod并绕过服务。

我已经通过如下配置拓扑键进行了测试(没有*catt-all,如果不匹配,则应该失败):

topologyKeys:
  - "kubernetes.io/hostname"
  - "topology.kubernetes.io/zone"
  - "topology.kubernetes.io/region"

当使用入口进行测试时,服务将始终做出响应,尽管仍会在副本集中随机选取一个pod。使用该服务进行测试时,如果没有POD对接收入站请求的节点上的拓扑标签满意(如预期的那样),则该服务将失败。

我已经浏览了所有的文档,花了很多时间在谷歌上搜索和查看Github问题,但找不到任何关于这个问题或不支持的配置等的提及。

--编辑--

多亏了@Rico,我才能够用nginx和haproxy ingress在Ingresses上完成这项工作。修复需要在入口上添加以下注释。

nginx:

annotations:
  nginx.ingress.kubernetes.io/service-upstream: "true"

haproxy-入口:

annotations:
  ingress.kubernetes.io/service-upstream: "true"

共有1个答案

慕宏博
2023-03-14

这里的答案是,入口控制器通常与endpointAPI而不是服务API进行通信。它记录在nginx入口控制器页面和Traefik入口控制器上。(可能不是在其他入口)

另一种选择是使用EndpointSlices,但到目前为止,入口控制器还不支持这一点。

我认为入口控制器应该开始支持EndpointSlices。

更新:

nginx入口控制器有办法通过nginx.ingress.kubernetes.io/service-upstream注释绕过endpoint行为。“但是你不能有自定义的LB算法或粘性会话”。

✌️

 类似资料:
  • 我对Apache Storm的性能有一个问题,主要是从喷口出来的。 我有一个从kestrel队列发出项目的拓扑。我获取大约2000个项目,每次在喷注中调用时,我都会发出一个。 我正在使用1个spout任务和1个spout执行器运行。我已将设置为10。 为什么每次调用之间有这么大的时间间隔?outputCollector在发出一个新元组之前是否正在等待听到每个元组的反馈? 我正在运行Java8和st

  • 我们有一个不想连续运行storm拓扑的用例。相反,有一组输入(10K+)应该在指定的时间被处理,Spout连续发射这些输入,并得到拓扑中其余螺栓的处理。处理完所有输入后,在我的喷注中就没有任何东西可以从nextTuple发出。 此时,我们希望拓扑进入Hibernate状态,并在每天晚上12:00重新启动进程。 在storm配置中是否有任何属性可以设置为每天运行一次拓扑并在处理完成后Hibernat

  • 本文向大家介绍环形拓扑和网格拓扑之间的区别,包括了环形拓扑和网格拓扑之间的区别的使用技巧和注意事项,需要的朋友参考一下 环形拓扑 在环形拓扑中,每个节点都以环形方式连接到其左节点和右节点,信息可以从一个节点流向另一个方向。如果有n个节点,则存在n个链接。如果要添加一个新节点,则整个连接将被中断。 网格拓扑 在网状拓扑中,每个节点使用其自己的专用链接连接到其他节点,并且信息可以从这些链接传播到任何节

  • 请注意: Transactional topologies 已经摒弃 -- 使用 Trident 框架替代。 Storm guarantees data processing (保证数据处理)至少一次。关于 Storm 问的最多的问题就是 "当 tuples 重发时,你会如何做呢?你会重复计算吗?" Storm 0.7.0 版本介绍了 transactional topologies.使得你可以在

  • 我正在运行一个3节点的Storm集群。我们正在提交一个包含10个工作者的拓扑结构,以下是拓扑结构的详细信息 我们每天处理800万到1000万个数据。问题是topolgy只运行了2到3天,而我们在kafka spout中看到了一些失败的元组,没有处理任何消息。当提交新的topolgy时,它工作良好,但在2到3天后,我们又看到了同样的问题。有人能给我们一个解决方案吗。下面是我的storm配置

  • 为了表明计算机科学家可以把任何东西变成一个图问题,让我们考虑做一批煎饼的问题。 菜谱真的很简单:1个鸡蛋,1杯煎饼粉,1汤匙油 和 3/4 杯牛奶。 要制作煎饼,你必须加热炉子,将所有的成分混合在一起,勺子搅拌。 当开始冒泡,你把它们翻过来,直到他们底部变金黄色。 在你吃煎饼之前,你会想要加热一些糖浆。 Figure 27将该过程示为图。 Figure 27 制作煎饼的困难是知道先做什么。从 Fi