Install with Helm
The Helm charts used in this guide are the same underlying charts used when installing Istio via Istioctl or the .
This feature is currently considered alpha.
Perform any necessary platform-specific setup.
Check the .
Configure the Helm repository:
Installation steps
Create a namespace for Istio components:
$ kubectl create namespace istio-system
Install the Istio base chart which contains cluster-wide resources used by the Istio control plane:
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
-
$ helm install istiod istio/istiod -n istio-system --wait
(Optional) Install an ingress gateway:
See for in-depth documentation on gateway installation.
The namespace the gateway is deployed in must not have a
istio-injection=disabled
label. See Controlling the injection policy for more info.
See for in-depth documentation on how to use Helm post-renderer to customize the Helm charts.
Status of the installation can be verified using Helm:
Updating your Istio configuration
You can provide override settings specific to any Istio Helm chart used above and follow the Helm upgrade workflow to customize your Istio mesh installation. The available configurable options can be found by using helm show values istio/<chart>
; for example helm show values istio/gateway
.
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.
List all the Istio charts installed in
istio-system
namespace:NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
istio-base istio-system 1 ... ... ... ... deployed base-1.0.0 1.0.0
(Optional) Delete any Istio gateway chart installations:
$ helm delete istio-ingress -n istio-ingress
$ kubectl delete namespace istio-ingress
Delete Istio discovery chart:
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:
Uninstall stable revision label resources
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 helm template istiod istio/istiod -s templates/revision-tags.yaml --set revisionTags={prod-canary} --set revision=canary -n istio-system | kubectl delete -f -
. You must them uninstall the revision of Istio that it pointed to by following the uninstall procedure above.
If you installed the gateway(s) for this revision using in-place upgrades, you must also reinstall the gateway(s) for the previous revision manually, Removing the previous revision and its tags will not automatically revert the previously in-place upgraded gateway(s).
(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:
$ kubectl get crd -oname | grep --color=never 'istio.io' | xargs kubectl delete