先定位 Istio 的 JWKS 获取者,再设置其代理
确认 Istio 1.31 的获取模式,然后配置 istiod 的 Go HTTP 路由,或检查 Envoy 的远程密钥传输。
RequestAuthentication.jwksUri 并不能说明应用就是下载方。Istio 1.31 记录了以下 PILOT_JWT_ENABLE_REMOTE_JWKS 模式:
| 取值 | 获取者 |
|---|---|
| istiod / false | istiod |
| hybrid / true | Envoy,外部服务器回退到 istiod |
| envoy | Envoy |
在选择分支之前,先查看已部署版本和实际控制面环境。
istiod 路径
其密钥解析器使用 Go 环境代理发现。对于 istiod 的 Helm chart,可合并如下取值:
env:
HTTPS_PROXY: http://proxy.example:8080
NO_PROXY: localhost,127.0.0.1,.svc,.cluster.local,10.96.0.1这是 chart values 的片段,不是资源。使用集群实际的服务地址、DNS 后缀和内部例外,然后应用受管下发。应用变量或 ServiceEntry 都无法为另一个 Pod 提供环境变量。如果 JWKS URL 是公开的且允许经公共代理出网,HTTP 代理列表 可为 istiod 的 HTTPS_PROXY 取值提供候选;保留集群内部例外。
Envoy 路径
检查其远程 JWKS 集群和网络路由。在 mesh 中注册目标本身不会增加企业 CONNECT 跳;istiod 的变量无法配置 Envoy 的传输。