Docker Certified Associate Exam Course

Kubernetes

Kubernetes Architecture

In this lesson, you’ll get a concise overview of Kubernetes architecture and its core concepts. While Kubernetes is a vast ecosystem—entire courses cover every detail—this guide focuses on the essentials you need to understand how Kubernetes runs and scales containerized applications.

Docker vs. Kubernetes

Docker and Kubernetes often appear together, but they serve different purposes:

  • Docker provides a container runtime for packaging and running individual containers.
  • Kubernetes is an orchestration system that automates deployment, scaling, and management of containerized applications across a cluster.

Note

Kubernetes supports multiple container runtimes. While Docker is the most common, you can also use CRI-O or containerd via the Container Runtime Interface (CRI).

1. Nodes and Cluster

A node is a physical or virtual machine that runs containerized workloads. You group multiple nodes into a cluster to achieve high availability and fault tolerance. If one node fails, other nodes continue serving your application.

The image shows a diagram of a cluster with three nodes, each containing a Redis icon and a Kubernetes symbol, alongside a person standing to the right.

2. Control Plane Components

The control plane (formerly called “master”) runs components that maintain the cluster’s desired state:

The image shows a diagram of Kubernetes components, including API Server, etcd, kubelet, Scheduler, Controller, and Container Runtime, with a person standing on the right side.

ComponentRole
API ServerThe cluster’s front end. All CLI (kubectl), UI, and internal requests go through it.
etcdA highly available key-value store for all cluster data and configuration.
SchedulerAssigns pods to nodes based on resource requirements and policies.
ControllerMonitors state and takes corrective actions (e.g., launching new pods on failure).
kubeletAgent on each node ensuring containers described in PodSpecs are running and healthy.
Container RuntimeSoftware that runs containers (e.g., Docker, containerd, CRI-O).

Warning

Data in etcd is critical: back it up regularly. Loss of etcd data can render your cluster unusable.

3. Kubernetes CLI (kubectl)

kubectl is the primary command-line tool to interact with the Kubernetes API. Here are common commands:

CommandDescription
kubectl runDeploy an application (create a Deployment or Pod).
kubectl get nodesList all nodes in the cluster.
kubectl get podsList all pods in the current namespace.
kubectl cluster-infoDisplay addresses of the control plane.
kubectl scale deploymentAdjust the number of replicas in a Deployment.
kubectl set imageUpdate the image of a Deployment.
kubectl rollout undoRoll back to a previous Deployment version.

Example Workflow

# Deploy a simple BusyBox pod with a single replica
kubectl run hello-minikube --image=busybox --replicas=1

# Verify nodes and cluster
kubectl get nodes
kubectl cluster-info

# Scale up your application
kubectl scale deployment hello-minikube --replicas=3

# Perform a rolling update
kubectl set image deployment/hello-minikube hello-minikube=busybox:1.1 --record

# Roll back if needed
kubectl rollout undo deployment/hello-minikube

Note

You can also configure Horizontal Pod Autoscaler to automatically adjust replica counts based on CPU or custom metrics. See Horizontal Pod Autoscaling for details.


Ready to dive deeper? Explore our in-depth Kubernetes courses to master topics like Networking, Storage, Security, and become a certified Kubernetes Administrator (CKA).

Watch Video

Watch video content

Previous
Section Introduction
Next
PODs