• Home

Kubernetes – Why do you need it now?

What is Kubernetes

What is Kubernetes?

Kubernetes is an extensible, portable, open-source platform for managing containerized workloads and services that facilitate automation and declarative configuration. Kubernetes is a platform that helps businesses to realize the potential of containers. K8s, which stands for the number of letters between the letters “K” and “s,” automates complicated operations such as provisioning, deployment, networking, scaling, load balancing, and more within the container life cycle. In cloud-native contexts, this simplifies orchestration.

Engineers at Google created and constructed Kubernetes in the inception. Google was one of the first companies to embrace Linux container technology, and in addition, it has openly said that everything at Google is run in containers. (Google’s cloud services are built on this technology.)

What can you do with Kubernetes?

Kubernetes, a container-centric management platform, has become the de-facto standard for deploying and operating containerized applications due to enterprises’ broad adoption of containers. It organizes an application’s containers into logical components for easier management and discovery. Kubernetes is built on Google’s 15 years of expertise running production workloads, as well as best-of-breed community ideas and practices.

Kubernetes clusters can span on-premises, public, private, or hybrid cloud hosts. As a result, Kubernetes is an excellent platform for hosting cloud-native applications that need to scale quickly, such as real-time data streaming via Apache Kafka.

How to speak Kubernetes

Language-specific to Kubernetes, as with most technologies, can be a barrier to entry. To help you better understand Kubernetes, let’s break down some of the more frequent terms.

A control plane is a group of processes that manage Kubernetes nodes. This is the starting point for all task assignments.

Nodes: These devices carry out the tasks that the control plane has allocated to them.

Pod: A collection of one or more containers that have been deployed on a single node. A pod’s IP address, IPC, hostname, and other resources are shared by all containers. Pods abstract the underlying container’s network and storage. This makes it easier to move containers around the cluster.

Replication controller: This determines how many identical copies of a pod should be running on the cluster at any given time.

Service: Work definitions are decoupled from pods as a result of this. Kubernetes service proxies route service requests to the correct pod, regardless of where it is in the cluster or whether it has been replaced.

Kubelet: This service runs on nodes and therefore guarantees that the defined containers are started and operating by reading the container manifests.

kubectl: Kubernetes configuration tool with a command-line interface.

How does Kubernetes work?

As the scale of applications grows to span multiple containers deployed across multiple servers, operating them becomes more complex. This is the problem that Kubernetes solves.

It provides a framework that allows you to operate distributed systems resiliently. It does so by taking care of scaling and failover your application, providing deployment patterns and more. Kubernetes exemplifies a distributed system that has been well-architected. The head nodes and worker nodes make up Kubernetes’ two layers. The control plane, which is responsible for scheduling and controlling the life cycle of workloads, is typically run by the head nodes. Meanwhile, the workhorses that operate applications are the worker nodes.

A cluster is formed by a collection of head and worker nodes. The command-line interface (CLI) or third-party tools are used by the DevOps teams maintaining the cluster to communicate with the control plane’s API. The users access the apps executing on the worker nodes. The apps are made up of one or more container images kept in an image registry that is freely viewable.

Inside the Kubernetes cluster, a container runtime is responsible for pulling and running container images, however, Docker is a favoured choice for that runtime (other common options include CRI-O and containerd).

What is docker? And what are the uses?

Docker is an open-source project tool that makes deploying, creating, and running containers and container-based apps easier. Originally coded for Linux, Docker now runs on Windows and macOS as well. Docker containers deliver a way to build enterprise and line-of-business applications that are easier to maintain, assemble, and move around than their conventional counterparts.

Uses of Docker:

  • Build and share disk images with others through the Docker Index
  • Manage for infrastructure (today’s bindings are designed for Linux Containers, but future bindings including KVM, Hyper-V, Xen, etc.)
  • Get a great image distribution model for server templates built with Configuration * Managers (like Chef, Puppet, SaltStack, etc.) through Docker.
  • Uses btrfs (a copy-on-write filesystem) to keep track of file system diff’s which can be committed and collaborated on with other users (like git)
  • It has a central repository of disk images (public and private) which moreover allows you to easily run different operating systems (Ubuntu, Centos, Fedora, even Gentoo)
  • The containers enable isolation and throttling
  • The containers enable portability

Dockers state that over 3.5 million applications have been placed in containers using Docker technology, and over 37 billion containerized applications have been downloaded.

Why do you need Kubernetes now?

It would help if you had Kubernetes now because, with Kubernetes, you can:

  1. Move faster

Kubernetes does allow you to deliver a self-service PaaS (platform-as-a-service) that creates a hardware abstraction layer for development teams. Consequently, development teams can quickly request the resources they need.

  1. Switch to Cloud

Kubernetes can run on Amazon Web Services (AWS), Microsoft Azure, and the Google Cloud Platform (GCP) while running on-premises. It enables companies to move workloads without redesigning applications or completely rethinking infrastructure, standardising on a platform while avoiding vendor lock-in. Companies like Cloud Foundry, Kublr, and Rancher provide tooling to help deploy and manage Kubernetes clusters on-premises or a cloud provider.

  1. Be cost-efficient.

Interestingly, Kubernetes and containers allow for much better resource utilization than hypervisors and VMs do. As containers are lightweight, they require less CPU and memory resources to run. Therefore, becoming cost-efficient for your enterprise.

  1. Make workloads portable

One can move containers from local machines to production among on-premises, hybrid and multiple cloud environments easily. Kubernetes provides a way to schedule and deploy those containers—plus scale them to your desired state and manage their life cycles.

Some online case studies of how Kubernetes helped their organization

Case Study: Booking.com

Problem:

Booking.com migrated to an OpenShift platform, giving the product developers faster access to infrastructure. Since the developers were unaware of Kubernetes, the infrastructure team could not cope up when challenges arose. Even trying to scale that support wasn’t sustainable without Kubernetes.

Solution:

After a year operating OpenShift, the platform team decided to build a custom-made and new Kubernetes platform—and ask developers to learn some Kubernetes to use it.

“Kubernetes cannot be taken for granted or automated,” was quoted by Ben Tyler from B Platform Track. Above all, developers need to skill up and have access to knowledge that the enterprise must empower them to have.

Outcome:

Irrespective of the learning curve, there’s been a great advantage in adopting the new Kubernetes platform. Before containers existed, creating a new service could take a couple of days if the developers understood Puppet or weeks if they didn’t understand it. On this new platform, it can take as few as 10 minutes. By now building almost 500 new services on the platform, should be possible in the first 8 months alone.

American Airlines

American Airlines needed a new technology platform and a new development process to help it offer digital self-service capabilities and customer value more quickly across its company so they become more responsive to consumer requests. IBM is assisting the airline with the migration of some of its essential applications to the IBM Cloud Kubernetes service and the use of new methods to develop creative applications that improve the customer experience quickly.

Problem

Airlines’ customer experience is a significant competitive differentiation, while digital channels are becoming increasingly important. How could American satisfy its customers’ desire for real-time data and services?

Solution

Working with IBM to transfer some of their important legacy customer-facing applications to VMware HCX on IBM Cloud while also transforming them to a cloud-native based microservices architecture allows the world’s largest airline to respond to changing consumer demand more quickly.

Outcome

By migrating to the IBM Cloud Kubernetes service, you can save money by avoiding existing upgrading expenses, above all, improved operational resiliency, productivity, and reaction times for end customers.

AA wanted to provide convenient digital services for customers and realized they could remove the constraints of the existing legacy architecture, platform, organization, development, and operations approach. While AA was creating customer-facing applications based on monolithic code, duplicated and managed in silos. To respond better and faster to customer needs, AA needed to transform how they take advantage of new technology features. The updated technology stack further increased agility and introduced DevOps concepts while leveraging an open and flexible cloud platform. This was possible only because of Kubernetes.

Conclusion:

Keeping containerized applications up and running can be complex because they might involve many containers deployed across different machines. Kubernetes makes the process faster for your development team while keeping it cost-efficient for your enterprise. It allows you to schedule and deploys those containers—plus scale them to your desired state and manage their life cycles. With Kubernetes, your organization can move workloads to hybrid and cloud environments without redesigning applications or rethinking infrastructure.

One Comment

Leave a Reply

Your email address will not be published. Required fields are marked *