LinuxCommandLibrary

minikube-start

Start a local Kubernetes cluster (minikube)

TLDR

Start minikube with a specific Kubernetes version

$ minikube start --kubernetes-version [v1.24.0]
copy

Start minikube with specific resource allocations (e.g., memory and CPU)
$ minikube start --memory [2048] --cpus [2]
copy

Start minikube with a specific driver (e.g., VirtualBox)
$ minikube start --driver [virtualbox]
copy

Start minikube in the background (headless mode)
$ minikube start --background
copy

Start minikube with custom add-ons (e.g., the metrics server)
$ minikube start --addons [metrics-server]
copy

SYNOPSIS

minikube start [flags]

PARAMETERS

--driver
    Specifies the virtualization driver to use (e.g., docker, virtualbox, kvm2, hyperkit, podman, none).

--memory
    Amount of RAM to allocate to the Minikube VM (e.g., 4096mb, 4gb).

--cpus
    Number of CPUs to allocate to the Minikube VM.

--kubernetes-version
    Specifies the Kubernetes version to use for the cluster (e.g., v1.28.3).

--addons
    Enables specific Minikube addons upon cluster creation or restart (e.g., dashboard, ingress, comma-separated for multiple).

--profile
    Specifies the Minikube profile to use. This allows running multiple independent Minikube clusters.

--disk-size
    Disk size to allocate to the Minikube VM (e.g., 20gb).

--network-plugin
    Specifies the CNI network plugin to use within the cluster.

--container-runtime
    Specifies the container runtime to use (e.g., containerd, docker).

DESCRIPTION

The minikube start command is fundamental to using Minikube, a tool that runs a single-node Kubernetes cluster locally on your machine. Its primary function is to initialize or restart your Minikube cluster, making a Kubernetes environment available for development and testing purposes.

When executed for the first time, minikube start downloads necessary components (like the Kubernetes image and a compatible Docker daemon) and configures the chosen virtualization driver (e.g., Docker, VirtualBox, KVM, HyperKit) to launch a virtual machine or container that hosts the Kubernetes control plane and node components. For subsequent runs, it quickly restarts the existing cluster.

This command is crucial for anyone looking to develop or test Kubernetes applications without needing a full-blown cloud-based cluster, providing a lightweight and isolated environment.

CAVEATS

Requires a compatible virtualization environment (e.g., Docker Desktop, VirtualBox, KVM) to be installed and running on your system, depending on the chosen --driver. It can consume significant system resources (CPU, RAM, disk space) depending on the allocated values, which might impact overall system performance. Network configuration issues or conflicts with existing VPNs can sometimes prevent the cluster from starting correctly. Ensure your user has appropriate permissions for the chosen driver (e.g., Docker group membership for Docker driver, KVM permissions for KVM2 driver).

PREREQUISITES

Before running minikube start, ensure you have a virtualization driver installed and configured (e.g., Docker Desktop, VirtualBox, KVM, HyperKit). It's also recommended to have kubectl installed and configured to interact with your cluster once it's started.

INTERACTION WITH KUBECTL

Once Minikube has successfully started a cluster, it automatically configures your kubectl context to point to this new local cluster. You can then use standard kubectl commands (e.g., kubectl get nodes, kubectl get pods --all-namespaces) to interact with and manage your local Kubernetes environment.

HISTORY

Minikube was initially developed by Google and later became a CNCF (Cloud Native Computing Foundation) project under Kubernetes SIGs (Special Interest Groups). It emerged as a solution to simplify local Kubernetes development, addressing the complexity of setting up and managing a full-fledged Kubernetes cluster. Its development has focused on providing a stable, easy-to-use, and highly configurable local Kubernetes environment, continually adapting to new virtualization technologies and Kubernetes versions.

SEE ALSO

minikube(1), minikube stop(1), minikube delete(1), minikube status(1), kubectl(1)

Copied to clipboard