Istio中127.0.0.6是什么?Nginx健康检查被该地址访问禁止如何解决
问题解答
127.0.0.6的定位
Istio 1.10及后续版本默认启用了HTTP健康检查重写能力,kubelet向Pod业务端口发起的存活、就绪、启动类HTTP探针请求,会被Pod内的Envoy Sidecar拦截并做本地转发,转发后的请求源IP固定为127.0.0.6,这是Istio预留的健康检查专用本地源IP标识,不属于业务侧配置的IP段。
配置健康检查从127.0.0.1发起的方案
你可以根据场景选择以下配置方案:
- 第一步:给你的Nginx业务Pod添加注解,关闭Sidecar的探针重定向逻辑,在Pod的
metadata.annotations下添加配置:sidecar.istio.io/rewriteAppHTTPProbers: "false" - 第二步:将原HTTP类型的健康检查改成exec执行模式,直接在Pod本地调用127.0.0.1的健康检查路径,示例配置:
livenessProbe: exec: command: - curl - 127.0.0.1/你的实际健康检查路径 initialDelaySeconds: 5 periodSeconds: 10
这种模式下健康检查请求直接从Pod本地发起,源IP就是127.0.0.1,不会触发Nginx的访问禁止规则。
如果不需要强制要求源IP为127.0.0.1,也可以直接在Nginx的访问控制规则里添加对127.0.0.6的放行,在deny规则前新增配置即可快速解决报错:
allow 127.0.0.6;
内容的提问来源于stack exchange,提问作者Nikita S
相关产品推荐
相关产品推荐

