Skip to content

Commit 2dc016b

Browse files
authored
Update istio-add-on-general-troubleshooting.md
1 parent 45ecb84 commit 2dc016b

1 file changed

Lines changed: 12 additions & 12 deletions

File tree

support/azure/azure-kubernetes/extensions/istio-add-on-general-troubleshooting.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: General Istio service mesh add-on troubleshooting
2+
title: General Istio Service Mesh Add-on Troubleshooting
33
description: Learn how to do general troubleshooting of the Istio service mesh add-on for Azure Kubernetes Service (AKS).
44
ms.date: 03/18/2025
55
author: nshankar13
@@ -13,7 +13,7 @@ ms.custom: sap:Extensions, Policies and Add-Ons
1313
---
1414
# General troubleshooting of the Istio service mesh add-on
1515

16-
This article discusses general strategies (that use `kubectl`, `istioctl`, and other tools) to troubleshoot issues that are related to the Istio service mesh add-on for Microsoft Azure Kubernetes Service (AKS). This article also provides a list of possible error messages, reasons for error occurrences, and recommendations to resolve these errors.
16+
This article discusses general strategies (that use `kubectl`, `istioctl`, and other tools) to troubleshoot issues that are related to the Istio service mesh add-on for Microsoft Azure Kubernetes Service (AKS). This article also provides a list of possible error messages, reasons for error occurrences, and recommendations to resolve these errors.
1717

1818
## Prerequisites
1919

@@ -50,15 +50,15 @@ kubectl delete pods <istio-pod> --namespace aks-istio-system
5050
The Istio pod is managed by a deployment. It's automatically re-created and redeployed after you delete it directly. Therefore, deleting the pod is an alternative method for restarting the pod.
5151

5252
> [!NOTE]
53-
> Alternatively, you can restart the deployment directly by running the following [kubectl rollout restart](https://kubernetes.io/docs/reference/kubectl/generated/kubectl_rollout/kubectl_rollout_restart/) command:
53+
> You can also restart the deployment directly by running the following [kubectl rollout restart](https://kubernetes.io/docs/reference/kubectl/generated/kubectl_rollout/kubectl_rollout_restart/) command:
5454
>
5555
> ```bash
5656
> kubectl rollout restart deployment <istiod-asm-revision> --namespace aks-istio-system
5757
> ```
5858
5959
### Step 3: Check the status of resources
6060
61-
If Istiod isn't scheduled, or if the pod isn't responding, you might want to check the status of the deployment and the replica sets. To do this, run the [kubectl get](https://kubernetes.io/docs/reference/kubectl/generated/kubectl_get/) command:
61+
If Istiod isn't scheduled, or if the pod isn't responding, you might want to check the status of the deployment and the replica sets. To do this step, run the [kubectl get](https://kubernetes.io/docs/reference/kubectl/generated/kubectl_get/) command:
6262
6363
```bash
6464
kubectl get <resource-type> [[--selector app=istiod] | [<resource-name>]]
@@ -112,7 +112,7 @@ kubectl logs <pod-name> --namespace <pod-namespace> --container istio-proxy
112112

113113
## Troubleshooting checklist: Using istioctl
114114

115-
The following troubleshooting steps describe how to collect information and debug your mesh environment by running various `istioctl` commands.
115+
The following troubleshooting steps discuss how to collect information and debug your mesh environment by running various `istioctl` commands.
116116

117117
All `istioctl` commands must be run together with the `--istioNamespace aks-istio-system` flag to point to the AKS add-on installation of Istio.
118118

@@ -229,35 +229,35 @@ To address common traffic management and security misconfiguration issues that I
229229
230230
For links to discussion about other issues, such as sidecar injection, observability, and upgrades, see [Common problems](https://istio.io/latest/docs/ops/common-problems/) on the Istio documentation site.
231231
232-
### Step 3: Verify Protocol Selection
232+
### Step 3: Verify protocol selection
233233
234-
While Istio can automatically detect any TCP-based protocol, in certain cases, the protocol in the `Service` spec may need to be [explicitly declared](https://istio.io/latest/docs/ops/configuration/traffic-management/protocol-selection/) to unblock communication issues. This can be done by setting the protocol in the port `name` or the `appProtocol`, with `appProtocol` taking precedence. For instance, certain scenarios may require setting the protocol to `tcp` to proxy traffic as raw TCP as opposed to HTTP or HTTPS.
234+
Although Istio can automatically detect any TCP-based protocol, in certain cases, the protocol in the `Service` spec may have to be [explicitly declared](https://istio.io/latest/docs/ops/configuration/traffic-management/protocol-selection/) to unblock communication issues. This can be done by setting the protocol in the port `name` or in `appProtocol`. In this case, `appProtocol` takes precedence. For instance, certain scenarios might require you to set the protocol to `tcp` to proxy traffic as raw TCP, as opposed to HTTP or HTTPS.
235235
236236
### Step 4: Avoid CoreDNS overload
237237
238238
Issues that relate to CoreDNS overload might require you to change certain Istio DNS settings, such as the `dnsRefreshRate` field in the Istio MeshConfig definition.
239239
240240
### Step 5: Fix pod and sidecar race conditions
241241
242-
If your application pod starts before the Envoy sidecar starts, the application might become unresponsive, or it might restart. For instructions about how to avoid this problem, see [Pod or containers start with network issues if istio-proxy is not ready](https://istio.io/latest/docs/ops/common-problems/injection/#pod-or-containers-start-with-network-issues-if-istio-proxy-is-not-ready). Specifically, setting the `holdApplicationUntilProxyStarts` MeshConfig field under `defaultConfig` to `true` can help prevent these race conditions.
242+
If your application pod starts before the Envoy sidecar starts, the application might become unresponsive, or it might restart. For instructions to avoid this problem, see [Pod or containers start with network issues if istio-proxy is not ready](https://istio.io/latest/docs/ops/common-problems/injection/#pod-or-containers-start-with-network-issues-if-istio-proxy-is-not-ready). Specifically, setting the `holdApplicationUntilProxyStarts` MeshConfig field under `defaultConfig` to `true` can help prevent these race conditions.
243243
244244
### Step 6: Verify OutboundTrafficPolicy mode and Service Entry configuration for outbound access
245245
246-
Issues relating to outbound access or [egress gateways](./istio-add-on-egress-gateway.md) can arise from certain Istio configurations pertaining to external service configuration. First, verify whether the `outboundTrafficPolicy.mode` either in the [Shared MeshConfig](./istio-add-on-meshconfig.md) or `Sidecar` custom resources is set to `REGISTRY_ONLY`. If so, then a `ServiceEntry` must be explicitly declared for external service to enable outbound access. When using egress gateways, the resolution for the ServiceEntry must be set to `DNS`.
246+
Issues that relate to outbound access or [egress gateways](./istio-add-on-egress-gateway.md) might occur because of certain Istio configurations that pertain to external service configuration. Verify whether the `outboundTrafficPolicy.mode` either in the [Shared MeshConfig](./istio-add-on-meshconfig.md) or `Sidecar` custom resources is set to `REGISTRY_ONLY`. If so, then a `ServiceEntry` must be explicitly declared for external service to enable outbound access. When you use egress gateways, the resolution for the ServiceEntry must be set to `DNS`.
247247
248-
Also keep in mind that by default, `ServiceEntries` by default will be exported across all namespaces. To restrict the scope of a `ServiceEntry` to a particular namespace, you should use the `exportTo` field in the [spec](https://istio.io/latest/docs/reference/config/networking/service-entry/#ServiceEntry-export_to).
248+
Also, keep in mind that, by default, `ServiceEntries` is exported across all namespaces. To restrict the scope of a `ServiceEntry` to a particular namespace, you should use the `exportTo` field in the [spec](https://istio.io/latest/docs/reference/config/networking/service-entry/#ServiceEntry-export_to).
249249
250250
### Step 7: Configure a Service Entry when using an HTTP proxy for outbound traffic
251251
252-
If your cluster uses an HTTP proxy for outbound internet access, you'll have to configure a Service Entry. For more information, see [HTTP proxy support in Azure Kubernetes Service](/azure/aks/http-proxy#istio-add-on-http-proxy-for-external-services).
252+
If your cluster uses an HTTP proxy for outbound internet access, you have to configure a Service Entry. For more information, see [HTTP proxy support in Azure Kubernetes Service](/azure/aks/http-proxy#istio-add-on-http-proxy-for-external-services).
253253
254254
### Step 8: Enable Envoy access logging
255255
256256
Enabling Envoy [access logging](https://istio.io/latest/docs/tasks/observability/logs/access-log/) helps identify and pinpoint issues in the gateways and sidecar proxies. For more information about logging and telemetry collection for the Istio add-on, see the documentation on [mesh configuration](/azure/aks/istio-meshconfig), [Telemetry API](/azure/aks/istio-telemetry), and [Istio metrics collection](/azure/aks/istio-metrics-managed-prometheus).
257257
258258
## Error messages
259259
260-
The following table contains a list of possible error messages (for deploying the add-on, enabling ingress gateways, and performing upgrades), the reason why an error occurred, and recommendations for resolving the error.
260+
The following table contains a list of possible error messages (for deploying the add-on, enabling ingress gateways, and performing upgrades), the reason why an error occurs, and recommendations to resolve the error.
261261
262262
| Error | Reason | Recommendations |
263263
|--|--|--|

0 commit comments

Comments
 (0)