What is Deployment in k8s
A Deployment provides a configuration for updates for Pods and ReplicaSets.
You describe a desired state in a Deployment, and the Deployment Controller changes the actual state to the desired state at a controlled rate. You can define Deployments to create new replicas for scaling, or to remove existing Deployments and adopt all their resources with new Deployments.
Task:
Create one Deployment file to deploy a sample todo-app on K8s using "Auto-healing" and "Auto-Scaling" feature
To deploy the sample ToDo app on Kubernetes using Deployment, follow these steps:
Create a YAML file named
deployment.yml
with the following content:apiVersion: apps/v1 kind: Deployment metadata: name: todo-app labels: app: todo spec: replicas: 2 selector: matchLabels: app: todo template: metadata: labels: app: todo spec: containers: - name: todo image: rishikeshops/todo-app ports: - containerPort: 3000
Apply the deployment to your k8s cluster by running:
kubectl apply -f deployment.yml
Verify that the Deployment is created by running:
kubectl get deployments
You should see something like this:
This shows that you have one Deployment named
todo-app
that has two replicas ready and up-to-date.Verify that the Pods are running by running:
kubectl get pods
You should see something like this:
This shows that you have two Pods named
todo-app-<string>
that are running and ready.Conclusion
In this blog post, we learned how to launch a Kubernetes cluster with Deployment, a configuration that allows us to manage updates to Pods and ReplicaSets. We also deployed a sample ToDo app on Kubernetes using Deployment and enabled auto-healing and auto-scaling for it.
I hope you enjoyed this blog post and learned something new. If you have any questions or feedback, please feel free to comment below.