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:
- Download the Istio release.
- 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.