2

我得到了以下架构:

     [Service]
    /    |    \
 [Pod1][Pod2][Pod3]

我们断言以下 Pod IP:

  • 吊舱 1:192.168.0.1
  • 吊舱 2:192.168.0.2
  • 吊舱 3:192.168.0.3

我正在执行这样的循环:

for ((i=0;i<10000;i++)); do curl http://someUrlWhichRespondsWithPodIP >> curl.txt; done;

这会将 Pod IP 写入 10000 次。我希望它是循环计划的,但事实并非如此。文件看起来与此类似:

192.168.0.1
192.168.0.1
192.168.0.3
192.168.0.2
192.168.0.3
192.168.0.1

服务配置如下所示:

kind: Service
metadata:
  name: service
spec:
  type: NodePort
  selector:
    app: service
  ports:
  - name: web
    protocol: TCP
    port: 31001
    nodePort: 31001
    targetPort: 8080

任何人都知道 Kubernetes 使用什么样的内部负载平衡?

4

1 回答 1

3

您可能正在使用iptableskube-proxy 的默认模式,它以随机模式使用 iptables NAT 来实现负载均衡。查看大量其他模式的ipvs支持(https://kubernetes.io/docs/concepts/services-networking/service/#proxy-mode-ipvs),包括循环法。

于 2019-03-03T20:18:44.087 回答