Skip to content

A simple demo of Istio service mesh + Flagger to automate canary deployments on Kubernetes using minikube.

Notifications You must be signed in to change notification settings

martinsirbe/istio-flagger-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Istio Demo (+ Flagger)

Deploying Istio on a local minikube Kubernetes cluster.

  1. Create a new cluster by running make minikube
  2. Once cluster is ready, run make istio to apply Istio Custom Resource Definitions, label default namespace with istio-injection=enabled so that Istio can inject Envoy proxy sidecar containers to every pod deployed in default namespace.
  3. Once you see 🚀 Istio is ready... you are ready to proceed.
  4. Either run make start-demo or make start-canary-demo to start either a simple service to service demo or to start canary deployment demo.
  5. 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 to questions-v1 and questions-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 to questions-v3).

Visualising service mesh

Port-forward to Kiali UI by running make kiali and open http://localhost:20001. Kiali UI

Distributed tracing

Port-forward to Jaeger UI by running make jaeger and open http://localhost:16686. Jaeger UI

Istio Grafana dashboard

Port-forward to Grafana by running make grafana and open http://localhost:3000.

Automated canary deployments with Flagger

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. Flagger

Requirements:
kubectl (v1.13.10)
minikube
helm

About

A simple demo of Istio service mesh + Flagger to automate canary deployments on Kubernetes using minikube.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published