Kubernetes Guides

Kubernetes tutorial – Scale & perform updates to your app

In the last post, we have looked at how to create the local cluster, deploy an app, and check the status of the deployments. In continuation of the series, in this post, we are going to check how to scale & perform updates to applications running on the Kubernetes cluster. Earlier posts of this series were featured in KubeWeekly

Step #1. Check the list of application deployment

If you can remember, in the last post we have deployed our Nginx application using the run command. So let us check the list of application deployments using get deployments command.

The run command would have created only one Pod for running our application. But in the real-life scenario, when traffic increases, we will need to scale the application to keep up with user demand. Running multiple instances of an application will require a way to distribute the traffic to all of them. Services have an integrated load-balancer that will distribute network traffic to all Pods of an exposed Deployment. Services will monitor continuously the running Pods using endpoints, to ensure the traffic is sent only to available Pods.

Image – kubectl get deployment command

To list your deployments use the get deployments command:

We should have 1 Pod. If not, run the command again. This shows:

  • The DESIRED state is showing the configured number of replicas
  • The CURRENT state show how many replicas are running now
  • The UP-TO-DATE is the number of replicas that were updated to match the desired (configured) state
  • The AVAILABLE state shows how many replicas are actually AVAILABLE to the users

Step #2. Scale up/down application deployment

Now let’s scale the Deployment to 4 replicas. We are going to use the kubectl scale command, followed by the deployment type, name, and desired number of instances:

Image – kubectl scale deployment command

The change was applied, and we have 4 instances of the application available. Next, let’s check if the number of Pods changed:

Image – kubectl get deployments command

Now there should be 4 pods running in the cluster

Image – kubectl get pods command

There are 4 Pods now, with different IP addresses. The change was registered in the Deployment events log. To check that, use the describe command:

Image – kubectl describe command

You can also view in the output of this command that there are 4 replicas now.

To scale down the Service to 2 replicas, run again the scale command:

Image – kubectl scale command

Step #3. Perform rolling updates to application deployment

If you have multiple instances of an Application running, there could be scenarios where old instances can clash with the new instances, and if you shut down the cluster for updates, downtime could never be not acceptable. Users expect applications to be available all the time and developers are expected to deploy new versions of them several times a day.

In Kubernetes, this is done with rolling updates. Rolling updates allow deployments update to take place with zero downtime by incrementally updating Pods instances with new ones. The new Pods will be scheduled on Nodes with available resources.

Rolling updates allow the following actions:

  • Promote an application from one environment to another (via container image updates)
  • Rollback to previous versions
  • Continuous Integration and Continuous Delivery of applications with zero downtime

To view the current image version of the app, run a describe command against the Pods (look at the Image field):

Image – kubectl describe command

To update the image of the application to the new version, use the set image command, followed by the deployment name and the new image version:

Image – kubectl set image command
Image – kubectl describe pods command

The command notified the Deployment to use a different image for your app and initiated a rolling update. Check the status of the new Pods, and view the old one terminating with the get pods command:

Step #4. Rollback updates to application deployment

Suppose if you want to roll out the updates we made, We’ll use the rollout undo command:

Image – kubectl rollout undo command

The rollout command reverted the deployment to the previously known state. Updates are versioned and you can revert to any previously known state of a Deployment. List again the Pods:

After the rollout succeeds, you may want to get the Deployment.

Step #5. Cleanup

Finally, you can clean up the resources you created in your cluster:

kubectl delete service my-nginx
kubectl delete deployment my-nginx

 

Like this post? Don’t forget to share it!

Additional Resources :

Summary
Article Name
Kubernetes tutorial - Scale & perform updates to your app
Description
In this post, we are going to check how to scale & perform updates to applications running on Kubernetes cluster.
Author
Publisher Name
Upnxtblog
Publisher Logo
Karthik

Allo! My name is Karthik,experienced IT professional.Upnxtblog covers key technology trends that impacts technology industry.This includes Cloud computing,Blockchain,Machine learning & AI,Best mobile apps, Best tools/open source libs etc.,I hope you would love it and you can be sure that each post is fantastic and will be worth your time.

Share
Published by
Karthik

Recent Posts

Finding the Right Time to Build Your Software Instead of Buy

There are few things as valuable to a business as well-designed software. Organizations today rely…

5 days ago

Innovators in Crypto: Prominent AI-Powered Coins

The cryptocurrency industry is being reshaped by the fusion of blockchain technology and artificial intelligence…

3 weeks ago

Top AI Design Tools Every Graphic Designer Should Use in 2024

Introduction Artificial Intelligence (AI) has also found its relevance in graphic design and is quickly…

2 months ago

Transforming Industries: The Integration of AI and Blockchain

Imagine a world where the brilliance of Artificial Intelligence (AI) meets the unbreakable security of…

2 months ago

How Can I Use Automation to Streamline My Digital Marketing Efforts?

In today’s fast-paced digital landscape, automation is not just a luxury but a necessity for…

2 months ago

Top 5 AI Technologies Transforming the Casino Gaming Landscape in 2025

The world of casino gaming has leveraged the emerging technology advancements to create immersive and…

3 months ago

This website uses cookies.