我使用istio:
istioctl version
client version: 1.11.2
control plane version: 1.11.2
data plane version: none
k8s:
kubectl version --short
Client Version: v1.21.5
Server Version: v1.21.5
当我部署我的应用程序(nginx+app)时,nginx 健康检查失败。
access forbidden by rule, client: 127.0.0.6
我明白为什么,但不明白 istio 中的 127.0.0.6 是什么。 我在 github 上只找到了 1 个链接 (https://github.com/istio/istio/issues/29603)。我的应用程序有服务并声明端口。但仍然不知道如何在 127.0.0.1 上运行健康检查以及 127.0.0.6 是什么
嗯,两年后我找到了答案=)
我实际上没有正确理解这个 127.0.0.6 行为的原因。我在日志中看到这个地址的原因是,当流量没有从 pod 向外流出时,它的地址就会出现。就我而言,这是因为 nginx-container 对 app-container 进行了健康检查,并且它们都位于一个 pod 中。这就是为什么流量仍在 Pod 中的原因。 这就是 istio 工作的逻辑。
您可以在这里阅读更多相关信息https://jimmysong.io/en/blog/sidecar-injection-iptables-and-traffic-routing/