You need to enable JavaScript to run this app. Kubernetes跨信任域Pod访问HTTPS Istio Ingress Gateway配置咨询
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes跨信任域Pod访问HTTPS Istio Ingress Gateway配置咨询

Istio跨安全域通信实现方案

方案1:基于ISTIO_MUTUAL双向TLS的跨域通信(推荐,兼容现有Gateway/VS/DR规则)

前提:两个安全域的Istio实例共享同一根CA证书(单集群下不同命名空间默认满足该条件,多集群部署需提前完成根证书同步配置)
该方案完全匹配你原定的流量路径,证书由Istio自动管理无需手动配置,步骤如下:

  • 调整中信任域Ingress Gateway的TLS模式,将原有SIMPLE模式改为ISTIO_MUTUAL,启用Istio自动双向认证:
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: mediumtrust-gateway
  namespace: mediumtrust
spec:
  selector:
    istio: ingressgateway # 对应中信任域的Ingress Gateway实例标签
  servers:
  - port:
      number: 443
      name: https
      protocol: HTTPS
    tls:
      mode: ISTIO_MUTUAL # 替换原有独立证书的SIMPLE模式
    hosts:
    - "mediumtrust.avengers.local"
  • 在低信任域命名空间创建代理服务,绑定中信任域Ingress Gateway的集群IP:
apiVersion: v1
kind: Service
metadata:
  name: mediumtrust-gw-proxy
  namespace: lowtrust
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 443
  clusterIP: None # 采用Headless模式自主绑定端点
---
apiVersion: v1
kind: Endpoints
metadata:
  name: mediumtrust-gw-proxy
  namespace: lowtrust
subsets:
- addresses:
  - ip: <中信任域Ingress Gateway的CLUSTER_IP_ADDRESS>
  ports:
  - port: 443
    name: https
  • 在低信任域配置DestinationRule,指定调用中信任域网关时的双向TLS策略:
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: mediumtrust-gw-dr
  namespace: lowtrust
spec:
  host: "mediumtrust-gw-proxy.lowtrust.svc.cluster.local"
  trafficPolicy:
    portLevelSettings:
    - port:
        number: 443
      tls:
        mode: ISTIO_MUTUAL
        sni: "mediumtrust.avengers.local"
  • 调整低信任域HTTPD反向代理配置,将原转发目标https://mediumtrust.avengers.local改为https://mediumtrust-gw-proxy.lowtrust.svc.cluster.local即可,无需在HTTPD中配置任何证书,TLS握手由Istio Sidecar自动完成,也不需要再修改HTTPD Pod的/etc/hosts配置。

方案2:ExternalName Service适配方案(轻量跨域调用)

该方案默认绕过中信任域Ingress Gateway直接访问服务Pod,要兼容原有VS/DR规则可按如下方式调整:

场景A:希望流量直接访问中信任域服务Pod,不走Ingress Gateway

  • 修改中信任域的VirtualService配置,在hosts列表中添加低信任域ExternalName服务的FQDN,让Istio识别到跨域请求时触发当前路由规则:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: cr1-avengers-vs
  namespace: mediumtrust
spec:
  hosts:
  - "cr1-avengers-app.mediumtrust.svc.cluster.local" # 原有内部域名
  - "cr1-avengers-app.lowtrust.svc.cluster.local" # 新增低信任域ExternalName服务的FQDN
  # 原有路由规则无需调整
  http:
  - route:
    - destination:
        host: cr1-avengers-app
        port:
          number: 8080
  • 在低信任域配置对应DestinationRule,匹配中信任域的mTLS策略:
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: cr1-avengers-dr
  namespace: lowtrust
spec:
  host: "cr1-avengers-app.lowtrust.svc.cluster.local"
  trafficPolicy:
    tls:
      mode: ISTIO_MUTUAL # 和中信任域的PeerAuthentication策略保持一致
  • 确认中信任域的PeerAuthentication配置为PERMISSIVE或STRICT模式,允许跨命名空间的mTLS请求接入即可。

场景B:希望流量仍经过中信任域Ingress Gateway触发原有规则

直接修改ExternalName配置,将externalName指向中信任域Ingress Gateway的域名即可:

apiVersion: v1
kind: Service
metadata:
  name: cr1-avengers-app
  namespace: "lowtrust"
spec:
  type: ExternalName
  externalName: "mediumtrust.avengers.local"
  ports:
    - port: 443
      targetPort: 443
      protocol: TCP
      name: https

同时参照方案1的步骤配置低信任域的DestinationRule,指定调用该服务时使用ISTIO_MUTUAL模式即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 06:54:03