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

--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.

SEE ALSO

kubectl(1), minikube(1)

Copied to clipboard