Getting Started with Kubernetes

K8s Cluster Architecture

K8s Architecture

Kubernetes, often abbreviated as K8s, is an open-source platform designed to automate the deployment, scaling, and management of containerized applications. It provides a robust framework for orchestrating containers, such as those created with Docker, across a cluster of machines.

Core Components

A kubernetes cluster consists of a control plane and one or more worker nodes.

Control Plane Components

Manage the overall state of the cluster:

kube-apiserver

The core component server that exposes the Kubernetes HTTP API.

etcd

Stores cluster-wide configuration and state data.

kube-scheduler

Look for Pods not yet bound to a node, and assigns each Pod to a suitable node.

kube-controller-manager

Manage node lifecycle, container replication, and system stability.

cloud-controller-manager

Integrates with underlying cloud providers.

Node Components

Run on every node, mantaining running pods and providing the Kubernetes runtime environment.

kubelet

Manages container lifecycle on a individual node. It receives instructions from the Kube API server to create, update, or delete containers, and regularly reports the node's status.

kube-proxy

Configures networking rules on worker nodes, thus enabling smooth inter-container communication across nodes. For instance, it allows a web server on one node to interact with a database on another.

Container Runtimes

Software responsible for running containers.

Reference: - https://kubernetes.io/docs/concepts/architecture/

- the kubernetes book

Last updated