Install with istioctl

This installation guide uses the istioctl command-line tool. istioctl, like other installation methods, exposes many customization options. Additionally, it offers has user input validation to help prevent installation errors, and includes many post-installation analysis and configuration tools.

Using these instructions, you can select any one of Istio’s built-in configuration profiles and then further customize the configuration for your specific needs.

The istioctl command supports the full IstioOperator API via command-line options for individual settings, or passing a YAML file containing an IstioOperator custom resource.

Prerequisites

Before you begin, check the following prerequisites:

  1. Download the Istio release.
  2. Perform any necessary platform-specific setup.

Install or upgrade the Kubernetes Gateway API CRDs

Note that the Kubernetes Gateway API CRDs do not come installed by default on most Kubernetes clusters, so make sure they are installed before using the Gateway API:

$ kubectl get crd gateways.gateway.networking.k8s.io &> /dev/null || \
  { kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.2.0/standard-install.yaml; }

Install Istio using the ambient profile

istioctl supports a number of configuration profiles that include different default options, and can be customized for your production needs. Support for ambient mode is included in the ambient profile. Install Istio with the following command:

$ istioctl install --set profile=ambient --skip-confirmation

This command installs the ambient profile on the cluster defined by your Kubernetes configuration.

Configure and modify profiles

Istio’s installation API is documented in the IstioOperator API reference. You can use the --set option to istioctl install to modify individual installation parameters, or specify your own configuration file with -f.

Full details on how to use and customize istioctl installations are available in the sidecar installation documentation.

Uninstall Istio

To completely uninstall Istio from a cluster, run the following command:

$ istioctl uninstall --purge -y

Alternatively, to remove only a specific Istio control plane, run the following command:

$ istioctl uninstall <your original installation options>

The control plane namespace (e.g., istio-system) is not removed by default. If no longer needed, use the following command to remove it:

$ kubectl delete namespace istio-system

Generate a manifest before installation

You can generate the manifest before installing Istio using the manifest generate sub-command. For example, use the following command to generate a manifest for the default profile that can be installed with kubectl:

$ istioctl manifest generate > $HOME/generated-manifest.yaml

The generated manifest can be used to inspect what exactly is installed as well as to track changes to the manifest over time. While the IstioOperator CR represents the full user configuration and is sufficient for tracking it, the output from manifest generate also captures possible changes in the underlying charts and therefore can be used to track the actual installed resources.

Was this information useful?
Do you have any suggestions for improvement?

Thanks for your feedback!