You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过K8s服务域名配置Istio流量到Squid代理出现404路由未找到如何解决

Istio Squid代理404 NR路由缺失问题修复方案

根因分析

  1. ServiceEntry协议配置错误:当前配置中将3128端口的协议声明为TCP,而Squid是HTTP代理,需要处理HTTP CONNECT请求,Istio针对TCP协议的ServiceEntry不会生成HTTP路由规则,因此无法匹配CONNECT请求,返回404 NR错误。
  2. 主机名匹配不一致:测试时使用的代理地址为squid.external:3128,但ServiceEntry中仅配置了全限定域名squid.external.svc.cluster.local,Istio路由会严格校验主机头,短域名与全限定域名不匹配会导致路由查找失败。
  3. 缺少解析规则配置:未配置resolution字段,Istio无法正确解析集群内Squid服务的后端地址。

修复配置

修正后的Squid ServiceEntry配置

apiVersion: networking.istio.io/v1beta1
kind: ServiceEntry
metadata:
  name: proxy
spec:
  hosts:
  # 同时兼容短域名和全限定域名访问
  - squid.external
  - squid.external.svc.cluster.local
  location: MESH_EXTERNAL
  exportTo: 
  - "."
  ports:
  - number: 3128
    name: http-proxy
    # 改为HTTP协议,支持处理CONNECT请求
    protocol: HTTP
  # 集群内服务使用DNS解析
  resolution: DNS

现有Squid Pod、K8s Service配置无需修改。

验证步骤

配置更新后执行原测试命令即可验证连通性:

HTTPS_PROXY=http://squid.external:3128 curl https://en.wikipedia.org/wiki/Main_Page

内容的提问来源于stack exchange,提问作者Maciek Leks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 01:24:04