You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: support/azure/azure-kubernetes/extensions/istio-add-on-egress-gateway.md
+12-12Lines changed: 12 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
---
2
-
title: Istio service mesh add-on egress gateway troubleshooting
2
+
title: Istio Service Mesh Add-on Egress Gateway Troubleshooting
3
3
description: Learn how to do egress gateway troubleshooting on the Istio service mesh add-on for Azure Kubernetes Service (AKS).
4
-
ms.date: 05/23/2025
4
+
ms.date: 05/29/2025
5
5
ms.reviewer: nshankar, kochhars, v-weizhu
6
6
ms.service: azure-kubernetes-service
7
7
ms.topic: troubleshooting-general
@@ -18,11 +18,11 @@ The Istio add-on egress gateway is an Envoy-based proxy that can be used to rout
18
18
19
19
The Istio add-on egress gateway takes a hard dependency on the [Static Egress Gateway feature](/azure/aks/configure-static-egress-gateway). You must enable the Static Egress Gateway feature on your cluster before enabling an Istio add-on egress gateway.
20
20
21
-
You can create multiple Istio add-on egress gateways across different namespaces with a Deployment/Service `name` of your choice, with a max of `500` egress gateways per cluster.
21
+
You can create multiple Istio add-on egress gateways across different namespaces with a `Deployment` or `Service``name` of your choice, with a max of `500` egress gateways per cluster.
22
22
23
23
## Before troubleshooting
24
24
25
-
Before proceeding, ensure the following prerequisites are met:
25
+
Before proceeding, take the following actions:
26
26
27
27
- Install Azure CLI `aks-preview` version `14.0.0b2` or later to enable an Istio add-on egress gateway.
28
28
- Enable the [Static Egress Gateway feature](/azure/aks/configure-static-egress-gateway) on your cluster, create an agent pool of mode `gateway`, and configure a `StaticGatewayConfiguration` custom resource.
@@ -57,22 +57,22 @@ You should see a service of type `ClusterIP` for the Istio egress gateway with a
Ensure that self-managed mutating and validating webhooks don't block provisioning of the Istio egress gateway resources. Because the Istio egress gateway can be deployed in user-managed namespaces, [AKS admissions enforcer](/azure/aks/faq#can-admission-controller-webhooks-impact-kube-system-and-internal-aks-namespaces-) can't prevent custom admission controllers from affecting Istio egress gateway resources.
60
+
Ensure that self-managed mutating and validating webhooks don't block provisioning of the Istio egress gateway resources. Because the Istio egress gateway can be deployed in user-managed namespaces, [AKS admissions enforcer](/azure/aks/faq#can-admission-controller-webhooks-affect-kube-system-and-internal-aks-namespaces-) can't prevent custom admission controllers from affecting Istio egress gateway resources.
61
61
62
62
### Step 3: Verify that the Istio add-on egress gateway name is valid
63
63
64
-
Istio egress gateway names must meet these criteria:
64
+
Istio egress gateway names must:
65
65
66
66
- Be 63 characters or fewer in length.
67
67
- Only contain lowercase alphanumeric characters, '.' and '-'.
68
68
- Start and end with a lowercase alphanumerical character.
69
69
- Be valid Domain Name System (DNS) names.
70
70
71
-
The regex for Istio egress name validations is:`^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`.
71
+
The regex for Istio egress name validations is `^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$`.
If Static Egress Gateway components such as the `kube-egress-gateway-cni-manager` crash, or there are other issues with the static egress IP allocation, Istio egress gateway provisioning could fail. In this case, [troubleshoot Static Egress Gateway errors or misconfiguration](#static-egress-gateway-errors-or-misconfiguration-troubleshooting).
75
+
If Static Egress Gateway components such as the `kube-egress-gateway-cni-manager` crash, or there are other issues with the static egress IP allocation, Istio egress gateway provisioning might fail. In this case, [troubleshoot Static Egress Gateway errors or misconfiguration](#static-egress-gateway-errors-or-misconfiguration-troubleshooting).
76
76
77
77
## Static Egress Gateway errors or misconfiguration troubleshooting
78
78
@@ -94,25 +94,25 @@ Ensure that the `StaticGatewayConfiguration` for the Istio add-on egress gateway
94
94
95
95
### Step 2: Make sure that an egressIpPrefix is provisioned for the StaticGatewayConfiguration
96
96
97
-
If the Istio egress gateway pods are stuck in`ContainerCreating`, the `kube-egress-gateway-cni-manager` pod could prevent the `istio-proxy` container from being created because the `StaticGatewayConfiguration` doesn't have an `egressIpPrefix` assigned to it yet. To verify whether it's assigned an `egressIpPrefix`, check the `status` of the `StaticGatewayConfiguration`for that Istio egress gateway. To view if there are any errors with the `egressIpPrefix` provisioning, run the `kubectl describe`command against the `StaticGatewayConfiguration`.
97
+
If the Istio egress gateway pods are stuck in`ContainerCreating`, the `kube-egress-gateway-cni-manager` pod might prevent the `istio-proxy` container from being created because the `StaticGatewayConfiguration` doesn't have an `egressIpPrefix` assigned to it yet. To verify whether it's assigned an `egressIpPrefix`, check the `status` of the `StaticGatewayConfiguration`for that Istio egress gateway. To view if there are any errors with the `egressIpPrefix` provisioning, run the `kubectl describe`command against the `StaticGatewayConfiguration`.
98
98
99
99
> [!NOTE]
100
-
> It can take up to about 5 minutes for a Static Egress Gateway `StaticGatewayConfiguration` to be assigned an `egressIpPrefix`.
100
+
> It can take up to about five minutes for a Static Egress Gateway `StaticGatewayConfiguration` to be assigned an `egressIpPrefix`.
101
101
102
102
```bash
103
103
kubectl get staticgatewayconfiguration $ISTIO_SGC_NAME -n $ISTIO_EGRESS_NAMESPACE -o jsonpath='{.status.egressIpPrefix}'
You can also check the logs of the `kube-egress-gateway-cni-manager` pod running on the node of the failing Istio egress pod. If there are issues with `egressIpPrefix` provisioning or if an IP prefix still isn't assigned after approximately 5 minutes, you might need to [debug the Static Egress Gateway](#step-8-debug-the-static-egress-gateway) further.
107
+
You can also check the logs of the `kube-egress-gateway-cni-manager` pod running on the node of the failing Istio egress pod. If there are issues with `egressIpPrefix` provisioning or if an IP prefix still isn't assigned after approximately five minutes, you might need to [debug the Static Egress Gateway](#step-8-debug-the-static-egress-gateway) further.
108
108
109
109
### Step 3: Make sure that the StaticGatewayConfiguration references a valid gateway agent pool
110
110
111
111
Verify that the `spec.gatewayNodepoolName` for the `StaticGatewayConfiguration` for each Istio egress gateway references a valid agent pool of mode `Gateway` on the cluster. If any Istio add-on egress gateway `StaticGatewayConfiguration` references it via the `spec.gatewayNodepoolName`, you shouldn't delete a `Gateway` agent pool.
112
112
113
113
### Step 4: Try sending an external request from the Istio egress gateway
114
114
115
-
To validate that requests from the Istio egress gateway are routed correctly via the Static Egress Gateway node pool, you can use the `kubectl debug`command to create a Kubernetes ephemeral container and verify the source IP of requests from the Istio egress pod. Make sure that you temporarily set`outboundTrafficPolicy.mode` to `ALLOW_ANY` so that the egress gateway can access `ifconfig.me`. As a security best-practice, we recommend setting `outboundTrafficPolicy.mode` back to `REGISTRY_ONLY` after debugging.
115
+
To validate that requests from the Istio egress gateway are routed correctly via the Static Egress Gateway node pool, you can use the `kubectl debug`command to create a Kubernetes ephemeral container and verify the source IP of requests from the Istio egress pod. Make sure that you temporarily set`outboundTrafficPolicy.mode` to `ALLOW_ANY` so that the egress gateway can access `ifconfig.me`. As a security bestpractice, we recommend setting `outboundTrafficPolicy.mode` back to `REGISTRY_ONLY` after debugging.
0 commit comments