Deploying Istio on a local minikube Kubernetes cluster.
- Create a new cluster by running
make minikube
- Once cluster is ready, run
make istio
to apply Istio Custom Resource Definitions, label default namespace withistio-injection=enabled
so that Istio can inject Envoy proxy sidecar containers to every pod deployed in default namespace. - Once you see
🚀 Istio is ready...
you are ready to proceed. - Either run
make start-demo
ormake start-canary-demo
to start either a simple service to service demo or to start canary deployment demo. - Generate traffic by running (first you need to port forward to appropriate pod:
make traffic-surveys
- to generate traffic to surveys (for canary demo will generate traffic toquestions-v1
andquestions-v2
).traffic-surveys-user
- to generate traffic to surveys with specific user name in HTTP request headers (used for canary deployment demo to generate traffic toquestions-v3
).
Port-forward to Kiali UI by running make kiali
and open http://localhost:20001.
Port-forward to Jaeger UI by running make jaeger
and open http://localhost:16686.
Port-forward to Grafana by running make grafana
and open http://localhost:3000.
Once Istio is ready, you will need to install Flagger by running make flagger
, note that you will require
helm for this to work.
Start Flagger demo by running make start-flagger-demo
, you will want to port-forward to the surveys
pod and generate
some traffic by running make traffic-surveys
. You can observe the automated canary deployment for questions
service
via Kiali UI. To start automated canary deploy run make deploy-bad-service-flagger-demo
, this demonstrates automatic
rollback when the new deployment results in elevated 500s.