如果使用本地流量策略,Kubernetes 负载均衡器将停止服务流量
Kubernetes loadbalancer stops serving traffic if using local traffic policy
目前,我的一项服务设置为负载均衡器时遇到问题。我正在尝试像 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*
可能是几件事。一些建议:
- 您的服务正在获取外部 IP,并且不知道如何根据 pod 的本地 IP 地址进行回复。
- 尝试 运行 在您的 pod 上使用嗅探器查看您是否从外部源获取数据包。
- 尝试检查您的应用程序日志。
- 负载均衡器中的健康检查失败。在 GCP 控制台上检查您的服务的负载均衡器。
- 检查实例端口是否正在侦听。 (如果您的健康检查失败,可能不会)
希望对您有所帮助。
目前,我的一项服务设置为负载均衡器时遇到问题。我正在尝试像 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*
可能是几件事。一些建议:
- 您的服务正在获取外部 IP,并且不知道如何根据 pod 的本地 IP 地址进行回复。
- 尝试 运行 在您的 pod 上使用嗅探器查看您是否从外部源获取数据包。
- 尝试检查您的应用程序日志。
- 负载均衡器中的健康检查失败。在 GCP 控制台上检查您的服务的负载均衡器。
- 检查实例端口是否正在侦听。 (如果您的健康检查失败,可能不会)
希望对您有所帮助。