In the first article of this series, we deployed a dummy python flask-based application in the Kubernetes cluster to demonstrate Istio traffic control capabilities. We talked about Istio concepts briefly and deployed few addons for monitoring and visualization of mesh.
Istio’s ability to enforce policy in communication networks enables useful traffic control, observability features, rate limiting, circuit breaking, and programmable rollouts such as canary deployments. In this article I am covering Canary deployment with Istio.
Before moving on, let me quickly brief you about the application. I have created an application using the Python Flask web framework. The home page of the application is simple and has a context root of
“/home”. The Service Data page loads data from the backend dummy Webservice and has the context root of
“/list”. The codebase for this application is available in Github.
We deployed the Istio Gateway and Virtual Service, Kubernetes objects to expose these services out of our mesh.
It's time to verify our existing Istio components and Application state.
proxy-status you can get an overview of your mesh
State of Istio specific components —
$ istioctl proxy-config route istio-ingressgateway-5dc645f586-84bvf -n istio-system