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

如何从Istio服务网格内部访问非网格Kubernetes Service

问题场景

命名空间a中的service1属于Istio服务网格,其Sidecar配置了REGISTRY_ONLY出站策略,且集群启用了Strict模式的mTLS(PeerAuthentication)。
集群内命名空间b存在未加入网格的ClusterIP Service service2(域名service2.b.svc.cluster.local),后端Pod无Sidecar及Istio配置,且无b命名空间的操作权限。
当前service1调用service2时,请求被路由到BlackHoleCluster无法通信,日志如下:

[2023-06-13T12:00:00.000Z] "- - -" 0 UH - - "-" 0 0 0 - "-" "-" "-" "-" "-" BlackHoleCluster - 100.52.158.17:443 100.60.22.142:35254 - -

尝试在Sidecar配置中添加b/*主机规则无效,只能通过指定service2 ClusterIP的ServiceEntry实现通信,希望找到无需显式指定ClusterIP的更优方案。

原因分析

Sidecar配置中egress.hosts: b/*不生效的核心原因是:该规则仅匹配Istio服务注册表中的网格内服务,而未注入Sidecar的service2不会被Istio服务发现组件收录,因此无法被识别,最终被REGISTRY_ONLY策略拦截到BlackHoleCluster。

无需指定ClusterIP的解决方案

方案1:优化ServiceEntry配置(依赖DNS解析)

去掉ServiceEntry中的addresses字段,通过DNS解析直接获取service2的地址,配置如下:

apiVersion: networking.istio.io/v1beta1
kind: ServiceEntry
metadata:
  name: se-service2
  namespace: a
spec:
  hosts:
    - service2.b.svc.cluster.local
  exportTo:
    - .
  location: MESH_EXTERNAL
  ports:
    - name: https
      number: 443
      protocol: HTTPS
  resolution: DNS

说明:

  • resolution: DNS:让Istio通过Kubernetes集群DNS直接解析目标域名,无需依赖Istio服务注册表
  • location: MESH_EXTERNAL:标记该服务为网格外服务,绕过Strict mTLS强制要求(因为service2无Sidecar,无法处理mTLS流量)

方案2:使用Sidecar的allowedServices字段(Istio 1.12+)

直接在Sidecar的出站策略中添加允许访问的目标域名,无需创建ServiceEntry,配置如下:

apiVersion: networking.istio.io/v1beta1
kind: Sidecar
metadata:
  name: default
  namespace: a
spec:
  outboundTrafficPolicy:
    mode: REGISTRY_ONLY
    allowedServices:
      - hosts:
          - service2.b.svc.cluster.local
  egress:
    - hosts:
        - ./*

说明:

  • allowedServices字段专门用于在REGISTRY_ONLY模式下放行指定的外部服务,无需将服务加入Istio注册表
  • Istio会自动通过DNS解析目标域名,无需手动指定ClusterIP
验证要点
  • 先在service1的Pod内执行nslookup service2.b.svc.cluster.local,确认DNS解析正常
  • 若service2使用HTTPS,无需额外配置TLS,Istio会自动发起SNI匹配的TLS握手

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 19:14:55