--- title: Quick Start with IBM Cloud description: How to quickly setup Istio using IBM Cloud Public or IBM Cloud Private. weight: 21 keywords: [kubernetes,ibm,icp] --- Follow these instructions to install and run Istio in IBM Cloud. You can install Istio in [IBM Cloud Public](#ibm-cloud-public) or [IBM Cloud Private](#ibm-cloud-private). ## IBM Cloud Public Follow these instructions to install and run Istio in [IBM Cloud Public](https://www.ibm.com/cloud/) by using Helm and the IBM Cloud Kubernetes Service. This guide installs the current release version of Istio. ### Prerequisites - IBM Cloud Public - [Install the IBM Cloud CLI, the IBM Cloud Kubernetes Service plug-in, and the Kubernetes CLI](https://console.bluemix.net/docs/containers/cs_cli_install.html). Istio requires the Kubernetes version 1.9 or later. Make sure to install the `kubectl` CLI version that matches the Kubernetes version of your cluster. - Make sure you have a cluster of Kubernetes version of 1.9 or later. If you do not have a cluster available, [create a version 1.9 or later cluster](https://console.bluemix.net/docs/containers/cs_clusters.html). - Target the CLI to your cluster by running `ibmcloud ks cluster-config ` and copying and pasting the command in the output. ### Initialize Helm and Tiller 1. Install the [Helm CLI](https://docs.helm.sh/using_helm/#installing-helm). 1. Create a service account for Tiller in the `kube-system` namespace and a Kubernetes RBAC cluster role binding for the `tiller-deploy` pod: {{< text yaml >}} apiVersion: v1 kind: ServiceAccount metadata: name: tiller namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: tiller roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: tiller namespace: kube-system {{< /text >}} 1. Create the service account and cluster role binding: {{< text bash >}} $ kubectl create -f rbac-config.yaml {{< /text >}} 1. Initialize Helm and install Tiller: {{< text bash >}} $ helm init --service-account tiller {{< /text >}} 1. Add the IBM Cloud Helm repository to your Helm instance: {{< text bash >}} $ helm repo add ibm-charts https://registry.bluemix.net/helm/ibm-charts {{< /text >}} ### Deploy the Istio Helm chart 1. If using a Helm version prior to 2.10.0, install Istio’s Custom Resource Definitions via `kubectl apply`, and wait a few seconds for the CRDs to be committed in the kube-apiserver: {{< text bash >}} $ kubectl apply -f https://raw.githubusercontent.com/IBM/charts/master/stable/ibm-istio/templates/crds.yaml {{< /text >}} 1. Install the Helm chart to your cluster: {{< text bash >}} $ helm install ibm-charts/ibm-istio --name=istio --namespace istio-system {{< /text >}} 1. Ensure the pods for the 9 Istio services and the pod for Prometheus are all fully deployed: {{< text bash >}} $ kubectl get pods -n istio-system NAME READY STATUS RESTARTS AGE istio-citadel-748d656b-pj9bw 1/1 Running 0 2m istio-egressgateway-6c65d7c98d-l54kg 1/1 Running 0 2m istio-galley-65cfbc6fd7-bpnqx 1/1 Running 0 2m istio-ingressgateway-f8dd85989-6w6nj 1/1 Running 0 2m istio-pilot-5fd885964b-l4df6 2/2 Running 0 2m istio-policy-56f4f4cbbd-2z2bk 2/2 Running 0 2m istio-sidecar-injector-646655c8cd-rwvsx 1/1 Running 0 2m istio-statsd-prom-bridge-7fdbbf769-8k42l 1/1 Running 0 2m istio-telemetry-8687d9d745-mwjbf 2/2 Running 0 2m prometheus-55c7c698d6-f4drj 1/1 Running 0 2m {{< /text >}} ### Upgrade 1. To upgrade your Istio Helm chart to the latest version: {{< text bash >}} $ helm upgrade -f config.yaml istio ibm/ibm-istio {{< /text >}} ### Uninstall 1. Uninstall the Istio Helm deployment: {{< text bash >}} $ helm del istio --purge {{< /text >}} If your Helm version is less than 2.9.0, then you need to manually cleanup extra job resource before redeploy new version of Istio chart: {{< text bash >}} $ kubectl -n istio-system delete job --all {{< /text >}} 1. If desired, delete the Istio custom resource definitions: {{< text bash >}} $ kubectl delete -f https://raw.githubusercontent.com/IBM/charts/master/stable/ibm-istio/templates/crds.yaml {{< /text >}} ## IBM Cloud Private Follow these instructions to install and run Istio in [IBM Cloud Private](https://www.ibm.com/cloud/private) using the `Catalog` module. This guide installs the current release version of Istio. ### Prerequisites - IBM Cloud Private - You need to have an available IBM Cloud Private cluster. Otherwise, you can follow [Installing IBM Cloud Private-CE](https://www.ibm.com/support/knowledgecenter/SSBS6K_2.1.0.3/installing/install_containers_CE.html) to create an IBM Cloud Private cluster. ### Deploy Istio via the Catalog module - Log in to the **IBM Cloud Private** console. - Click `Catalog` on the right side of the navigation bar. - Click `Filter` on the right side of the search box and select the `ibm-charts` check box. - Click `Operations` in the left navigation pane. {{< image width="100%" ratio="43.98%" link="./istio-catalog-1.png" caption="IBM Cloud Private - Istio Catalog" >}} - Click `ibm-istio` in the right panel. {{< image width="100%" ratio="40.45%" link="./istio-catalog-2.png" caption="IBM Cloud Private - Istio Catalog" >}} - (Optional) Change the Istio version using the `CHART VERSION` drop-down. - Click the `Configure` button. {{< image width="100%" ratio="53.92%" link="./istio-installation-1.png" caption="IBM Cloud Private - Istio Installation" >}} - Input the Helm release name (e.g. istio-1.0.3) and select `istio-system` as the target namespace. - Agree to the license terms. - (Optional) Customize the installation parameters by clicking `All parameters`. - Click the `Install` button. {{< image width="100%" ratio="55.07%" link="./istio-installation-2.png" caption="IBM Cloud Private - Istio Installation" >}} After it is installed, you can find it by searching for its release name on the **Helm Releases** page. {{< image width="100%" ratio="25.47%" link="./istio-release.png" caption="IBM Cloud Private - Istio Installation" >}} ### Upgrade or Rollback - Log in to the **IBM Cloud Private** console. - Click the menu button on the left side of the navigation bar. - Click `Workloads` and select `Helm Releases`. - Find the installed Istio using its release name. - Click `Action` and select `upgrade` or `rollback`. {{< image width="100%" ratio="41.28%" link="./istio-upgrade-1.png" caption="IBM Cloud Private - Istio Upgrade or Rollback" >}} {{< image width="100%" ratio="32.52%" link="./istio-upgrade-2.png" caption="IBM Cloud Private - Istio Upgrade or Rollback" >}} ### Uninstalling - Log in to the **IBM Cloud Private** console. - Click the menu button on the left side of the navigation bar. - Click `Workloads` and select `Helm Releases`. - Find the installed Istio using its release name. - Click `Action` and select `delete`. {{< image width="100%" ratio="32.52%" link="./istio-deletion.png" caption="IBM Cloud Private - Istio Uninstalling" >}}