AKS中Istio Gateway能否直接对接Azure Application Gateway?求配置参考
Istio Gateway 直接对接 Azure Application Gateway(绕过Azure Load Balancer)方案可行性及配置参考
方案可行性
完全可行。Azure Application Gateway支持直接访问Kubernetes集群内部的Service(NodePort或ClusterIP类型),只要两者网络连通(同一VNet或VNet peering),就能绕过自动创建的Azure Load Balancer,让流量从Application Gateway直接转发到Istio IngressGateway。
具体配置步骤
1. 调整Istio IngressGateway的Service类型
默认Istio安装后,IngressGateway的Service类型为LoadBalancer,需要将其改为NodePort(推荐,便于Application Gateway定位节点端口)或ClusterIP(适合同一VNet内的内部访问):
方式1:编辑现有Service
kubectl edit svc istio-ingressgateway -n istio-system
将spec.type字段从LoadBalancer修改为NodePort,保存退出。
方式2:应用新的配置文件
创建istio-gateway-nodeport.yaml文件:
apiVersion: v1 kind: Service metadata: name: istio-ingressgateway namespace: istio-system spec: type: NodePort selector: app: istio-ingressgateway istio: ingressgateway ports: - name: http2 port: 80 targetPort: 8080 nodePort: 30080 # 可选,指定固定端口,避免自动分配变动 - name: https port: 443 targetPort: 8443 nodePort: 30443 # 可选
执行部署:
kubectl apply -f istio-gateway-nodeport.yaml
2. 配置Azure Application Gateway
前提条件
确保Application Gateway与AKS集群处于同一虚拟网络,或已通过VNet peering实现网络连通。
核心配置步骤
- 创建后端池:
选择AKS的虚拟机规模集(VMSS)作为后端目标,或手动添加AKS节点的私有IP地址。 - 配置后端设置:
- 端口设置为Istio Gateway对应的NodePort(如HTTP用30080,HTTPS用30443)
- 协议根据需求选择HTTP/HTTPS,若用HTTPS需上传对应SSL证书
- 配置健康探针:
指向Istio Gateway的健康检查端点/healthz/ready,端口对应NodePort,确保Application Gateway能检测到Istio Gateway的可用性。 - 创建路由规则:
关联前端端口(80/443)、后端池和后端设置,完成流量转发规则配置。
3. 验证流量路径
发送测试请求到Application Gateway的公网IP,确认请求能正常路由到Istio管理的后端服务。同时可检查原Azure Load Balancer的流量统计,确认无流量流入,说明已成功绕过。
关键注意事项
- NodePort方式需确保AKS节点的NSG规则允许Application Gateway的IP段访问指定的NodePort端口。
- 若使用ClusterIP类型,需确保Application Gateway所在VNet能访问AKS的ClusterIP网段(通常通过VNet peering实现)。
- 如需端到端HTTPS加密,可在Application Gateway配置SSL终止,同时在Istio Gateway配置后端服务的加密规则,实现全链路加密。
内容的提问来源于stack exchange,提问作者One Developer
相关产品推荐
相关产品推荐

