KubeCon NA 2022 Prep: Install Containers and Kubernetes on M1 Mac
Get your M1 Mac ready for KubeCon with our step-by-step guide to installing Docker, Kubernetes, and essential cloud native tools on Apple Silicon.
THNKBIG Team
Engineering Insights
## Overview
The time has come for our annual pilgrimage to the source of all cloud native communities that the cloud native computing foundation has provided for us. KubeCon is the foundations flagship conference. Technologists from leading open source projects will share their collective knowledge throughout the week, and its an event that shouldn't be missed. As we are prepping for the deluge of talks and hackery that will be taking place at KubeCon NA 2022 in Detroit Oct 24 - 28, we will be highlighting some tips and tricks of cloud native technologies to ensure you are day zero ready.
In the last year or so since Apple Silicon debuted in the MacBook Pro, developers have had time to try multiple configurations with varying degrees of success. Gone are the days of simplistic virtual box and vmware fusion backed local vms. However, all hope is not lost, as there have been new combatants in the Mac vm arena. One such contender is Colima, which means container in Lima. No matter if you are deploying to public cloud or private cloud, having a solid local development environment where you test your application running is essential.
## Enter Colima
Colima is a foss project that enables containers to run on Mac with ease, and has the feels of virtualbox and vagrant.
Colima has a few interesting features such as:
• M1 Macs and Intel support
• Intel and Simple CLI interface
• Docker and Containerd support
• Port Forwarding
• Volume mounts
• Kubernetes
## Putting it Altogether
Now that we’ve gotten that out of the way, lets install Colima, Docker, and Minikube and see what we end up with
Install Colima
$ brew install colima
Check if Colima installed
$ colima version
colima version 0.4.5
git commit: c0743565c722d9af03bbfd8f75910ac876bf3b56
runtime: docker
arch: aarch64
client: v20.10.11
server: v20.10.18
Install Docker
$ brew install docker docker-compose
## Install Minikube…What is Minikube?
Minikube is a tool that allows us to create a local Kubernetes cluster based on local system requirements. Minikube can be installed with homebrew
$ brew install minikube
Start Colima
$ colima start
INFO[0000] starting colima
INFO[0000] runtime: docker
INFO[0000] preparing network ... context=vm
INFO[0000] creating and starting ... context=vm
INFO[0039] provisioning ... context=docker
INFO[0040] starting ... context=docker
INFO[0045] done
Start Minikube to create our Kubernetes cluster
$ minikube start
😄 minikube v1.27.0 on Darwin 13.0 (arm64)
❗ Kubernetes 1.25.0 has a known issue with resolv.conf. minikube is using a workaround that should work for most use cases.
❗ For more information, see: https://github.com/kubernetes/kubernetes/issues/112135
✨ Using the docker driver based on existing profile
👍 Starting control plane node minikube in cluster minikube
🚜 Pulling base image ...
> index.docker.io/kicbase/sta...: 0 B [______________________] ?% ? p/s 0s
> index.docker.io/kicbase/sta...: 0 B [______________________] ?% ? p/s 0s
> gcr.io/k8s-minikube/kicbase...: 0 B [______________________] ?% ? p/s 0s
> index.docker.io/kicbase/sta...: 0 B [______________________] ?% ? p/s 0s
E1002 18:59:47.896075 13944 cache.go:203] Error downloading kic artifacts: failed to download kic base image or any fallback image
🏃 Updating the running docker "minikube" container ...
🐳 Preparing Kubernetes v1.25.0 on Docker 20.10.17 ...
🔎 Verifying Kubernetes components...
▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
🌟 Enabled addons: storage-provisioner, default-storageclass
🏄 Done! kubectl is now configured to use "minikube
Get Kubernetes Nodes Info from Minikube
$ kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
minikube Ready control-plane 5m58s v1.25.0
Get Kubernetes Namespaces
$ kubectl get ns
NAME STATUS AGE
default Active 6m14s
kube-node-lease Active 6m15s
kube-public Active 6m15s
kube-system Active 6m15s
Lets create a new namespace called sample-app
$ kubectl create ns sample-app
namespace/sample-app created
Now lets verify the namespace was created without issue
$ kubectl get ns
NAME STATUS AGE
default Active 105m
kube-node-lease Active 105m
kube-public Active 105m
kube-system Active 105m
sample-app Active 2m4s
➜ kubectl get ns sample-app -o yaml
apiVersion: v1
kind: Namespace
metadata:
creationTimestamp: "2022-10-03T00:28:30Z"
labels:
kubernetes.io/metadata.name: sample-app
name: sample-app
resourceVersion: "4788"
uid: 73f16ddd-f63c-44ba-a89d-dd74b106f659
spec:
finalizers:
- kubernetes
status:
phase: Active
## Conclusion
So Colima looks like a great path forward alongside Minikube and Docker in order to deploy a Kubernetes cluster on your Mac operating system. We hope this helps you get going on your M1 Mac and ready for KubeCon. We look forward to seeing you in Detroit. Always THNKBIG!
##
Key Takeaways
- Running Kubernetes locally on Apple Silicon (M1/M2/M3) requires ARM-compatible container images and tooling — most production images support multi-arch builds today.
- Colima, Rancher Desktop, and OrbStack are the leading options for local Kubernetes on M1/M2 Mac in 2024, with different trade-offs on performance, resource consumption, and feature set.
- Local Kubernetes on M1 Mac provides a cost-free development environment that is close enough to EKS/GKE/AKS to catch most deployment-time issues before they reach CI.
Why M1 Mac Kubernetes Requires Attention
Apple Silicon uses the ARM64 architecture. Most container images historically targeted AMD64 (x86_64). Running AMD64 images on ARM64 hardware requires emulation via Rosetta 2, which adds overhead and causes behavior differences for low-level system operations. Modern multi-architecture images (built with docker buildx for both linux/amd64 and linux/arm64) run natively and perform identically to what you would see on cloud infrastructure.
When preparing for KubeCon NA 2022, engineers setting up local Kubernetes on M1 Macs encountered this directly. Most CNCF project images had already added ARM64 builds. A few older addon images required workarounds. By mid-2023, multi-arch images are standard practice, and M1 Mac local Kubernetes works without emulation for all major Kubernetes components and CNCF ecosystem tooling.
Recommended Local Kubernetes Setup for M1/M2 Mac
Rancher Desktop (free, open source) provides a polished local Kubernetes experience with built-in containerd and nerdctl, automatic multi-arch support, and integration with the Rancher desktop application for cluster management. OrbStack (commercial, lightweight) provides the fastest VM startup times and the lowest resource consumption — idle overhead is noticeably lower than alternatives.
For development workflows that need to closely mirror production EKS or GKE, use the same Kubernetes version locally that runs in production. Keep the kubectl and helm binary versions aligned. This eliminates the 'it works locally but fails in CI' category of problems. THNKBIG's Kubernetes consulting team advises on development environment standardization as part of platform engineering engagements. Contact us.
Kubernetes on Apple Silicon (M1/M2/M3) – Quick Setup Summary
Why Apple Silicon Needs Special Attention
- Apple Silicon uses ARM64, while many older images target AMD64 (x86_64).
- Running AMD64 images on ARM64 requires Rosetta 2 emulation, which adds overhead and can change behavior for low-level operations.
- Modern multi-architecture images (built with
docker buildxforlinux/amd64andlinux/arm64) run natively on M1/M2/M3 and match cloud behavior. - By mid-2023, most CNCF and Kubernetes ecosystem images ship as multi-arch, so M1/M2 Mac Kubernetes can run without emulation for major components.
Install Colima, Docker, and Minikube on M1/M2 Mac
Use Homebrew to install a lightweight container runtime and local Kubernetes:
```bash
Install Colima and Docker
brew install colima docker docker-compose
Verify Colima is installed
colima version
Install Minikube for local Kubernetes
brew install minikube
Start Colima
colima start
Start Minikube
minikube start
Verify the cluster is up
kubectl get nodes -o wide
Create a namespace for your sample app
kubectl create ns sample-app
kubectl get ns
```
Colima (Containers in Lima):
- Supports both M1/M2 (ARM64) and Intel (x86_64) Macs.
- Provides Docker and containerd runtimes.
- Supports port forwarding, volume mounts, and single-node Kubernetes.
- Gives you a local environment that closely mirrors cloud Kubernetes.
Key Takeaways
- Local Kubernetes on Apple Silicon requires ARM-compatible images and tooling; most production images now support multi-arch builds.
- Colima, Rancher Desktop, and OrbStack are the main options for local Kubernetes on M1/M2:
- Colima: lightweight, CLI-driven, great for developers comfortable with the terminal.
- Rancher Desktop: free, open source, polished UI, built-in containerd and nerdctl, automatic multi-arch support.
- OrbStack: commercial, very fast VM startup, low idle resource usage.
- A local Kubernetes cluster on M1/M2 is a cost-free way to catch most deployment issues before CI or production.
Recommended Local Kubernetes Setup on M1/M2
- Rancher Desktop: best all-around free option with:
- Integrated Kubernetes cluster management UI.
- Built-in containerd and nerdctl.
- Automatic handling of multi-arch images.
- OrbStack: best for performance-sensitive laptops:
- Very fast startup.
- Minimal CPU/RAM overhead when idle.
Aligning Local Dev with EKS/GKE/AKS
To reduce "works locally but fails in CI" problems:
- Match your local Kubernetes version to the version used in EKS/GKE/AKS.
- Keep
kubectlandhelmversions aligned with your cluster versions. - Standardize local environments across the team as part of platform engineering.
THNKBIG's Kubernetes consulting team helps organizations standardize development environments and platform tooling. Contact us for guidance on aligning local Kubernetes setups with your production clusters.
Explore Our Solutions
Related Reading
Image Registry Snowed In: What You Need to Know About the k8s.gcr.io Freeze
Prepare for the Kubernetes image registry migration from k8s.gcr.io to registry.k8s.io. Timeline, impact assessment, and migration steps.
KubeCon 2022 Recap: Insights from the Kubernetes Community
Running GPU Workloads on Kubernetes: A Practical Guide
GPUs on Kubernetes require more than just installing drivers. Learn how to schedule, share, and optimize GPU resources for AI/ML workloads at scale.
THNKBIG Team
Engineering Insights
Expert infrastructure engineers at THNKBIG, specializing in Kubernetes, cloud platforms, and AI/ML operations.
Ready to make AI operational?
Whether you're planning GPU infrastructure, stabilizing Kubernetes, or moving AI workloads into production — we'll assess where you are and what it takes to get there.
US-based team · All US citizens · Continental United States only