Setup

Prerequisite CLI tools

You will need in this tutorial:

  • minikube

  • docker

    • Mac OS

    • Fedora: dnf install docker

  • kubectl

    • Mac OS

    • Fedora: dnf install kubernetes-client

  • oc (eval $(minishift oc-env))

  • Apache Maven

    • Mac OS

    • Fedora: dnf install maven

  • stern

  • istioctl (will be installed via the steps below)

  • curl, gunzip, tar

    • Mac OS: built-in or part of your bash shell

    • Fedora: should also be installed already, but just in case…​ dnf install curl gzip tar

  • git

    • dnf install git

  • siege

    • MAC OS: brew install siege

    • Fedora: dnf install siege

Setup minikube

In case of using Minikube you need at least minishift v1.2.0.

#!/bin/bash

# add the location of minishift executable to PATH
# I also keep other handy tools like kubectl and kubetail.sh
# in that directory

minikube profile istio-tutorial
minikube config set memory 16384
minikube config set cpus 4
minikube config set vm-driver virtualbox

minikube config set kubernetes-version v1.14.2

minikube start

Upstream Istio installation

#!/bin/bash

# Mac OS:
curl -L https://github.com/istio/istio/releases/download/1.2.2/istio-1.2.2-osx.tar.gz | tar xz

# Linux:
curl -L https://github.com/istio/istio/releases/download/1.2.2/istio-1.2.2-linux.tar.gz | tar xz

# Both:
cd istio-1.2.2
export ISTIO_HOME=`pwd`
export PATH=$ISTIO_HOME/bin:$PATH
for i in install/kubernetes/helm/istio-init/files/crd*yaml; do kubectl apply -f $i; done

kubectl apply -f install/kubernetes/istio-demo.yaml

kubectl config set-context $(kubectl config current-context) --namespace=istio-system

Wait for Istio’s components to be ready

$ kubectl get pods -w

NAME                                        READY     STATUS      RESTARTS   AGE
grafana-55cd86b44c-2vndc                  1/1     Running     0          88m
istio-citadel-f9fbdd9df-xzzr7             1/1     Running     0          88m
istio-cleanup-secrets-1.1.6-d5css         0/1     Completed   0          88m
istio-egressgateway-895fb885d-bdqkv       1/1     Running     0          89m
istio-galley-5797db85b8-4866m             1/1     Running     0          89m
istio-grafana-post-install-1.1.6-6dk5h    0/1     Completed   0          89m
istio-ingressgateway-58f959476f-82zsf     1/1     Running     0          89m
istio-pilot-57d4bb58ff-tt8r4              2/2     Running     0          88m
istio-policy-79b88bcdf9-qqp4r             2/2     Running     6          88m
istio-security-post-install-1.1.6-8mmxj   0/1     Completed   0          88m
istio-sidecar-injector-7698fc57fb-dlnx4   1/1     Running     0          88m
istio-telemetry-b9799c89-d94hj            2/2     Running     6          88m
istio-tracing-7454db9d79-9qwqr            1/1     Running     0          88m
kiali-66d74fc6cc-zdzzt                    1/1     Running     0          88m
prometheus-7d9fb4b69c-ww5w7               1/1     Running     0          88m