Orchestration

Istio Ambient Mesh: Master Sidecar-less Service Mesh

August 3, 2026 Kubezilla Team 18 min read

Introduction

The traditional sidecar model in service meshes, while powerful, often introduces operational complexities and resource overhead. Every pod running an application typically gets an injected sidecar proxy, leading to increased resource consumption, higher latency, and a more complex deployment lifecycle. As Kubernetes deployments scale, these challenges become more pronounced, pushing organizations to seek more efficient and less intrusive ways to manage traffic, enforce policies, and gain observability. This is where Istio Ambient Mesh steps in, promising a revolution in service mesh architecture.

Istio Ambient Mesh offers a sidecar-less approach, fundamentally rethinking how the service mesh operates. Instead of injecting a proxy into every application pod, Ambient Mesh leverages a node-level proxy, the ‘ztunnel’, and an optional, workload-specific ‘waypoint proxy’. This innovative design drastically reduces the resource footprint, simplifies application deployments, and enhances performance, making it an attractive solution for large-scale, performance-sensitive environments. This guide will walk you through the architecture, deployment, and practical application of Istio Ambient Mesh, helping you unlock its full potential for your Kubernetes clusters.

TL;DR: Istio Ambient Mesh in a Nutshell

Istio Ambient Mesh offers a sidecar-less service mesh architecture, reducing resource overhead and simplifying operations. It uses node-level ztunnel proxies for L4 traffic and optional workload-specific waypoint proxies for L7 policy enforcement. Here’s how to get started:

  1. Install Istio with Ambient Profile:
  2. istioctl install --set profile=ambient --skip-confirmation
    
  3. Label Namespace for Ambient Mode:
  4. kubectl label namespace default istio.io/dataplane-mode=ambient
    
  5. Deploy a Sample Application:
  6. kubectl apply -f https://raw.githubusercontent.com/istio/istio/master/samples/helloworld/helloworld.yaml
    kubectl apply -f https://raw.githubusercontent.com/istio/istio/master/samples/helloworld/helloworld-gateway.yaml
    
  7. Enable Waypoint Proxy for L7:
  8. istioctl experimental waypoint generate --service-account helloworld-v1 -n default | kubectl apply -f -
    
  9. Verify Traffic:
  10. kubectl exec "$(kubectl get pod -l app=sleep -n default -o jsonpath='{.items[0].metadata.name}')" -c sleep -n default -- curl http://helloworld.default:5000/hello
    

Prerequisites

Before diving into Istio Ambient Mesh, ensure you have the following:

  • Kubernetes Cluster: A running Kubernetes cluster (version 1.25 or higher is recommended for full feature compatibility). You can use Minikube, Kind, or a cloud provider’s managed Kubernetes service like AWS EKS, GKE, or Azure AKS.
  • kubectl: The Kubernetes command-line tool, configured to connect to your cluster. Refer to the official Kubernetes documentation for installation instructions.
  • istioctl: The Istio command-line tool. Download the latest version compatible with your Istio release from the Istio releases page.
  • Basic Istio Knowledge: Familiarity with core Istio concepts like control plane, data plane, gateways, and virtual services will be beneficial. If you’re new to Istio, consider reviewing the Istio documentation.
  • Administrative Privileges: You’ll need cluster-admin privileges to install Istio and manage namespaces.

Step-by-Step Guide

1. Install Istio with Ambient Profile

The first step is to install Istio with the Ambient profile enabled. This profile configures Istio to deploy the necessary components for Ambient Mesh, including the ztunnel and controller components, without automatically injecting sidecars into every pod. We’ll use istioctl for a streamlined installation.

Before installation, it’s good practice to ensure your istioctl version matches the Istio version you intend to install. You can download istioctl from the Istio GitHub releases page. The --set profile=ambient flag is crucial here, as it tells Istio to configure itself for the Ambient mode, which optimizes for sidecar-less operation. The --skip-confirmation flag automates the installation without requiring manual prompts.

# Download istioctl (if you haven't already)
curl -L https://istio.io/downloadIstio | sh -
export PATH="$PATH:$(pwd)/istio-1.20.1/bin" # Adjust version as needed

# Verify istioctl version
istioctl version

# Install Istio with the ambient profile
istioctl install --set profile=ambient --skip-confirmation

Verify:

After the installation, verify that the Istio control plane components are running in the istio-system namespace. You should see pods for istiod, istio-ingressgateway, and the ztunnel daemonset.

kubectl get pods -n istio-system

Expected Output:

NAME                                    READY   STATUS    RESTARTS   AGE
istio-ingressgateway-7c6467469b-z5xdd   1/1     Running   0          2m
istiod-7b989c748c-x9j4v                 1/1     Running   0          2m
ztunnel-b9d9c                               1/1     Running   0          2m
ztunnel-c7g2f                               1/1     Running   0          2m
... (ztunnel pods for each node)

2. Enable Ambient Mode for a Namespace

With Istio installed in Ambient mode, you now need to explicitly tell Istio which namespaces should participate in the Ambient mesh. This is done by labeling the target namespace. When a namespace is labeled, Istio’s ztunnel proxies on each node will automatically intercept and manage L4 traffic for pods within that namespace.

This labeling mechanism provides granular control over which parts of your application infrastructure leverage Ambient Mesh. You can start with a single namespace and gradually onboard others. The ztunnel component, which runs as a DaemonSet on each node, is responsible for transparently handling mTLS and L4 policy enforcement for all pods in ambient-enabled namespaces, without requiring any changes to the application pods themselves. This is a significant departure from the sidecar model, where each pod needed its own proxy.

# Label the 'default' namespace to enable ambient mode
kubectl label namespace default istio.io/dataplane-mode=ambient

Verify:

Confirm the label has been applied to the namespace.

kubectl get namespace default -o yaml | grep "istio.io/dataplane-mode"

Expected Output:

  istio.io/dataplane-mode: ambient

3. Deploy a Sample Application

To demonstrate Ambient Mesh, let’s deploy a simple “helloworld” application. This application consists of a service and a deployment. We will also expose it via an Istio Gateway to allow external access.

The beauty here is that you deploy your application pods as usual, without any special annotations for sidecar injection. Because the namespace is labeled for Ambient mode, the ztunnel will automatically handle the L4 traffic for these pods. This simplifies application deployment and reduces the cognitive load on developers, as they no longer need to worry about sidecar injection or its associated lifecycle management. For more on exposing services, consider our guide on the Kubernetes Gateway API.

# Deploy the helloworld application
kubectl apply -f https://raw.githubusercontent.com/istio/istio/master/samples/helloworld/helloworld.yaml

# Deploy a sleep application to use as a client for testing
kubectl apply -f https://raw.githubusercontent.com/istio/istio/master/samples/sleep/sleep.yaml

# Expose the helloworld service via an Istio Gateway
kubectl apply -f https://raw.githubusercontent.com/istio/istio/master/samples/helloworld/helloworld-gateway.yaml

Verify:

Check that the pods and services for helloworld and sleep are running correctly.

kubectl get pods -l app=helloworld -n default
kubectl get svc helloworld -n default
kubectl get pods -l app=sleep -n default
kubectl get gateway -n default
kubectl get virtualservice -n default

Expected Output (truncated):

NAME                            READY   STATUS    RESTARTS   AGE
helloworld-v1-77696d59b8-g92xw   1/1     Running   0          30s
NAME                      TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
helloworld                ClusterIP   10.96.166.19     <none>        5000/TCP         30s
NAME                     READY   STATUS    RESTARTS   AGE
sleep-75487747f4-x9z2l   1/1     Running   0          25s
NAME             AGE
helloworld-gateway   3s
NAME                  GATEWAYS             HOSTS   AGE
helloworld            ["helloworld-gateway"]   ["*"]   3s

4. Verify L4 Traffic Management

At this point, your helloworld application is running in the Ambient mesh, and its L4 traffic is being managed by the ztunnel proxies. We can test this by making a request from the sleep pod to the helloworld service. The connection will be automatically mTLS-secured by the ztunnel, even though no sidecars are present in the application pods.

This L4 interception is a core benefit of Ambient Mesh. It provides foundational security and connectivity without the overhead of sidecars. For advanced L7 policies like traffic routing, retries, and circuit breaking, we’ll need to introduce waypoint proxies in the next step. This layered approach allows you to choose the right level of mesh functionality for each workload. For more on network security, see our Kubernetes Network Policies: Complete Security Hardening Guide.

# Make a request from the sleep pod to the helloworld service
kubectl exec "$(kubectl get pod -l app=sleep -n default -o jsonpath='{.items[0].metadata.name}')" -c sleep -n default -- curl http://helloworld.default:5000/hello

Verify:

You should receive a successful response from the helloworld service. To confirm mTLS, you can check the ztunnel logs or use Istio’s `istioctl proxy-status` command, though direct mTLS verification for L4 in Ambient can be more involved. A successful connection implies the ztunnel is working.

Hello version: v1, instance: helloworld-v1-77696d59b8-g92xw

5. Enable L7 Traffic Management with Waypoint Proxies

While ztunnel handles L4, for advanced L7 features like traffic shifting, header manipulation, or fine-grained access policies, you need a waypoint proxy. A waypoint proxy is a dedicated Envoy proxy deployed as a separate workload, scoped to a specific service account or namespace. It processes L7 traffic only for the workloads configured to use it.

This on-demand L7 capability is a key differentiator of Ambient Mesh. You only deploy waypoint proxies for the workloads that truly need L7 features, avoiding unnecessary resource consumption for simpler services. The istioctl experimental waypoint generate command helps create the necessary Kubernetes resources (Deployment, Service, ServiceAccount) for a waypoint proxy. This command generates a YAML manifest, which we then apply to the cluster.

# Generate and apply a waypoint proxy for the 'helloworld-v1' service account
# This assumes your helloworld deployment uses a service account named 'helloworld-v1'
istioctl experimental waypoint generate --service-account helloworld-v1 -n default | kubectl apply -f -

Verify:

Confirm that the waypoint proxy deployment and service are running in the default namespace.

kubectl get deployment -l app=istio-waypoint -n default
kubectl get service -l app=istio-waypoint -n default

Expected Output (truncated):

NAME                                         READY   UP-TO-DATE   AVAILABLE   AGE
istio-waypoint-helloworld-v1-7448888b5-abcd   1/1     1            1           10s
NAME                               TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
istio-waypoint-helloworld-v1       ClusterIP   10.96.123.45    <none>        15008/TCP   10s

6. Apply L7 Policy (e.g., Traffic Routing)

Now that the waypoint proxy is in place for helloworld-v1, we can apply L7 policies. Let’s create a VirtualService to demonstrate traffic routing. We’ll introduce a second version of our helloworld application (v2) and route 100% of traffic to it, bypassing v1. This showcases how L7 policies are enforced by the waypoint proxy.

This step highlights the power of the waypoint proxy. Without it, such granular L7 control wouldn’t be possible in Ambient Mesh. By deploying a waypoint proxy specifically for the helloworld-v1 service account, we enable Istio to intercept and apply L7 rules to traffic destined for pods associated with that service account. This allows for advanced traffic management, fault injection, and policy enforcement, similar to the sidecar model, but with a more targeted and resource-efficient approach. For more on traffic management, refer to the Istio Traffic Management documentation.

# Deploy helloworld v2
kubectl apply -f - <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  name: helloworld-v2
  labels:
    app: helloworld
    version: v2
spec:
  replicas: 1
  selector:
    matchLabels:
      app: helloworld
      version: v2
  template:
    metadata:
      labels:
        app: helloworld
        version: v2
    spec:
      serviceAccountName: helloworld-v1 # Use the same SA for waypoint proxy
      containers:
      - name: helloworld
        image: docker.io/istio/examples-helloworld-v1
        ports:
        - containerPort: 5000
        env:
        - name: INSTANCE_NAME
          value: helloworld-v2
        - name: SERVICE_VERSION
          value: v2
---
apiVersion: v1
kind: Service
metadata:
  name: helloworld-v2
  labels:
    app: helloworld
    service: helloworld
spec:
  ports:
  - port: 5000
    name: http
  selector:
    app: helloworld
    version: v2
EOF

# Create a VirtualService to route all traffic to v2
kubectl apply -f - <<EOF
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: helloworld
spec:
  hosts:
  - helloworld.default.svc.cluster.local
  http:
  - route:
    - destination:
        host: helloworld.default.svc.cluster.local
        subset: v2
      weight: 100
---
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
  name: helloworld
spec:
  host: helloworld.default.svc.cluster.local
  subsets:
  - name: v1
    labels:
      version: v1
  - name: v2
    labels:
      version: v2
EOF

Verify:

Make several requests from the sleep pod. You should now consistently see responses from helloworld-v2, indicating that the L7 routing policy is being enforced by the waypoint proxy.

for i in $(seq 1 5); do \
    kubectl exec "$(kubectl get pod -l app=sleep -n default -o jsonpath='{.items[0].metadata.name}')" -c sleep -n default -- curl http://helloworld.default:5000/hello; \
    echo ""; \
done

Expected Output:

Hello version: v2, instance: helloworld-v2-77696d59b8-abcd
Hello version: v2, instance: helloworld-v2-77696d59b8-abcd
Hello version: v2, instance: helloworld-v2-77696d59b8-abcd
Hello version: v2, instance: helloworld-v2-77696d59b8-abcd
Hello version: v2, instance: helloworld-v2-77696d59b8-abcd

Production Considerations

Deploying Istio Ambient Mesh in a production environment requires careful planning and consideration of several factors:

  • Resource Management: While Ambient Mesh reduces per-pod overhead, the ztunnel and waypoint proxies still consume resources. Monitor CPU and memory usage of these components, especially the ztunnel DaemonSet, as it scales with the number of nodes. Utilize tools like Karpenter for cost optimization by ensuring your nodes are appropriately sized.
  • Observability: Integrate Ambient Mesh with your existing observability stack. Istio provides rich metrics, logs, and traces. Ensure these are collected, stored, and visualizable through tools like Prometheus, Grafana, and Jaeger. Consider leveraging eBPF Observability with Hubble for deeper network insights.
  • Security Best Practices:
    • mTLS: Ambient Mesh automatically enforces mTLS at L4. Ensure your applications are designed to trust the Istio CA.
    • Authorization Policies: Implement Istio Authorization Policies to control access between services. These policies can be enforced at L4 by ztunnel or at L7 by waypoint proxies.
    • Image Security: Use Sigstore and Kyverno to ensure only signed and trusted images are deployed.
  • High Availability: Ensure your Istio control plane (istiod) is highly available. For waypoint proxies, consider deploying multiple replicas to prevent a single point of failure.
  • Network Configuration: Understand how Ambient Mesh interacts with your CNI. ztunnel intercepts traffic at the node level, so ensure there are no conflicts or unexpected behaviors with your network plugins. For advanced networking, explore options like Cilium WireGuard Encryption.
  • Gateway Integration: If you’re using an Istio Ingress Gateway, ensure it’s correctly configured to integrate with services in Ambient-enabled namespaces. This might involve updating your Gateway and VirtualService configurations.
  • Gradual Rollout: Avoid a “big bang” migration. Start by enabling Ambient mode for non-critical namespaces, then gradually move more critical workloads. This allows you to identify and address issues incrementally.
  • Performance Testing: Conduct thorough performance testing to understand the latency and throughput characteristics of your applications under Ambient Mesh, both with and without waypoint proxies.
  • Upgrade Strategy: Plan your Istio upgrade strategy carefully. Always refer to the official Istio upgrade documentation for best practices.

Troubleshooting

Here are some common issues you might encounter with Istio Ambient Mesh and their solutions:

1. Pods not joining the Ambient Mesh

Issue: Your application pods are running, but their traffic doesn’t seem to be managed by Ambient Mesh (e.g., mTLS is not active, L7 policies are not applied).

Solution:

  1. Namespace Label: Ensure the namespace where your pods are deployed has the istio.io/dataplane-mode=ambient label.
  2. ztunnel Status: Verify that the ztunnel DaemonSet is running on all nodes where your application pods are scheduled. Check its logs for errors.
  3. Pod Restart: Sometimes, pods need to be restarted after the namespace label is applied for the ztunnel to pick up the change.
# Check namespace label
kubectl get namespace <your-namespace> -o yaml | grep "istio.io/dataplane-mode"

# Check ztunnel pods
kubectl get pods -n istio-system -l app=ztunnel

# Check ztunnel logs on a node running your pod
kubectl logs -n istio-system $(kubectl get pod -n istio-system -l app=ztunnel -o jsonpath='{.items[0].metadata.name}')

2. L7 Policies not being applied

Issue: You’ve created VirtualServices or AuthorizationPolicies, but they are not having any effect on traffic.

Solution:

  1. Waypoint Proxy: L7 policies require a waypoint proxy. Ensure a waypoint proxy is deployed for the service account associated with the target application workload.
  2. Service Account: Verify that your application pod is using the correct service account for which the waypoint proxy was generated.
  3. Waypoint Status: Check that the waypoint proxy deployment and service are healthy and running.
  4. Configuration Status: Use istioctl analyze to check for configuration issues with your Istio resources.
# Check waypoint proxy deployment
kubectl get deployment -l app=istio-waypoint -n <your-namespace>

# Check application pod's service account
kubectl get pod <your-app-pod> -n <your-namespace> -o jsonpath='{.spec.serviceAccountName}'

# Analyze Istio configuration
istioctl analyze -n <your-namespace>

3. Connectivity issues after enabling Ambient Mode

Issue: After labeling a namespace for Ambient mode, applications within that namespace or communicating with it experience connectivity problems.

Solution:

  1. Firewall/Network Policies: Ensure no Kubernetes Network Policies are inadvertently blocking traffic required by Istio components, especially the ztunnel or waypoint proxies. Review your Network Policies Security Guide.
  2. CNI Compatibility: While Istio aims for broad CNI compatibility, specific CNI configurations might cause issues. Check Istio’s official documentation for any known incompatibilities with your CNI.
  3. ztunnel Logs: Examine the ztunnel logs for any errors indicating traffic interception failures.
  4. Pod Restart: Sometimes, network configuration changes require a pod restart.
# Check network policies (example for default namespace)
kubectl get networkpolicies -n default -o yaml

# Check ztunnel logs on the relevant node
kubectl logs -n istio-system $(kubectl get pod -n istio-system -l app=ztunnel -o jsonpath='{.items[0].metadata.name}')

4. High resource consumption by ztunnel or waypoint proxies

Issue: The ztunnel DaemonSet or waypoint proxy deployments are consuming excessive CPU or memory.

Solution:

  1. Resource Limits: Review and adjust the resource requests and limits for the ztunnel and waypoint proxy deployments.
  2. Workload Scale: For waypoint proxies, if many services use the same service account, the waypoint proxy might become a bottleneck. Consider generating separate waypoint proxies for different service accounts or adjusting its replicas.
  3. Traffic Patterns: Analyze traffic patterns. High throughput or complex L7 policies can increase resource usage.
  4. Istio Version: Ensure you are running a recent, stable version of Istio, as performance optimizations are continuously introduced.
# Get ztunnel resource limits
kubectl get daemonset ztunnel -n istio-system -o yaml | grep -A 5 "resources:"

# Get waypoint proxy resource limits (replace with your waypoint name)
kubectl get deployment istio-waypoint-helloworld-v1 -n default -o yaml | grep -A 5 "resources:"

5. External access to services via Ingress Gateway not working

Issue: You’ve configured an Istio Ingress Gateway and VirtualService, but external requests are failing to reach services in an Ambient-enabled namespace.

Solution:

  1. Gateway and VirtualService Configuration: Double-check your Gateway and VirtualService definitions for correct hostnames, ports, and selectors.
  2. Ingress Gateway Logs: Examine the logs of the istio-ingressgateway pod for any errors during request processing.
  3. Service Reachability: Verify that the Ingress Gateway can reach the backend service. This might involve checking network policies or service endpoint availability.
  4. Port Conflicts: Ensure there are no port conflicts with other services or the ztunnel on the nodes.
# Check ingress gateway logs
kubectl logs -n istio-system $(kubectl get pod -n istio-system -l app=istio-ingressgateway -o jsonpath='{.items[0].metadata.name}')

# Describe the VirtualService to see its status
kubectl describe virtualservice helloworld -n default

FAQ Section

Q1: What is the main difference between Istio Ambient Mesh and the traditional sidecar model?

A1: The main difference lies in the proxy deployment model. The traditional sidecar model injects an Envoy proxy into every application pod, running alongside the application container. Istio Ambient Mesh, conversely, uses a sidecar-less approach. It deploys a node-level proxy called ztunnel for L4 traffic management (mTLS, L4 policy) and optional, workload-specific waypoint proxies for L7 traffic management (routing, retries, etc.). This significantly reduces resource overhead and simplifies application deployment.

Q2: When should I use a waypoint proxy in Ambient Mesh?

A2: You should use a waypoint proxy when your workload requires L7 traffic management features such as HTTP traffic routing, header manipulation, fault injection, advanced load balancing, or detailed L7 authorization policies. For basic L4 security (mTLS) and network policies, the ztunnel is sufficient without a waypoint proxy.

Q3: Can I mix Ambient Mesh with sidecar-injected workloads in the same cluster?

A3: Yes, Istio Ambient Mesh is designed to be fully interoperable with the traditional sidecar model. You can have some namespaces running in Ambient mode and others with sidecar injection enabled, or even transition namespaces from sidecar to Ambient mode gradually. This allows for flexible adoption and migration strategies.

Q4: How does Ambient Mesh handle mTLS?

A4: In Ambient Mesh, mTLS is handled by the ztunnel component. The ztunnel, running on each node, intercepts all L4 traffic for pods in Ambient-enabled namespaces. It then establishes mTLS connections between ztunnels for inter-node communication or between a ztunnel and an external service, transparently securing traffic at the transport layer without requiring any changes or proxies within the application pods.

Q5: What are the performance benefits of Ambient Mesh over sidecars?

A5: Ambient Mesh offers several performance benefits:

  • Reduced Resource Consumption: Eliminates the per-pod sidecar overhead, leading to lower CPU and memory usage across the cluster.
  • Simplified Deployment: No need to restart pods for sidecar injection/upgrades.
  • Lower Latency: For L4 traffic, the ztunnel path is highly optimized. For L7, waypoint proxies are only introduced when needed, minimizing unnecessary hops.
  • Improved Scalability: Less overhead per pod means higher density and better scalability for your applications.

These benefits contribute to better overall cluster efficiency and potentially lower operational costs, especially for large-scale deployments. You can find more details on performance in the Istio Ambient Performance documentation.

Cleanup Commands

To remove the resources created during this tutorial, follow these steps:

# 1. Delete the sample applications and Istio configurations
kubectl delete -f https://raw.githubusercontent.com/istio/istio/master/samples/helloworld/helloworld.yaml -n default
kubectl delete -f https://raw.githubusercontent.com/istio/istio/master/samples/sleep/sleep.yaml -n default
kubectl delete -f https://raw.githubusercontent.com/istio/istio/master/samples/helloworld/helloworld-gateway.yaml -n default

# Delete helloworld v2 and its corresponding VirtualService/DestinationRule
kubectl delete deployment helloworld-v2 -n default
kubectl delete svc helloworld-v2 -n default
kubectl delete virtualservice helloworld -n default
kubectl delete destinationrule helloworld -n default

# Delete the waypoint proxy
istioctl experimental waypoint generate --service-account helloworld-v1 -n default | kubectl delete -f -

# 2. Unlabel the namespace
kubectl label namespace default istio.io/dataplane-mode-

# 3. Uninstall Istio
istioctl uninstall --purge --skip-confirmation

# Optional: Remove Istio CRDs if not needed
kubectl get crd -o name | grep 'istio.io' | xargs kubectl delete

# Remove the istio-system namespace
kubectl delete namespace istio-system

Next Steps / Further Reading

Congratulations on successfully deploying and experimenting with Istio Ambient Mesh! Here are some next steps and resources to deepen your understanding:

  • Explore Istio Documentation: Dive deeper into the official Istio Ambient Mesh documentation for comprehensive details on its architecture, features, and advanced configurations.
  • Traffic Management: Experiment with more advanced Istio traffic management features like fault injection, retries, and circuit breakers with your waypoint proxies.
  • Security Policies: Implement Istio Authorization Policies to control access between services in your Ambient mesh.
  • Observability: Set up and integrate Prometheus, Grafana, and Jaeger with your Ambient Mesh to gain deep insights into your service traffic. Explore eBPF Observability with Hubble for network-level visibility.
  • Multi-Cluster Istio: Learn how to extend Istio Ambient Mesh across multiple Kubernetes clusters for global traffic management and resilience.
  • Gateway API Integration: If you’re looking to modernize your ingress, explore how Istio works with the

Leave a comment