【问题标题】:kubernetes service can not send request to itselfkubernetes 服务无法向自身发送请求
【发布时间】:2019-04-19 18:55:18
【问题描述】:

我有一个服务,在某些情况下,它会向自己发送请求。 我可以从集群外部访问服务,但自请求失败(超时)。

环境:

  • minikube v0.34.1
  • Linux 版本 4.15.0 (jenkins@jenkins)(gcc 版本 7.3.0 (Buildroot 2018.05))#1 SMP Fri Feb 15 19:27:06 UTC 2019

我一直在使用 https://kubernetes.io/docs/tasks/debug-application-cluster/debug-service/#a-pod-cannot-reach-itself-via-service-ip 作为故障排除指南,但我已经走下“寻求帮助”的步骤。

故障排除结果:

journalctl -u kubelet | grep -i hairpin  
Feb 26 19:57:10 minikube kubelet[3066]: W0226 19:57:10.124151    3066 docker_service.go:540] Hairpin mode set to "promiscuous-bridge" but kubenet is not enabled, falling back to "hairpin-veth"  
Feb 26 19:57:10 minikube kubelet[3066]: I0226 19:57:10.124295    3066 docker_service.go:236] Hairpin mode set to "hairpin-veth" 

故障排除指南表明“hairpin-veth”是可以的。

for intf in /sys/devices/virtual/net/docker0/brif/veth*; do cat $intf/hairpin_mode; done
0
...
0

注意,指南使用/sys/devices/virtual/net/cbr0/brif/*,但在这个版本的minikube中,路径是/sys/devices/virtual/net/docker0/brif/veth*。我想了解为什么路径不同,但似乎没有启用 hairpin_mode。

指南中的下一步是:Seek help if none of above works out.

  1. 我认为我需要启用 hairpin_mode 是否正确?
  2. 如果是这样,我该怎么做?

【问题讨论】:

标签: kubernetes minikube kube-proxy


【解决方案1】:

这似乎是已知问题,更多信息here

作为解决方法,您可以尝试:

minikube ssh -- sudo ip link set docker0 promisc on

请与结果分享。

【讨论】:

    猜你喜欢
    • 2017-08-21
    • 2016-07-03
    • 1970-01-01
    • 2020-09-17
    • 2020-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多