minikube-start
Start a local Kubernetes cluster (minikube)
TLDR
Start minikube with a specific Kubernetes version
Start minikube with specific resource allocations (e.g., memory and CPU)
Start minikube with a specific driver (e.g., VirtualBox)
Start minikube in the background (headless mode)
Start minikube with custom add-ons (e.g., the metrics server)
SYNOPSIS
minikube start [flags]
PARAMETERS
--apiserver-ips strings
A set of apiserver IPs that users will be able to reach the apiserver on.
--apiserver-name string
The authoritative name for the apiserver. Not valid with --apiserver-ips.
--apiserver-names strings
A set of apiserver names that will be exposed in the kubelet's server certificate.
--apiserver-port int
The apiserver port. Defaults to a random port.
--base-image string
The base image to use for minikube cluster.
--container-runtime string
The container runtime to be used. Possible values: docker, crio, containerd.
--cpus int
Number of CPUs allocated to the minikube VM (default = 2).
--disk-size string
Disk size allocated to the minikube VM (e.g., '20g').
--driver string
Driver is one of the supported drivers: docker, virtualbox, vmwarefusion, kvm2, hyperv, none (default = docker).
--dry-run
dry-run mode. Validates configuration and displays the command that would be executed.
--embed-certs
Embed the cluster CA certificates in kubeconfig (default: true).
--force
Force minikube to perform operations even if they are not safe.
--gpus string
Enable experimental NVIDIA GPU support in minikube (default = 'false').
--host-dns-resolver
Enable host DNS resolver for the container runtime.
--image-mirror-country string
Country code of the image mirror to be used. Leave empty to use the global default.
--insecure-registry strings
Insecure Docker registries to pass to the container runtime.
--kubernetes-version string
The Kubernetes version to use (e.g., 'v1.28.0').
--memory int
Amount of RAM allocated to the minikube VM in MB (default = 2048).
--network string
Network to run minikube with.
--no-kubernetes
Do not start the Kubernetes system.
--nodes int
The number of nodes to spin up. Defaults to 1.
--ports strings
List of ports that should be exposed. Example: '8080:80,443:443'.
--registry-mirror strings
Registry mirrors to pass to the container runtime.
--rootless
Run minikube in rootless mode (requires container runtime support).
--service-cluster-ip-range string
Kubernetes service cluster IP range (default = '10.96.0.0/12').
--vm
Filter to allow only VM drivers.
--wait strings
comma separated list of Kubernetes components to wait for, e.g., 'kube-apiserver,kube-scheduler'.
DESCRIPTION
The `minikube start` command is the primary way to initiate a single-node Kubernetes cluster on your local machine. It simplifies the process of setting up a Kubernetes environment for development, testing, and learning. Minikube supports multiple Kubernetes versions and virtual machine drivers (like VirtualBox, Docker, or even bare-metal). When executed, it creates a virtual machine (or container, depending on your driver) and installs the necessary Kubernetes components, including the API server, scheduler, kubelet, and kube-proxy. You can configure various aspects of the cluster, such as the Kubernetes version, amount of memory allocated to the VM, and networking settings. After starting, you can interact with the cluster using `kubectl`, the Kubernetes command-line tool. `minikube start` helps you to avoid complexity setting up a cluster by yourself and provides a simple user interface, to get a cluster up and running quickly.
Note: Requires administrator privileges for certain driver configurations.
CAVEATS
Starting minikube may require administrator privileges, especially when using drivers like VirtualBox or Hyper-V. Network configurations might need to be adjusted to allow communication between the host and the minikube VM.
TROUBLESHOOTING
If minikube fails to start, check the driver configuration, resource availability (CPU, memory, disk space), and network settings. Consult the minikube documentation for specific error messages and troubleshooting steps.
PROFILES
Minikube support profiles, which allows to manage multiple independent clusters. You can create different profiles with different kubernetes version, cpu and memory allocation. This is managed using the 'minikube profile' command.
HISTORY
Minikube was created to provide a lightweight Kubernetes environment for local development. Its popularity grew as developers sought an easier way to learn and experiment with Kubernetes without the complexity of setting up a full-fledged cluster. Over time, it has evolved to support multiple drivers, Kubernetes versions, and configuration options, becoming a staple tool in the Kubernetes ecosystem.