istio.io/content/docs/setup/kubernetes/quick-start-ibm/index.md

215 lines
7.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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 Istios 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"
>}}