【问题标题】:Kubernetes loadbalancer stops serving traffic if using local traffic policy如果使用本地流量策略,Kubernetes 负载均衡器会停止服务流量
【发布时间】:2019-02-17 10:14:33
【问题描述】:

目前,我的一项服务设置为负载平衡器时遇到问题。我正在尝试像docs 中所述那样保存源IP。但是,当我将 externalTrafficPolicy 设置为本地时,我会丢失所有到该服务的流量。有什么我遗漏的东西导致这样失败吗?

负载平衡器服务:

apiVersion: v1
kind: Service
metadata:
  labels:
    app: loadbalancer
    role: loadbalancer-service
  name: lb-test
  namespace: default
spec:
  clusterIP: 10.3.249.57
  externalTrafficPolicy: Local
  ports:
  - name: example service
    nodePort: 30581
    port: 8000
    protocol: TCP
    targetPort: 8000
  selector:
    app: loadbalancer-example
    role: example
  type: LoadBalancer
status:
  loadBalancer:
    ingress:
    - ip: *example.ip*

【问题讨论】:

    标签: networking service kubernetes load-balancing google-kubernetes-engine


    【解决方案1】:

    可能是几件事。几个建议:

    1. 您的服务正在获取外部 IP,但不知道如何根据 pod 的本地 IP 地址回复。
      • 尝试在您的 pod 上运行嗅探器,看看您是否从外部源获取数据包。
      • 尝试检查应用程序的日志。
    2. 负载平衡器中的运行状况检查失败。在 GCP 控制台上检查您的服务的负载平衡器。
      • 检查实例端口是否在监听。 (如果您的健康检查失败,可能不会)

    希望对你有帮助。

    【讨论】:

    • 不完全确定您所说的运行嗅探器是什么意思,但是我检查了 GCP 控制台,从负载均衡器的角度来看,我的一些实例看起来不健康。我不完全确定如何解决这个问题,但我现在正在研究它。谢谢。
    • 嗅探器可以是 tcpdump 之类的东西
    • 这样你就可以在 pod/container 的主界面上使用 tcpdump 并将其发送到 pcap 文件中。之后,您可以从 pod/container 中复制它并使用类似wireshark 的东西进行分析:wireshark.org
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-14
    • 2012-08-27
    • 1970-01-01
    • 2019-02-04
    • 2018-08-30
    • 2021-07-19
    相关资源
    最近更新 更多