Kubernetes Canary deployment with Gitlab CI

Click for: original source

We’re using GitlabCI and a manual GitOps approach to implement and perform Canary Kubernetes deployments. They use a manual approach and alter/create core-Kubernetes resources to perform a Canary deployment. This is mainly for understanding how a Canary deployment works. By Kim Wuestkamp.

In a Canary deployment, new changes are first deployed to a subset of users. Through monitoring, logging, manual testing or other feedback channels the release is tested before it is rolled out to all users.

The default strategy for a Kubernetes Deployment is rolling-update, where a certain number of pods with the new image version are spun up. If these were created without issues, pods of the old image version are terminated and new pods are created simultaneously.

Also in this article:

  • GitOps – Git as single source of truth
  • Example with
    • Application repo
    • Infrastructure repo
    • Infrastructure yaml
  • How to perform initial deployment
  • How to perform a Canary deployment

Running through this kind of deployment manually helps understanding how easily this can be configured using kubernetes. The author has more interesting articles on this topic, so please follow the link to full text. Nice one!

[Read More]

Tags devops kubernetes software-architecture containers