首页 > 解决方案 > 服务 - pod 流量 - 选择器

问题描述

我建立

  1. 吊舱 p1; 服务 p1-s1;curl 输出 - pod1 - 有效!
  2. pod p2,服务 p2-s2 curl 输出 - pod2 - 有效!
  3. 我在选择器中创建了一个组合服务,我同时选择了标签 app=p1 和 app=p2 并观察到选择了最后一个选择器并且流量没有路由到第一个。这是预期的行为吗?

如果不是,我该如何重定向流量?

$ kubectl get pods --show-labels
NAME                      READY   STATUS    RESTARTS   AGE    LABELS
p1                        1/1     Running   0          24s    app=p1
p2                        1/1     Running   0          21s    app=p2

$ kubectl get svc
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                         AGE
p1-s1        NodePort    10.105.49.230    <none>        8888:30778/TCP                  45s
p2-s2        NodePort    10.96.194.44     <none>        9999:32386/TCP                  42s

$ curl 172.17.0.2:30778
 "Pod1" 



$ curl 172.17.0.2:32386
 "Pod2"

综合服务

选择器:应用程序:p1 应用程序:p2 端口:-名称:p1 端口:8888 目标端口:3000 -名称:p2 端口:9999 目标端口:3000

$ kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE 组合 NodePort 10.107.182.9 8888:30430/TCP,9999:30014/TCP 39s

$ curl 172.17.0.2:30430 "Pod2"

$ curl 172.17.0.2:30014 “Pod2”

标签: kubernetesminikube

解决方案


“.. 因为下一个键会覆盖前一个同名键”,服务仅在最后一个选择器的末尾创建一个端点。因此,流量被重定向到最后提到的 pod 键值。阅读线索了解详情。感谢@zerkms 的澄清。


推荐阅读