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 varies. You can select one explicitly by using:
minikube start --container-runtime=docker
Options available are:
See https://kubernetes.io/docs/setup/production-environment/container-runtimes/
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. If you specify it to
/path/to/somewhere
andsomewhere
is not equal to.minikube
, the final MINIKUBE_HOME will be/path/to/somewhere/.minikube
. Defaults to~/.minikube
if unspecified. 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.
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 minikubeMINIKUBE_SUPPRESS_DOCKER_PERFORMANCE - (bool) suppresses Docker performance warnings when Docker is slow
Example: Disabling emoji
export MINIKUBE_IN_STYLE=false
minikube start
export MINIKUBE_IN_STYLE=false
minikube start
$env: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: Either add these declarations to your
~\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
or run the following in a PowerShell terminal:
[Environment]::SetEnvironmentVariable("key", "value", [EnvironmentVariableTarget]::User)
Last modified February 13, 2023: Clarify the current setting logic of MINIKUBE_HOME (6eb7444ec)