- Quickly getting started trying out the ngrok Operator
- Local development & testing
- Connecting containerized workloads on your local machine to your ngrok infrastructure
- Faster iteration cycles without cloud latency
Choosing a Container Runtime
Before setting up a local Kubernetes cluster, you need a container runtime. The container runtime is responsible for running containers, managing their lifecycle, and handling networking. If you don’t already have a container runtime such as Docker installed, choose one from the options below.Runtime | OS Support | Architecture Support | Description |
---|---|---|---|
Docker Engine | Linux, ⚠️ Windows (WSL2 required) | x86_64, ARM64 | Standard CLI-based runtime. Great for users who need a lightweight container runtime without a GUI. |
Docker Desktop | Linux, macOS, Windows | x86_64, ARM64 (Apple Silicon) | GUI-based runtime. Great for developers who want an easy-to-use experience with a dashboard. |
Containerd | Linux, Windows | x86_64, ARM64, s390x, ppc64le | Minimalist, Kubernetes-native runtime. Great for Kubernetes users who need a lightweight runtime without Docker dependencies. |
Colima | Linux, macOS | x86_64, ARM64 (Apple Silicon) | macOS-native alternative to Docker Desktop. Great for Mac users looking for a lightweight and fast Docker-compatible runtime. |
Choosing a Cluster Provider
Select one of the following options for running Kubernetes inside containers on your local machine.Provider | Benefits | Things to consider |
---|---|---|
k3d | Lightweight (runs on K3s), fast cluster creation, low memory/CPU usage | Heavily focused on local development, making it more feature-limited |
Minikube | Official Kubernetes project, easy to use, supports multiple drivers | Compared to others may be slower and consume more CPU/memory |
kind | Multi-node clusters in Docker, great for testing, CI/CD | Focused on testing, other options may be better for local development |
Microk8s | Lightweight, full Kubernetes experience, easy to install | Config not automatically added to Kubeconfig, requires manual addition |
Docker Desktop | Simple interface, Kubernetes support | GUI-based, may be slower than other options |
Basic commands
Managing Kubernetes Contexts
When working with multiple Kubernetes clusters (e.g., Minikube, k3d, kind, MicroK8s, cloud clusters), it is important to manage kubeconfig contexts efficiently. A context in Kubernetes determines:- Which cluster
kubectl
is communicating with. - Which user credentials to use for authentication.
- Which namespace is the default for commands.
~/.kube/config
).
The $KUBECONFIG
environment variable is used by kubectl
to know where your configuration file is.
If you would like to store it somewhere else, or use different files for different clusters, you can modify the $KUBECONFIG
variable.
Viewing the Current Context
To check which Kubernetes cluster you are currently using:Listing All Contexts
To see all available Kubernetes contexts in your kubeconfig:- Cluster Name (e.g., minikube, kind-my-cluster, k3d-my-cluster).
- User Credentials.
- Current Context (marked with *).