| Step | Description |
|---|---|
| Prepare ARM-based hardware | Provision compatible ARM architecture infrastructure |
| Install base operating system | Deploy a supported ARM-compatible operating system |
| Install Docker container runtime | Set up the required container runtime for Kubernetes |
| Install Kubernetes core components | Install kubelet, kubeadm, and kubectl |
| Initialize and configure the Kubernetes cluster | Bootstrap the cluster and enable pod networking |
All instructions below are for 64-bit ARM (arm64) systems running Ubuntu Server.
Prepare ARM-based Hardware
Before starting deployment, confirm you have working ARM-based hardware available. Popular options include Raspberry Pi 4/5 boards, cloud ARM compute instances, or custom ARM-based servers. A minimum of 2 CPU cores and 2GB of RAM is recommended for a Kubernetes control plane node.
Install Base Operating System
Install an arm64-compatible operating system on your hardware. Ubuntu Server for arm64 is the most common choice for this use case, and can be installed following the official Ubuntu installation documentation.
Install Docker
Docker is the required container runtime for this Kubernetes deployement. Run the following commands to install Docker on Ubuntu:
# Update local apt package index
sudo apt update
# Install dependencies required to use HTTPS-enabled apt repositories
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
# Import Docker's official GPG signing key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# Add Docker's stable repository configured for arm64 architecture
sudo add-apt-repository "deb [arch=arm64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# Update package index after adding the new repository
sudo apt update
# Install the latest stable version of Docker Community Edition
sudo apt install -y docker-ce
Install Kubernetes Core Components
After Docker is installed, add the Kubernetes repository and install the required core components:
# Import Kubernetes' official GPG signing key
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
# Add the Kubernetes apt repository
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
# Update apt package index
sudo apt update
# Install kubelet, kubeadm, and kubectl
sudo apt install -y kubelet kubeadm kubectl
Configure the Kubernetes Cluster
Once all components are installed, bootstrap you're Kubernetes cluster with the following commands:
# Initialize the Kubernetes control plane, define the private CIDR range for pods
sudo kubeadm init --pod-network-cidr=192.168.0.0/16
# Create kubeconfig directory for the current user
mkdir -p $HOME/.kube
# Copy cluster admin configuration to the user's directory
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
# Update ownership of the configuration file to the current user
sudo chown $(id -u):$(id -g) $HOME/.kube/config
# Deploy Calico network plugin to enable cross-pod network communication
kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml