After checking pods, replica set, now discuss about Kubernetes deployment. What is Kubernetes deployment and what are there advantages and how we can create the definition file. We check all these things in this article.
Table of Contents
What is a Kubernetes deployment?
As we discuss previously about the replica set it runs the multiple pods but here in deployment it run the multiple replica set same time. So that in case of any replica set got fail it then the other replica set will come and result in high HA. It will also help in automatic deploying, scaling and update of application.
You can better understand the Kubernetes deployment from the below images:
From the image we can see that deployment contain the replica set and replica set contain pod and pod contain container.
Advantages of Kubernetes deployment
- Provide the HA to the application.
- Provide the seamless upgrade
- Enables automatic deploying, scaling and update of application
Types of upgrade
In this we have two type of upgrade and we use them as per our need and these types are mention below:
- Rolling update
So in this type of upgrade the all pod will shutdown and upgrade simultaneously. The main drawback of using such type of upgrade is that its need a complete downtime of the apps as all the pod will go down.
Its is a more modern type of upgrade that we use now a day in IT. In this type of upgrade what happen in a replica set one pod will go for a upgrade and when its come up then its peer will go for the upgrade and this how it will update the replica set. The major benefit of this type of upgrade is that it does not need a downtime and its the by default option for the upgrade. All the enterprise will opt this type of upgrade as there is no downtime.
Kubernetes deployment definition file
Now will see how we can create a deployment definition file in yaml.
apiVersion: apps/v1 kind: Deployment metadata: name : myapp-deployment labels: app: nginx type: frontend spec: template: metadata: name: nginx-2 labels: app: myapp spec: containers: - name: nginx image: nginx replicas: 3 selector: matchLabels: app: myapp
So this is how we can create the definition file. Now lets understand this definition file in this file we are create a pod of nginx for that what we did we created a Deployment with the name myapp-deployment. In this we created 3 replicas.
So this is how we can create the definition file. You can try and test and create the different type of definition file and test them out.