mirror of https://github.com/istio/istio.io.git
215 lines
7.6 KiB
Markdown
215 lines
7.6 KiB
Markdown
---
|
||
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 <cluster_name_or_ID>` 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"
|
||
>}}
|