Kubernetes Series – 1: Introduction to Kubernetes

In this first article of the Kubernetes Series, we will start with the Introduction to Kubernetes. Then, we will cover more details in upcoming articles of the Kubernetes Series. Let’s start the first episode.

What is Kubernetes?

Documentation definition for Kubernetes is a portable, extensible, open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It is abbreviated as k8s as there are 8 letters between k and s in the word Kubernetes.

Basically, it is a container orchestration tool by Google. Since many companies are moving from monolithic architectures to microservices, containerization technologies ( like docker ) have become popular day by day. Kubernetes is used for managing containerized apps. It helps you:

  • Build high available applications,
  • Scale your applications,
  • Load balance easily,
  • Control resource consumption

and many other things like managing versions and secrets.

Kubernetes Components

A Kubernetes cluster consists of a controlplane and worker nodes.

Components of Kubernetes
Image reference: kubernetes.io.

Controlplane Components

Controlplane is the decision-maker in the cluster which means it is responsible for orchestrating all the processes that are required for running, scheduling, and maintaining applications. Controlplane components can be installed to any node but as a best practice, it is not suggested to have controlplane components on a worker node. We will talk about building a Kubernetes cluster in the following articles.

kube-apiserver: The component that exposes the API server. 

etcd: It is a strongly consistent, distributed key-value store. Kubernetes uses it as a backing store for all cluster data.

kube-scheduler: The component that watches newly created Pods and assigns them a node.

kube-controller-manager: The component that is responsible for controller processes. Control processes vary in Kubernetes like node-controller which is controlling if nodes are down or like endpoint-controller that creates the endpoints objects.

cloud-controller-manager: This is an optional component that is only required when a Kubernetes cluster is created on the cloud. This component links your Kubernetes cluster to the cloud provider.

Node Components

These are the components that run on each node and are used for running and maintaining pods.

kubelet: This component communicates with the control plane.  In a way, it makes sure that containers are running in a Pod.

kube-proxy: The kube-proxy handles network communications inside or outside of your cluster.

Let’s set up our cluster and dive into the Kubernetes world in the next episode.

Kubernetes Series

Thanks for reading,
Ege Aksoz

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.