Configuration
Configuring your cluster
Basic Configuration
Most minikube configuration is done via the flags interface. To see which flags are possible for the start command, run:
minikube start --help
Persistent Configuration
minikube allows users to persistently store new default values to be used across all profiles, using the minikube config
command. This is done providing a property name, and a property value.
For example, to persistently configure minikube to use hyperkit:
minikube config set driver hyperkit
You can get a complete list of configurable fields using:
minikube config --help
To get a list of the currently set config properties:
minikube config view
Kubernetes configuration
minikube allows users to configure the Kubernetes components with arbitrary values. To use this feature, you can use the --extra-config
flag on the minikube start
command.
This flag is repeated, so you can pass it several times with several different values to set multiple options.
Selecting a Kubernetes version
By default, minikube installs the latest stable version of Kubernetes that was available at the time of the minikube release. You may select a different Kubernetes release by using the --kubernetes-version
flag, for example:
minikube start --kubernetes-version=v1.11.10
minikube follows the Kubernetes Version and Version Skew Support Policy, so we guarantee support for the latest build for the last 3 minor Kubernetes releases. When practical, minikube aims to support older releases as well so that users can emulate legacy environments.
For up to date information on supported versions, see OldestKubernetesVersion
and NewestKubernetesVersion
in constants.go
Enabling feature gates
Kubernetes alpha/experimental features can be enabled or disabled by the --feature-gates
flag on the minikube start
command. It takes a string of the form key=value
where key is the component
name and value is the status
of it.
minikube start --feature-gates=EphemeralContainers=true
Modifying Kubernetes defaults
The kubeadm bootstrapper can be configured by the --extra-config
flag on the minikube start
command. It takes a string of the form component.key=value
where component
is one of the strings
- kubeadm
- kubelet
- apiserver
- controller-manager
- scheduler
and key=value
is a flag=value pair for the component being configured. For example,
minikube start --extra-config=apiserver.v=10 --extra-config=kubelet.max-pods=100
For instance, to allow Kubernetes to launch on an unsupported Docker release:
minikube start --extra-config=kubeadm.ignore-preflight-errors=SystemVerification
Runtime configuration
The default container runtime in minikube is Docker. You can select it explicitly by using:
minikube start --container-runtime=docker
Other options available are:
Environment variables
minikube supports passing environment variables instead of flags for every value listed in minikube config
. This is done by passing an environment variable with the prefix MINIKUBE_
.
For example the minikube start --iso-url="$ISO_URL"
flag can also be set by setting the MINIKUBE_ISO_URL="$ISO_URL"
environment variable.
Exclusive environment tunings
Some features can only be accessed by minikube specific environment variables, here is a list of these features:
MINIKUBE_HOME - (string) sets the path for the .minikube directory that minikube uses for state/configuration. Please note: this is used only by minikube and does not affect anything related to Kubernetes tools such as kubectl.
MINIKUBE_IN_STYLE - (bool) manually sets whether or not emoji and colors should appear in minikube. Set to false or 0 to disable this feature, true or 1 to force it to be turned on.
MINIKUBE_WANTUPDATENOTIFICATION - (bool) sets whether the user wants an update notification for new minikube versions
MINIKUBE_REMINDERWAITPERIODINHOURS - (int) sets the number of hours to check for an update notification
CHANGE_MINIKUBE_NONE_USER - (bool) automatically change ownership of ~/.minikube to the value of $SUDO_USER
MINIKUBE_ENABLE_PROFILING - (int,
1
enables it) enables trace profiling to be generated for minikube
Example: Disabling emoji
export MINIKUBE_IN_STYLE=false
minikube start
Making environment values persistent
To make the exported variables persistent across reboots:
- Linux and macOS: Add these declarations to
~/.bashrc
or wherever your shells environment variables are stored. - Windows: Add these declarations via system settings or using setx
Last modified December 1, 2020: Add missing language to code blocks (f6a770e0a)