Canary Deployments with Argo Rollouts and Istio
A canary deployment is more complex than a blue-green deployment. It requires a service mesh to route traffic to the canary version of the application. In this example, we will use Istio.
Requirements
Istio
ArgoCD
Argo Rollouts
Prometheus (required for analysis templates)
Configuration
Create a service definition:
apiVersion: v1
kind: Service
metadata:
name: demo-app
spec:
selector:
app: demo-app
ports:
- name: http-web
appProtocol: http
port: 80Create a destination rule definition:
Create a virtual service definition with destination routing rules:
Create a gateway definition:
Create an analysis template
Create a rollout resource with the following configuration:
A rollout configuration encapulates a replicaset definition. No need to write both the rollout and the replicaset.
Last updated