的K8S文档也不是很清楚使用不同的服务类型时,用什么路由发生,导致我一连串的问题:NodePort,LoadBalance服务 - 路由会发生什么?
为了帮助这个问题,假设以下群集设置:
- 3个节点:
N_a
,N_b
,N_c
- 1服务:
S_1
- 2豆荚:
P_x1
,P_x2
属于服务S_1
的一部分 P_x1
上N_a
P_x2
运行上N_b
1)在运行时使用NodePort
为S_1
使用端口x
,不要在集群中的所有节点作出端口x
提供的服务?或者只运行构成该服务的运行pod的节点使端口x
上的服务可用?所以在这两种情况下,N_a
和N_b
将使端口x
上的S_1
可用,但是我可以在端口x
上打N_c
?
2)使用NodePort
为S_1
的是,如果我在端口x
打N_a
,我将只被路由到P_x1
(例如,吊舱的节点上本地运行的服务),或可我被路由到P_x2
,那么关闭节点并再次通过网络?
3)如果我运行S_1
为LoadBalanced
服务,将负载均衡配置的唯一请求路由到N_a
和N_b
?当这些请求分别打到N_a
和N_b
时,只能分别路由到吊舱P_x1
和P_x2
?那么在网络上一跳,还是会与所有三个节点通信,并依靠它们进行第二级路由/负载平衡? (这看起来效率很低)。
4)Ingress
控制器的功能是否与LoadBalanced
服务有不同的路由选择(L7而不是L4)?