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:

  1. 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
    
  2. Apply the deployment to your k8s cluster by running:

     kubectl apply -f deployment.yml
    
  3. 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.

  4. 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.

0
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 |