Back to tutorials
About Kubernetes
Kubernetes (K8s) is an open source container orchestration platform developed by Google. It automates the deployment, scaling and management of containerized applications across clusters of machines. This tutorial guides you from installation to production.
Prerequisites
- Machines: A minimum of 2 servers (1 control plane + 1 worker) with 2 CPUs and 2 GB of RAM each
- Operating system: Ubuntu 22.04 LTS or Debian 12 (recommended)
- Network: Full network connectivity between all machines in the cluster
- Container runtime: containerd or Docker Engine installed on each node
- Privileges: Root or sudo access on all machines
- Open ports: 6443 (API), 2379-2380 (etcd), 10250-10252 (kubelet/scheduler/controller)
Kubernetes Architecture
Understanding the architecture of Kubernetes is essential before starting the installation. A K8s cluster consists of two types of nodes.
Control Plane (Master node)
- kube-apiserver: The entry point for all REST requests. It is the central component that exposes the Kubernetes API.
- etcd: A distributed key-value database that stores the complete state of the cluster (configurations, secrets, pod state).
- kube-scheduler: Assigns pods to nodes based on available resources, constraints and affinities.
- kube-controller-manager: Runs the control loops that monitor the state of the cluster and make the necessary corrections.
Worker Nodes
- kubelet: The agent that runs on each worker node and ensures that the containers defined in the pods are running.
- kube-proxy: Manages the network rules on each node to route traffic to the correct pods.
- Container Runtime: The container execution engine (containerd, CRI-O).
Good to know
In production, it is recommended to have at least 3 control plane nodes for the high availability of etcd and the API server.
Premium Content
This advanced tutorial is reserved for premium members.
9,90€ / month
- All advanced tutorials
- New content every week
- Progress tracking
- Cancel anytime
Comments