我有一项服务,在某些情况下,它会向自身发送请求。我可以从集群外部访问服务,但自请求失败(超时)。
环境:
- 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作为故障排除指南,但我'm down the step that says "寻求帮助"。
故障排除结果:
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.
- 我认为我需要启用 hairpin_mode 是否正确?
- 如果是这样,我该怎么做?