Day 32 Task: Launching your Kubernetes Cluster with Deployment
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.
Subscribe to my newsletter
Read articles from Vaishnavi Shivde directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Vaishnavi Shivde
Vaishnavi Shivde
Aspiring DevOps Engineer | Linux | Git & Github | Shell Scripting | Docker | CI/CD Jenkins | Kubernetes | AWS | Terraform | JIRA | Python |