kubernetes服务如何在内部平衡负载?

时间:2019-03-03 19:47:06

标签: kubernetes load-balancing kubernetes-service

我有以下架构:

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

我们声明以下Pod IP:

  • Pod 1:192.168.0.1
  • Pod 2:192.168.0.2
  • Pod 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

任何人都知道kubernets使用哪种内部负载平衡?

1 个答案:

答案 0 :(得分:3)

您可能正在使用kube-proxy的默认iptables模式,该模式在随机模式下使用iptables NAT来实现负载平衡。请查看ipvs支持(https://kubernetes.io/docs/concepts/services-networking/service/#proxy-mode-ipvs),以了解更多其他模式,包括循环轮询。