Full Kubernetes needs etcd, a control plane with multiple components, and significant resources. K3s packages everything into a single 70MB binary that runs on a Raspberry Pi.
Single-Node Install
curl -sfL https://get.k3s.io | sh -That is the entire install. K3s is running. Check it:
sudo k3s kubectl get nodes
# NAME STATUS ROLES AGE VERSION
# my-server Ready control-plane,master 30s v1.29.3+k3s1Multi-Node Cluster
Server (Control Plane)
curl -sfL https://get.k3s.io | sh -s - server \
--cluster-init \
--tls-san my-server.myorg.com
# Get the token for joining agents
cat /var/lib/rancher/k3s/server/node-tokenAgent (Worker Nodes)
curl -sfL https://get.k3s.io | K3S_URL=https://my-server:6443 \
K3S_TOKEN=<node-token> sh -sudo k3s kubectl get nodes
# NAME STATUS ROLES AGE
# my-server Ready control-plane,master 5m
# worker-1 Ready <none> 2m
# worker-2 Ready <none> 1mWhat K3s Includes
| Component | K3s Default | Full K8s |
|---|---|---|
| Container runtime | containerd | containerd/CRI-O |
| CNI | Flannel | Calico/Cilium/etc |
| Ingress | Traefik | None (install yourself) |
| Load balancer | ServiceLB | MetalLB/cloud LB |
| Storage | Local-path | None (install yourself) |
| DNS | CoreDNS | CoreDNS |
| Datastore | SQLite (single) / etcd (HA) | etcd |
K3s comes batteries-included. Deploy workloads immediately without installing add-ons.
Master this topic with hands-on labs
Go beyond reading — build real projects in sandboxed environments with expert video guidance.
Browse Courses →High Availability
# Server 1
curl -sfL https://get.k3s.io | sh -s - server \
--cluster-init \
--tls-san k3s-lb.myorg.com
# Server 2
curl -sfL https://get.k3s.io | K3S_TOKEN=<token> sh -s - server \
--server https://server-1:6443 \
--tls-san k3s-lb.myorg.com
# Server 3
curl -sfL https://get.k3s.io | K3S_TOKEN=<token> sh -s - server \
--server https://server-1:6443 \
--tls-san k3s-lb.myorg.comThree server nodes with embedded etcd. Put a load balancer in front for the API endpoint.
Raspberry Pi Cluster
# On each Raspberry Pi (ARM64)
curl -sfL https://get.k3s.io | sh -
# K3s auto-detects ARM architecture
# Works on Pi 4, Pi 5, and other ARM64 devicesA 3-node Pi cluster runs real Kubernetes workloads:
Pi 1 (server): 4GB RAM → control plane + workloads
Pi 2 (agent): 4GB RAM → workloads
Pi 3 (agent): 4GB RAM → workloadsDeploy Workloads
K3s is standard Kubernetes. All kubectl commands and manifests work:
# Deploy an app
kubectl create deployment nginx --image=nginx:1.25
kubectl expose deployment nginx --port=80 --type=LoadBalancer
# Traefik ingress (included by default)
kubectl apply -f - <<EOF
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: nginx
spec:
rules:
- host: nginx.myorg.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: nginx
port:
number: 80
EOFGet weekly IT automation tips
Docker, Ansible, Terraform, MLOps — curated insights delivered to your inbox. No spam.
Subscribe Free →Auto-Deploy Manifests
Place YAML files in /var/lib/rancher/k3s/server/manifests/ and K3s applies them automatically:
# Auto-deploy on startup
sudo cp my-app.yaml /var/lib/rancher/k3s/server/manifests/Useful for GitOps: sync manifests to this directory and K3s keeps them applied.
Helm Charts
K3s includes a HelmChart CRD:
apiVersion: helm.cattle.io/v1
kind: HelmChart
metadata:
name: prometheus
namespace: kube-system
spec:
repo: https://prometheus-community.github.io/helm-charts
chart: prometheus
targetNamespace: monitoring
createNamespace: true
valuesContent: |-
alertmanager:
enabled: falseDeploy Helm charts declaratively without installing Helm CLI.
K3s vs Alternatives
| Feature | K3s | K0s | MicroK8s | minikube |
|---|---|---|---|---|
| Binary size | 70MB | 170MB | Snap | VM-based |
| Production-ready | Yes | Yes | Yes | No |
| HA support | Yes | Yes | Yes | No |
| ARM support | Yes | Yes | Yes | Limited |
| Edge/IoT | Yes | Yes | Partial | No |
| Batteries included | Yes | Minimal | Yes | Addons |
| CNCF | Sandbox | Sandbox | Canonical | Kubernetes SIG |
Use K3s for edge, IoT, Raspberry Pi, homelabs, and lightweight production. Use full K8s (kubeadm, EKS, GKE) for large-scale production with custom networking and storage requirements.
---
Ready to go deeper? Master Kubernetes fundamentals with hands-on courses at CopyPasteLearn.
Ready to learn by doing?
Stop reading tutorials — start building. Expert video courses with hands-on labs in real sandboxed environments.
Related Articles
Podman vs Docker in 2026
Podman and Docker both run containers but differ in architecture. Compare rootless containers, daemon requirements, Compose support, and Kubernetes.
Kubernetes Cost Optimization Guide
Kubernetes clusters are often 60-70% over-provisioned. Learn practical cost optimization strategies: right-sizing, spot instances, autoscaling, namespace.
Crossplane Infrastructure as Code
Crossplane lets you manage cloud infrastructure using Kubernetes custom resources. Learn how it works, how it compares to Terraform, and when to choose.
Kaniko Rootless Container Builds
Kaniko builds container images inside Kubernetes without Docker daemon or root access. Learn how to use Kaniko in CI/CD pipelines, Tekton, and GitHub Actions.
Karpenter Kubernetes Autoscaler
Karpenter provisions the right Kubernetes nodes in seconds, not minutes. Learn how it replaces Cluster Autoscaler with faster, smarter node provisioning.
KDE Plasma 6 on Linux in 2026
KDE Plasma 6 is the most customizable Linux desktop available. What's new, which distros ship it best, and why power users love it.
Explore topics
Browse more articles on the topics covered here.