Skip to content

Container orchestration decides where containers run, keeps them alive, scales them and connects them. Kubernetes dominates, but there is a wide range of ways to get it, plus several non-Kubernetes alternatives. Start with 3. Container Images and Build Tools and 1. Docker, then see how Kubernetes itself works in 2. Kubernetes Architecture – from Container Images to Running Pods.

Options at a glance

Category Examples
Upstream / self-managed Kubernetes kubeadm, Kubespray, kOps, Cluster API, Talos Linux
Managed Kubernetes (hyperscalers) Amazon EKS, Google GKE, Azure AKS
Managed Kubernetes (others) DigitalOcean DOKS, Linode LKE (Akamai), Oracle OKE, IBM Cloud Kubernetes Service, Vultr VKE, Scaleway Kapsule, Civo
Enterprise Kubernetes platforms Red Hat OpenShift, SUSE Rancher, VMware Tanzu, Canonical Charmed Kubernetes, Google Distributed Cloud (formerly Anthos)
Lightweight / edge Kubernetes k3s, MicroK8s, k0s, KubeEdge
Local / dev minikube, kind, k3d, Docker Desktop (Local Kubernetes Tools)
Cloud-native container services (not exposing Kubernetes) AWS ECS, Fargate, App Runner; Google Cloud Run; Azure Container Apps, Container Instances
Other orchestrators HashiCorp Nomad, Docker Swarm, Apache Mesos (legacy)
flowchart TD
    A[Need to run containers] --> B{Do you need Kubernetes itself?}
    B -->|No - just run my containers| C[Serverless containers: Cloud Run, Container Apps, App Runner, Fargate]
    B -->|Simple multi-host, few ops| D[ECS, Nomad, Docker Swarm]
    B -->|Yes| E{Who runs the control plane?}
    E -->|Cloud provider| F[EKS, GKE, AKS and other managed services]
    E -->|Vendor platform with support| G[OpenShift, Rancher, Tanzu]
    E -->|Me| H{Where?}
    H -->|Data centre / bare metal| I[kubeadm, Kubespray, RKE2, Talos]
    H -->|Edge or small hardware| J[k3s, MicroK8s, k0s]
    H -->|Laptop| K[minikube, kind, k3d]

Kubernetes (the baseline)

Open source, vendor-neutral orchestrator from the CNCF. You get the control plane, nodes, networking (CNI), storage (CSI) and everything else covered in the chapters.

  • Upstream / "vanilla": you install and upgrade it yourself
  • Core objects: Pod, Deployment, Service, Ingress, ConfigMap, Secret, PersistentVolume, Namespace, and custom resources
  • Extensible through CRDs and operators
  • Every option below that says "Kubernetes" is conformant, so the same manifests and kubectl commands work, which is what makes migration and multi-cloud possible

Self-managed installers

Tool Use
kubeadm Official bootstrap tool (3. Installing Your First Kubernetes Cluster)
Kubespray Ansible-based, production on bare metal or VMs
kOps Builds and manages clusters on AWS (and others)
Cluster API Declarative cluster lifecycle using Kubernetes itself
RKE2 / k3s Rancher's hardened and lightweight distributions
Talos Linux Immutable OS purpose-built for Kubernetes, API-driven

Self-managing means you own control plane upgrades, etcd backups, certificates, HA and security patching.


Managed Kubernetes on the Big Three

The provider runs the control plane (API server, etcd, scheduler, controllers); you manage workloads and, depending on mode, nodes. Cluster-level background in 3. Installing Your First Kubernetes Cluster.

flowchart LR
    subgraph Provider[Managed by the cloud provider]
        CP[Control plane: kube-apiserver, etcd, scheduler, controller-manager]
    end
    subgraph You[Managed by you]
        NP[Node pools / VMs]
        W[Workloads: Deployments, Services, Ingress]
    end
    CP --> NP --> W
EKS (AWS) GKE (Google) AKS (Azure)
Control plane cost Hourly fee per cluster Per-cluster management fee, with a free-tier credit covering one zonal or Autopilot cluster Free tier, paid Standard tier with SLA
Node options Managed node groups, self-managed, Fargate (serverless Pods), EKS Auto Mode Standard (you manage node pools) or Autopilot (fully managed nodes, pay per Pod) Node pools (VM Scale Sets), virtual nodes (ACI), AKS Automatic
Identity IAM, IRSA / EKS Pod Identity IAM, Workload Identity Entra ID, Workload Identity
Default networking VPC CNI (Pods get VPC IPs) VPC-native (alias IPs), Dataplane V2 (Cilium) Azure CNI, Azure CNI Overlay, kubenet
Load balancing AWS Load Balancer Controller → ALB / NLB Cloud Load Balancing, GKE Gateway Azure Load Balancer, Application Gateway for Containers
Registry ECR Artifact Registry ACR
Standout Deep AWS integration Most automated, created by Kubernetes' originators, multi-cluster / fleet Tight Entra ID, DevOps and Azure integration
# EKS
$ eksctl create cluster --name demo --region af-south-1 --nodes 2
$ aws eks update-kubeconfig --name demo --region af-south-1

# GKE
$ gcloud container clusters create-auto demo --region=europe-west1
$ gcloud container clusters get-credentials demo --region=europe-west1

# AKS
$ az aks create -g rg-demo -n demo --node-count 2 --generate-ssh-keys
$ az aks get-credentials -g rg-demo -n demo

Related notes: 3. AWS Compute (EKS, ECS, Fargate), 2. Azure Compute (AKS, Container Apps), 5. AWS Networking, 3. Azure Networking.

Other managed offerings

  • DigitalOcean DOKS, Linode LKE, Vultr VKE, Civo: simple, low cost, free or cheap control planes
  • Oracle OKE, IBM Cloud Kubernetes Service, Alibaba ACK: provider-integrated
  • Hybrid / multi-cloud control: Google Distributed Cloud (Anthos), Azure Arc-enabled Kubernetes, EKS Anywhere, Rancher

Red Hat OpenShift and Enterprise Platforms

OpenShift

Red Hat OpenShift is Kubernetes plus a full, opinionated, supported platform: security defaults, built-in registry, CI/CD (Pipelines on Tekton, GitOps with Argo CD), service mesh, monitoring, an operator catalogue (OperatorHub), a developer / admin web console and the oc CLI (a superset of kubectl).

Edition What it is
OpenShift Container Platform (OCP) Self-managed, on bare metal, VMware, or any cloud
OKD Community upstream version of OpenShift
ROSA Red Hat OpenShift Service on AWS, jointly managed
ARO Azure Red Hat OpenShift, jointly managed
OpenShift Dedicated Red Hat-managed on AWS / GCP
OpenShift Local (CRC) Single-node local cluster for development

Things that differ from plain Kubernetes: - Security Context Constraints (SCC): containers run as a random non-root UID by default, so images that assume root often fail. Build with OpenShift in mind (non-root, group-writable dirs, Red Hat UBI bases) - Routes (HAProxy-based) in addition to Ingress - Projects = namespaces with extras; ImageStreams; BuildConfigs with Source-to-Image (3. Container Images and Build Tools) - Operators manage the platform itself, including upgrades - Subscription licensing

$ oc login https://api.cluster.example.com:6443
$ oc new-project demo
$ oc new-app python~https://github.com/sharif/shop-api.git
$ oc expose service shop-api
$ oc get routes

Rancher and RKE2 (SUSE)

  • Rancher is a management plane to create, import and govern many clusters (EKS, GKE, AKS, on-prem) from one UI with RBAC, monitoring and catalogues
  • RKE2 is a security-hardened distribution; k3s is the lightweight sibling
  • Rancher Desktop for local development

VMware Tanzu (now under Broadcom)

Kubernetes integrated with vSphere (vSphere with Tanzu), plus the Tanzu Application Platform. Common in VMware-centric data centres.

Others

  • Canonical Charmed Kubernetes / MicroK8s: Ubuntu-centred
  • Nutanix NKE, HPE Ezmeral, Mirantis (MKE): enterprise offerings

Lightweight and Edge Kubernetes

Distribution Notes
k3s Single <100 MB binary, SQLite / embedded etcd, runs on Raspberry Pi
MicroK8s Snap package, add-ons by command
k0s Single binary, zero host dependencies
KubeEdge / OpenYurt Extend Kubernetes to edge devices with intermittent connectivity

Not-Kubernetes Alternatives

Choose these when Kubernetes' power is more than you need.

AWS ECS (Elastic Container Service) and Fargate

AWS's own orchestrator: task definitions, services, clusters. Run on EC2 or Fargate (serverless, no hosts to manage). Simpler than Kubernetes, but AWS-specific. Also App Runner for "give me a URL for this image or repo". See 3. AWS Compute.

Google Cloud Run

Serverless containers: deploy an image, get an HTTPS URL, scale to zero, pay per request. Built on Knative.

Azure Container Apps and Container Instances

Container Apps: serverless containers on Kubernetes with KEDA, Dapr and revisions, no cluster to run. ACI: single container groups for short jobs. See 2. Azure Compute.

HashiCorp Nomad

Single binary scheduler for containers and VMs, binaries and batch jobs. Integrates with Consul and Vault. Simple to operate, smaller ecosystem.

Docker Swarm

Built into Docker: docker swarm init, docker stack deploy -c compose.yaml app. Easy for small clusters, but largely in maintenance mode; the community moved to Kubernetes. Compose files carry over (2. Docker Compose).

Apache Mesos / Marathon

Historically important (Twitter, Apple), now legacy and effectively retired; mentioned for context only.


Choosing

Need Good fit
Learn Kubernetes on a laptop minikube, kind (Local Kubernetes Tools)
Production on AWS / GCP / Azure with least ops EKS, GKE (Autopilot), AKS
Deploy one container, scale to zero Cloud Run, Container Apps, App Runner
AWS-only, simple services ECS on Fargate
Regulated enterprise needing vendor support OpenShift
Many clusters across clouds and on-prem Rancher, Anthos / Google Distributed Cloud, Azure Arc
Edge, IoT, Raspberry Pi k3s, MicroK8s, k0s
Mixed containers, VMs and batch with little ops Nomad
Dev environment for a Compose app Docker Compose

Factors to weigh

  • Operational capacity: who patches, upgrades, backs up etcd and carries the pager?
  • Portability: Kubernetes-conformant services are portable; ECS and Cloud Run are not
  • Cost: control plane fee + nodes + load balancers + egress; serverless saves at low or spiky load
  • Ecosystem fit: IAM / identity, registry, networking and monitoring in your cloud
  • Compliance and support contracts
  • Skills: Kubernetes is broad; a smaller tool may suit a small team better

Concept Map

Concept Kubernetes ECS Nomad Swarm
Smallest unit Pod Task Allocation Task
Desired-count controller Deployment / ReplicaSet Service Job (group count) Service
Service discovery Service + DNS Cloud Map / ALB Consul Built-in DNS
Config ConfigMap / Secret SSM / Secrets Manager Templates / Vault Configs / Secrets
Ingress Ingress / Gateway API ALB Traefik / Consul Routing mesh
Package format Helm / Kustomize Task definition JSON HCL job files Compose stack

Pipeline integration for all of these is in CI-CD Pipelines.