Istio and gateway lifecycle manager
Troubleshoot the installation, upgrade, or uninstallation of Istio components.
If your installation settings are configured incorrectly, the Gloo agent might not start or you might experience issues with other Istio components such as gateways.
Before reviewing these specific Istio operator topics, try Debugging Istio.
Check Istio installation status and values
Use the ClusterIstioInstallation
resource to monitor the status of the Helm installation for each Istio component, such as istiod
and gateways. You can use this information alongside the status of the Istio and Gateway Lifecycle Manager resources to troubleshoot installation or upgrade issues in your environment.
List the
ClusterIstioInstallation
resources in your environment, and find the resource for the Istio installation you want to investigate. Gloo Mesh creates these internal resources to represent the state of your Istio installations in each workload cluster.Describe the resource.
In the
status.helm.upgradeInstall.releases
section, check thestate
of each component’s Helm chart installation. The state can help you determine whether your Istio installations are completed.State Description PENDING
Istio installation settings are present on the cluster, but are not yet installed. INSTALLING
Istio components are currently installing in the cluster. UPGRADING
Istio components are currently upgrading to use updated settings. UNINSTALLING
Istio components are uninstalling from the cluster. FINISHED
The installation or upgrade process is finished. FAILED
The installation or upgrade process has failed. Check the statuses of the IstioLifecycleManager
andGatewayLifecycleManager
resources, or if you manually installed with Helm, the status of the Helm release. You can also check the insights for any Istio-related errors.In this example output, the Helm charts for the
base
,istiod
, andcni
Istio components all have a state ofFINISHED
.To see the Helm values that were used during the installation or upgrade attempt, check the
status.helm.upgradeInstall.values
section. For example, during an Istio upgrade, you can verify that any updated settings you provide were correctly translated by the management cluster and sent to the workload clusters.
IstioLifecycleManager does not fully uninstall or namespaces stuck in terminating
What’s happening
You installed the istiod
control plane and gateways by using the Gloo Istio lifecycle manager. When you follow the steps to uninstall Istio with the Istio lifecycle manager, the operator namespace, such as gm-iop-1-24
, in one or more workload clusters is stuck in Terminating
.
Example output:
Why it’s happening
This error can happen when the istiod
pod is deleted before the Istio or gateway lifecycle manager is able to finish uninstalling all Istio resources. This error might also happen if you repeatedly overwrite the same IstioLifecycleManager
or GatewayLifecycleManager
resource with different revisions and configuration.
How to fix it
In one workload cluster, get the
IstioOperator
resources in the operator namespace, such as the following command.Example output, in which operators still exist for the
istiod
control plane:For each
IstioOperator
resource, repeat these steps to remove the finalizer.- Edit the resource, such as the following command. You might have a different revision or name for the operator resource.
- Delete all lines in the
finalizers
section, including thefinalizers:
line. - Save and close the file. The resource is now deleted.
- Repeat these steps for any other
IstioOperator
resources in the namespace.
- Edit the resource, such as the following command. You might have a different revision or name for the operator resource.
After all resources in the operator namespace are deleted, verify that the operator namespace no longer exists.
Example output:
Repeat steps 1 - 3 for each workload cluster where you used the Istio lifecycle manager to install Istio.
Conflicting IstioLifecycleManager errors
What’s happening
- When you check the management logs, you see an Istio lifecycle manager error similar to the following:
- When you check the Istio lifecycle manager status, you see a conflicting message similar to the following:Example output:
Why it’s happening
You might have a conflicting IstioLifecycleManager
or GatewayLifecycleManager
resource. For example, you might have uninstalled a previous IstioLifecycleManager
resource that did not completely delete. This error can happen when the namespace is deleted before the Istio lifecycle manager is able to finish uninstalling all Istio resources.
How to fix it
- List the
IstioLifecycleManager
orGatewayLifecycleManager
resources. If you have multiple in the same namespace for the same purpose, try uninstalling the one that you no longer need. - If you already uninstalled the
istiod
control plane or gateways by using the Istio lifecycle manager, try to manually replace theIstioLifecycleManager
orGatewayLifecycleManager
CR by deleting the existing resource, such as the following example command.
Agent crashes with IstioOperator error
What’s happening
Your Gloo agent does not start and is in a CrashLoopBackOff
state.
When you check the agent logs, you see an error similar to the following:
Why it’s happening
You might have an error in your Istio operator configuration, such as using a field that is deprecated or no longer supported.
By default, Gloo expects the Istio ingress gateway to have the name istio-ingressgateway
. If you use a custom name for the ingress gateway, you cannot set up horizontal pod autoscaling (HPA) for the Istio gateways.
How to fix it
- Review your Istio operator configuration file for any deprecated or unsupported fields. For example, review the upstream Istio
operator.proto
file for unsupported fields in your version of Istio. - If you use a custom Istio ingress gateway name, remove the HPA section from your Istio operator gateway configuration file. The following example shows the
hpaSpec
in theistio-eastwestgateway
andistio-ingressgateway
sections. - To add back similar HPA functionality, set autoscaling minimum and maximum values to the gateway configuration. The following example shows both the
istio-eastwestgateway
andistio-ingressgateway
sections. Note that thetargetAverageUtilization
field is also removed, because that field is deprecated in Istio 1.14 and later. - Update your Istio operator configuration.