Skip to the content.

Kubernetes Overview


“Kubernetes is a portable, extensible open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available.”

“Google open-sourced the Kubernetes project in 2014. Kubernetes builds upon a decade and a half of experience that Google has with running production workloads at scale, combined with best-of-breed ideas and practices from the community.”

Reference: https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/

Kubernetes advantages includes:

Reference: https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/

In order for Kubernetes to reach its full capacity, it depends on and makes use of other open source tools. Among them we can include:

Kubernetes at a glance


Kubernetes Architecture Diagram

A cluster managed by Kubernetes basically has two large operational units: Master node(s) and Worker nodes.

Kubernetes master receives the commands from the Developer/Operator (DevOps) and passes the instructions to the worker nodes. These instructions are processed and retransmitted by a set of services that automatically decide which worker node is most suitable to process the requested the task. The resources are then allocated and assigned to the selected worker node to satisfy the requested statement.

Container management takes place at a higher and more refined level, without someone needs to actively micromanage containers and worker nodes individually.

Master and Work components

Reference: https://kubernetes.io/docs/reference/glossary/?fundamental=true

Kubectl


Image from Rising Stack

kubectl is a command line tool for communicating with a Kubernetes API server. You can use kubectl to create, inspect, update, and delete Kubernetes objects.

What about Containerd?


Containerd serves as the core container runtime. When Kubernetes configures a Pod, it sends instructions directly to the kubelet of the selected worker node, which communicates with containerd through the Container Runtime Interface (CRI) to start (or stop) a container with the given specification. kubelet, in turn, continues collecting information from containerd and its containers and aggregating all this information in the control plane. The big difference here is that all of this happens in an automated and efficient way, with direct communication between Kubernetes and the runtime, without the need of an administrator having to do all this configuration and information gathering manually, and without requiring intermediate compatibility layers.

Kubernetes’ main objects


Following is a brief definition of each of the main objects managed by Kubernetes. We’ll get into more detail about them in the next articles in this series:






Reference: https://kubernetes.io/docs/reference/glossary/?fundamental=true