A gentle introduction to Kubernetes

What is Kubernetes

Kubernetes comes from a Greek name that means pilot or controller. It is abbreviated as K8s and was developed by Google engineers who built it over a period of time with combining best practices from different sources to come up with what we have now as Kubernetes. The project was open-sourced in 2014 with an aim of improving and getting community support.

Kubernetes is an open-source system for automating the deployment, scaling, and management of containerized applications. It was originally designed by Google and is now maintained by the Cloud Native Computing Foundation (CNCF).

Kubernetes is a portable, extensible, and scalable platform that can be used to deploy applications on a variety of infrastructure, including cloud, bare metal, and virtual machines. It provides a number of features that make it easy to manage containerized applications, including:

  • Automated deployment and scaling
  • Self-healing
  • Load balancing
  • Service discovery
  • Logging and monitoring

We now know how Kubernetes came to be. The next question is what is its use or why do we need Kubernetes as we work on our development and integration processes. From the official Kubernetes website, the definition for it is a portable, extensible, open source platform for managing containerized workloads and services.

What is containerization

We have now introduced another term. Containerization. Containerization is operating system based virtualization that creates multiple virtual units in the user environment that have their own dependencies and plugins separate from the user environment. A better way to visualize this is thinking of containers as a better replacement for virtual machines. Whereby the installed containers run independently of the user environment.

Containerization or rather the use of containers in development has been adopted in terms of development in that it allows different applications to be built in a manner that does not affect the rest of the environment on which it is built. Containers have their own dependencies and plugins separate from the environment.

How does Kubernetes work?

Kubernetes works by managing a cluster of machines, called nodes. Each node runs a container runtime, such as Docker, and a Kubernetes agent, called the kubelet. The kubelet communicates with the Kubernetes control plane, which is responsible for managing the overall state of the cluster.

The control plane consists of a number of components, including:

  • The Kubernetes API server: This is the main entry point for interacting with Kubernetes.
  • The etcd database: This is a distributed key-value store that stores the state of the cluster.
  • The Kubernetes scheduler: This component is responsible for scheduling pods onto nodes.
  • The Kubernetes controller manager: This component is responsible for running controllers, which are responsible for managing specific aspects of the cluster, such as pods, services, and deployments.

What are the benefits of using Kubernetes?

There are many benefits to using Kubernetes, including:

  • It can be used to deploy applications on a variety of infrastructure.
  • It provides a number of features that make it easy to manage containerized applications.
  • It is scalable and can be used to manage large numbers of applications.
  • It is open source and there is a large community of users and contributors.

How to get started with Kubernetes?

There are a number of ways to get started with Kubernetes. You can:

  • Use a managed Kubernetes service, such as Google Kubernetes Engine (GKE) or Amazon Elastic Kubernetes Service (EKS).
  • Set up your own Kubernetes cluster on your own hardware or in the cloud.
  • Use a local Kubernetes distribution, such as Minikube or Docker Desktop.

Once you have a Kubernetes cluster up and running, you can start deploying your applications. There are a number of tools that you can use to do this, such as kubectl, Helm, and Skaffold.

Conclusion

Kubernetes is a powerful tool that can be used to manage containerized applications. It is a good choice for organizations that need to deploy and manage applications at scale.

If you are interested in learning more about Kubernetes, there are a number of resources available online. Here are a few suggestions:

  • Kubernetes documentation: https://kubernetes.io/docs/
  • Kubernetes tutorials: https://kubernetes.io/docs/tutorials/
  • Kubernetes community: https://kubernetes.io/community/

I hope this article has given you a gentle introduction to Kubernetes.

Sources

info

  1. blogs.oracle.com/connect/post/gentle-introduction-kubernetes#:~:text=Kubernetes%20is%20an%20open%20source,part%20of%20The%20Linux%20Foundation.
  2. www.financedigest.com/the-role-of-open-source-in-uncertain-times.html
A gentle introduction to Kubernetes
Scroll to top