TL;DR: In this article, we will learn what are the deployment strategies while deploying containers using Kubernetes container-orchestration system. At the end of this article, we will have learned how to do deployment using different ways in Kubernetes cluster. If you find this topic interesting, keep reading!
The code for this tutorial is available here on Github
With containerization gaining popularity over time and revolutionizing the process of building, shipping, and maintaining applications, there was a need to effectively manage these containers. Many container orchestration tools were introduced to manage the lifecycle of these containers in large-scale systems.
Kubernetes is one such orchestration tool that takes care of provisioning and deployment, allocation of resources, load balancing, service discovery, providing high availability, and other important aspects of any system. With this platform, we can decompose our applications into smaller systems (called microservices) while developing; then, we can compose (or orchestrate) these systems together while deploying.
The adoption of cloud-native approach has increased development of applications based on microservice architecture. For such applications, one of the biggest challenges organizations face is deployment. Having a proper strategy in terms of deployment is necessary. In Kubernetes, there are different ways to release an application; it is necessary to choose the right strategy to make your infrastructure reliable during an application deployment or update. For instance, in a production environment, it is always required to ensure that end-user shouldn't experience any downtime. In Kubernetes orchestration, right strategy ensures proper management of different versions of container images. To sum up, this article will mainly be around the different deployment strategies in Kubernetes.
To follow along with this article, we will need some previous experience with Kubernetes. If new to this platform, kindly check out the Step by Step Introduction to Basic Kubernetes Concepts tutorial. There, you can learn everything you need to follow the instructions here. We would also recommend going through the Kubernetes documentation if and when required.
Besides that, we will need kubectl, a Command-Line Interface (CLI) tool that will enable us to control your cluster from a terminal. If you don't have this tool, check the instructions on the Installing Kube Control (kubectl).We will also need a basic understanding of Linux and YAML.