What is Kubernetes and It’s use-cases in Industry

Deeksha Gautam
7 min readJan 4, 2021

What is Kubernetes?

Kubernetes is an open-source container orchestration platform that enables the operation of an elastic web server framework for cloud applications and many of the manual processes involved in deploying, managing, and scaling containerized applications..

Kubernetes, at its basic level, is a system for running and coordinating containerized applications across a cluster of machines. It is a platform designed to completely manage the life cycle of containerized applications and services using methods that provide predictability, scalability, and high availability.

Why Kubernetes?

The Docker adoption is still growing exponentially as more and more companies have started using it in production. It is important to use an orchestration platform to scale and manage your containers.

Imagine a situation where you have been using Docker for a little while, and have deployed on a few different servers. Your application starts getting massive traffic, and you need to scale up fast; how will you go from 3 servers to 40 servers that you may require? And how will you decide which container should go where? How would you monitor all these containers and make sure they are restarted if they die? This is where Kubernetes comes in.

What are the Benefits of using Kubernetes?

Automated operations

Kubernetes has built-in commands to handle a lot of the heavy lifting that goes into application management, allowing you to automate day-to-day operations. You can make sure applications are always running the way you intended them to run.

Infrastructure abstraction

When you install Kubernetes, it handles the compute, networking, and storage on behalf of your workloads. This allows developers to focus on applications and not worry about the underlying environment.

Service health monitoring

Kubernetes continuously runs health checks against your services, restarting containers that fail, or have stalled, and only making available services to users when it has confirmed they are running.

WHY IS KUBERNETES GETTING SO POPULAR?

Extensibility

Kubernetes is very extensible, and developers love that. There are a set of existing resources like Pods, Deployments, Secrets, etc. Another form of Kubernetes extensibility is its ability for developers to write their own Operators, a specific process running in a Kubernetes cluster that follows the control loop pattern. An Operator allows users to automate the management of CRDs (custom resource definitions) by talking to the Kubernetes API.

Innovation

Over the last few years, Kubernetes has had major releases every three or four months, which means that every year there are three or four major releases. The number of new features being introduced hasn’t slowed, evidenced by over 30 different additions and changes in its last release. Furthermore, the contributions don’t show signs of slowing down even during these difficult times as indicated by the Kubernetes project Github activity.

The new features allow cluster operators more flexibility when running a variety of different workloads. Software engineers also love to have more controls to deploy their applications directly to production environments.

Community

Another big aspect of Kubernetes popularity is its strong community. For starters, Kubernetes was donated to a vendor-neutral home in 2015 as it hit version 1.0: the Cloud Native Computing Foundation.

There is also a wide range of community SIGs (special interest groups) that target different areas in Kubernetes as the project moves forwards. They continuously add new features and make it even more user friendly.

Future

One of the main challenges developers face in the future is how to focus more on the details of the code rather than the infrastructure where that code runs on. For that, serverless is emerging as one of the leading architectural paradigms to address that challenge.

The New York Times’s Journey to Kubernetes

Credits: The New York Times

Today the majority of the NYT’s customer-facing applications are running on Kubernetes. The biggest impact has been an increase in the speed of deployment and productivity. Legacy deployments that took up to 45 minutes are now pushed in just a few. It’s also given developers more freedom and fewer bottlenecks. The New York Times has gone from a ticket-based system for requesting resources and weekly deploy schedules to allowing developers to push updates independently.

IBM’s Kubernetes:

Challenge: IBM Cloud offers public, private, and hybrid cloud functionality across a diverse set of runtimes from its OpenWhisk-based function as a service (FaaS) offering, managed Kubernetes and containers, to Cloud Foundry platform as a service (PaaS). Users of IBM Cloud can exploit capabilities from more than 170 different cloud native services in its catalog, including capabilities such as IBM’s Weather Company API and data services. In the later part of 2017, the IBM Cloud Container Registry team wanted to build out an image trust service.

Solution: The work on this new service culminated with its public availability in the IBM Cloud in February 2018. The image trust service, called Portieris, was fully based on the Cloud Native Computing Foundation (CNCF) open source project Notary. Portieris is a Kubernetes admission controller for enforcing content trust. Users can create image security policies for each Kubernetes namespace, or at the cluster level, and enforce different levels of trust for different images. Portieris is a key part of IBM’s trust story, since it makes it possible for users to consume the company’s Notary offering from within their IKS clusters.

Impact: IBM’s intention in offering a managed Kubernetes container service and image registry is to provide a fully secure end-to-end platform for its enterprise customers. The Docker Registry uses hashes to ensure that image content is correct, and data is encrypted both in flight and at rest. But it does not provide any guarantees of who pushed an image. IBM used Notary to enable users to sign images in their private registry namespaces if they so choose.

Nokia’s Kubernetes journey:

Nokia’s core business is building telecom networks end-to-end; its main products are related to the infrastructure, such as antennas, switching equipment, and routing equipment.

Challenge: As telecom vendors, they had to deliver their software to several telecom operators and put the software into their infrastructure, and each of the operators have a bit different infrastructure. There are operators who are running on bare metal, or on Virtual machines, or on VMware Cloud or OpenStack Cloud. Nokia was willing to run the same product on all of the different infrastructures without changing the product itself.

Solution: The company decided that moving to cloud native technologies would allow teams to have infrastructure-agnostic behavior in their products. Teams at Nokia began experimenting with Kubernetes in pre-1.0 versions. The simplicity of the label-based scheduling architecture of Kubernetes is a sign that this architecture is scalable, stable, and good for company’s purpose. The first Kubernetes-based product, the Nokia Telephony Application Server, went live in early 2018. Now, all the products are doing some kind of re-architecture work, and they’re moving to Kubernetes

Result: Kubernetes has enabled Nokia’s foray into 5G. “When you develop something that is part of the operator’s infrastructure, you have to develop it for the future, and Kubernetes and containers are the forward-looking technologies,” says SOSE(Nokia).

The teams using Kubernetes are already seeing clear benefits. By separating the infrastructure and the application layer, they have less dependencies in the system, which means that it’s easier to implement features in the application layers and so teams can test the exact same binary artifact independently of the target execution environment if errors are found in early phases of the testing there is no need to run the same tests on different target environments, like VMware, OpenStack, or bare metal. As a result they save several hundred hours in every release.

So, Kubernetes brings a positive impact by providing easy ways for organizations to deploy applications resulting in quick turnarounds for their customers.

Thanks for reading!!

--

--