Install with Helm
The Helm charts used in this guide are the same underlying charts used when installing Istio via Istioctl or the .
Perform any necessary .
Check the Requirements for Pods and Services.
, version 3.6 or above.
Configure the Helm repository:
This section describes the procedure to install Istio using Helm. The general syntax for helm installation is:
The variables specified in the command are as follows:
<chart>
A path to a packaged chart, a path to an unpacked chart directory or a URL.<release>
A name to identify and manage the Helm chart once installed.<namespace>
The namespace in which the chart is to be installed.
Default configuration values can be changed using one or more --set <parameter>=<value>
arguments. Alternatively, you can specify several parameters in a custom values file using the --values <file>
argument.
You can display the default values of configuration parameters using the helm show values <chart>
command or refer to artifacthub
chart documentation at , Istiod chart configuration parameters and .
Create the namespace,
istio-system
, for the Istio components:This step can be skipped if using the
--create-namespace
argument in step 2.$ kubectl create namespace istio-system
-
When performing a revisioned installation, the base chart requires the
--defaultRevision
value to be set for resource validation to function. More information on the--defaultRevision
option can be found in the Helm upgrade documentation.$ helm install istio-base istio/base -n istio-system
Validate the CRD installation with the
helm ls
command:$ helm ls -n istio-system
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
istio-base istio-system 1 ... ... ... ... deployed base-1.16.1 1.16.1
In the output locate the entry for
istio-base
and make sure the status is set todeployed
.Install the Istio discovery chart which deploys the
istiod
service:Verify the Istio discovery chart installation:
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
istio-base istio-system 1 ... ... ... ... deployed base-1.16.1 1.16.1
Get the status of the installed helm chart to ensure it is deployed:
$ helm status istiod -n istio-system
NAME: istiod
LAST DEPLOYED: Fri Jan 20 22:00:44 2023
NAMESPACE: istio-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
"istiod" successfully installed!
To learn more about the release, try:
$ helm status istiod
$ helm get all istiod
Next steps:
* Deploy a Gateway: https://istio.io/latest/docs/setup/additional-setup/gateway/
* Try out our tasks to get started on common configurations:
* https://istio.io/latest/docs/tasks/traffic-management
* https://istio.io/latest/docs/tasks/security/
* https://istio.io/latest/docs/tasks/policy-enforcement/
* https://istio.io/latest/docs/tasks/policy-enforcement/
* https://istio.io/latest/docs/releases/supported-releases/
* https://istio.io/latest/docs/ops/best-practices/security/
For further documentation see https://istio.io website
Tell us how your install/upgrade experience went at https://forms.gle/99uiMML96AmsXY5d6
Check
istiod
service is successfully installed and its pods are running:$ kubectl get deployments -n istio-system --output wide
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
istiod 1/1 1 1 10m discovery docker.io/istio/pilot:1.16.1 istio=pilot
(Optional) Install an ingress gateway:
$ kubectl create namespace istio-ingress
$ kubectl label namespace istio-ingress istio-injection=enabled
$ helm install istio-ingress istio/gateway -n istio-ingress --wait
See Installing Gateways for in-depth documentation on gateway installation.
The namespace the gateway is deployed in must not have a
istio-injection=disabled
label. See for more info.
See Advanced Helm Chart Customization for in-depth documentation on how to use Helm post-renderer to customize the Helm charts.
If you’re migrating from a version of Istio installed using istioctl
or Operator to Helm (Istio 1.5 or earlier), you need to delete your current Istio control plane resources and re-install Istio using Helm as described above. When deleting your current Istio installation, you must not remove the Istio Custom Resource Definitions (CRDs) as that can lead to loss of your custom Istio resources.
It is highly recommended to take a backup of your Istio resources using steps described above before deleting current Istio installation in your cluster.
You can follow steps mentioned in the or Operator uninstall guide depending upon your installation method.
You can uninstall Istio and its components by uninstalling the charts installed above.
List all the Istio charts installed in
istio-system
namespace:(Optional) Delete any Istio gateway chart installations:
$ helm delete istio-ingress -n istio-ingress
$ kubectl delete namespace istio-ingress
Delete Istio discovery chart:
$ helm delete istiod -n istio-system
Delete Istio base chart:
By design, deleting a chart via Helm doesn’t delete the installed Custom Resource Definitions (CRDs) installed via the chart.
$ helm delete istio-base -n istio-system
Delete the
istio-system
namespace:$ kubectl delete namespace istio-system
If you decide to continue using the old control plane, instead of completing the update, you can uninstall the newer revision and its tag by first issuing . You must them uninstall the revision of Istio that it pointed to by following the uninstall procedure above.
(Optional) Deleting CRDs installed by Istio
Deleting CRDs permanently removes any Istio resources you have created in your cluster. To permanently delete Istio CRDs installed in your cluster: