An Azure service that provides serverless Kubernetes, an integrated continuous integration and continuous delivery experience, and enterprise-grade security and governance.
Your pattern is sound, but make Application Gateway WAF the only internet-facing L7 edge and keep Istio as the in-cluster gateway and service-mesh boundary. Do not expose a second public load balancer.
- Use a private AKS cluster in a spoke. Keep the API server private and make its private DNS zone resolvable from the hub and on-premises DNS.
- Use Azure CNI. Choose Overlay when no external system needs to reach pod IPs directly; choose CNI Pod Subnet when routable pod IPs are required. Reserve non-overlapping ranges and upgrade headroom.
- Set AKS outbound type to
userDefinedRoutingand route the relevant AKS subnets' default route to the hub firewall. Explicitly allow the AKS-required outbound endpoints before enforcing the route. - Terminate client TLS at Application Gateway so WAF can inspect it, then re-encrypt to the Istio gateway/internal load balancer. Use Key Vault for the listener certificate, a separate trusted backend certificate, and the correct backend hostname/SNI. Use Istio mTLS for service-to-service traffic.
For 100+ workloads, split clusters by environment, region, compliance boundary, or blast radius—not simply by application count—and enforce namespace isolation and default-deny network policies within each cluster.