minikube is local Kubernetes, focusing on making it easy to learn and develop for Kubernetes.

All you need is Docker (or similarly compatible) container or a Virtual Machine environment, and Kubernetes is a single command away: minikube start

What you’ll need

  • 2 CPUs or more
  • 2GB of free memory
  • 20GB of free disk space
  • Internet connection
  • Container or virtual machine manager, such as: Docker , QEMU , Hyperkit , Hyper-V , KVM , Parallels , Podman , VirtualBox , or VMware Fusion/Workstation
  • 1 Installation

    Click on the buttons that describe your target platform. For other architectures, see the release page for a complete list of minikube binaries.

    Operating system

    To install the latest minikube stable release on x86-64 Linux using binary download :

    curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
    sudo install minikube-linux-amd64 /usr/local/bin/minikube
    

    To install the latest minikube beta release on x86-64 Linux using binary download:

    r=https://api.github.com/repos/kubernetes/minikube/releases
    curl -LO $(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube-linux-amd64' | head -n1)
    sudo install minikube-linux-amd64 /usr/local/bin/minikube
    

    To install the latest minikube stable release on x86-64 Linux using Debian package:

    curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
    sudo dpkg -i minikube_latest_amd64.deb
    

    To install the latest minikube beta release on x86-64 Linux using Debian package:

    r=https://api.github.com/repos/kubernetes/minikube/releases
    u=$(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube_.*_amd64.deb' | head -n1)
    curl -L $u > minikube_beta_amd64.deb && sudo dpkg -i minikube_beta_amd64.deb
    

    To install the latest minikube stable release on x86-64 Linux using RPM package:

    curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-latest.x86_64.rpm
    sudo rpm -Uvh minikube-latest.x86_64.rpm
    

    To install the latest minikube beta release on x86-64 Linux using RPM package:

    r=https://api.github.com/repos/kubernetes/minikube/releases
    u=$(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube-.*.x86_64.rpm' | head -n1)
    curl -L $u > minikube-beta.x86_64.rpm && sudo rpm -Uvh minikube-beta.x86_64.rpm
    

    To install the latest minikube stable release on ARM64 Linux using binary download:

    curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-arm64
    sudo install minikube-linux-arm64 /usr/local/bin/minikube
    

    To install the latest minikube beta release on ARM64 Linux using binary download:

    r=https://api.github.com/repos/kubernetes/minikube/releases
    curl -LO $(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube-linux-arm64' | head -n1)
    sudo install minikube-linux-arm64 /usr/local/bin/minikube
    

    To install the latest minikube stable release on ARM64 Linux using Debian package:

    curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_arm64.deb
    sudo dpkg -i minikube_latest_arm64.deb
    

    To install the latest minikube beta release on ARM64 Linux using Debian package:

    r=https://api.github.com/repos/kubernetes/minikube/releases
    u=$(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube_.*_arm64.deb' | head -n1)
    curl -L $u > minikube_beta_arm64.deb && sudo dpkg -i minikube_beta_arm64.deb
    

    To install the latest minikube stable release on ARM64 Linux using RPM package:

    curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-latest.aarch64.rpm
    sudo rpm -Uvh minikube-latest.aarch64.rpm
    

    To install the latest minikube beta release on ARM64 Linux using RPM package:

    r=https://api.github.com/repos/kubernetes/minikube/releases
    u=$(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube-.*.aarch64.rpm' | head -n1)
    curl -L $u > minikube-beta.aarch64.rpm && sudo rpm -Uvh minikube-beta.aarch64.rpm
    

    To install the latest minikube stable release on ppc64 Linux using binary download:

    curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-ppc64le
    sudo install minikube-linux-ppc64le /usr/local/bin/minikube
    

    To install the latest minikube beta release on ppc64 Linux using binary download:

    r=https://api.github.com/repos/kubernetes/minikube/releases
    curl -LO $(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube-linux-ppc64le' | head -n1)
    sudo install minikube-linux-ppc64le /usr/local/bin/minikube
    

    To install the latest minikube stable release on ppc64 Linux using Debian package:

    curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_ppc64le.deb
    sudo dpkg -i minikube_latest_ppc64le.deb
    

    To install the latest minikube beta release on ppc64 Linux using Debian package:

    r=https://api.github.com/repos/kubernetes/minikube/releases
    u=$(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube_.*_ppc64le.deb' | head -n1)
    curl -L $u > minikube_beta_ppc64le.deb && sudo dpkg -i minikube_beta_ppc64le.deb
    

    To install the latest minikube stable release on ppc64 Linux using RPM package:

    curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-latest.ppc64el.rpm
    sudo rpm -Uvh minikube-latest.ppc64el.rpm
    

    To install the latest minikube beta release on ppc64 Linux using RPM package:

    r=https://api.github.com/repos/kubernetes/minikube/releases
    u=$(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube-.*.ppc64el.rpm' | head -n1)
    curl -L $u > minikube-beta.ppc64el.rpm && sudo rpm -Uvh minikube-beta.ppc64el.rpm
    

    To install the latest minikube stable release on S390x Linux using binary download:

    curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-s390x
    sudo install minikube-linux-s390x /usr/local/bin/minikube
    

    To install the latest minikube beta release on S390x Linux using binary download:

    r=https://api.github.com/repos/kubernetes/minikube/releases
    curl -LO $(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube-linux-s390x' | head -n1)
    sudo install minikube-linux-s390x /usr/local/bin/minikube
    

    To install the latest minikube stable release on S390x Linux using Debian package:

    curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_s390x.deb
    sudo dpkg -i minikube_latest_s390x.deb
    

    To install the latest minikube beta release on S390x Linux using Debian package:

    r=https://api.github.com/repos/kubernetes/minikube/releases
    u=$(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube_.*_s390x.deb' | head -n1)
    curl -L $u > minikube_beta_s390x.deb && sudo dpkg -i minikube_beta_s390x.deb
    

    To install the latest minikube stable release on S390x Linux using RPM package:

    curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-latest.s390x.rpm
    sudo rpm -Uvh minikube-latest.s390x.rpm
    

    To install the latest minikube beta release on S390x Linux using RPM package:

    r=https://api.github.com/repos/kubernetes/minikube/releases
    u=$(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube-.*.s390x.rpm' | head -n1)
    curl -L $u > minikube-beta.s390x.rpm && sudo rpm -Uvh minikube-beta.s390x.rpm
    

    To install the latest minikube stable release on ARMv7 Linux using binary download:

    curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-arm
    sudo install minikube-linux-arm /usr/local/bin/minikube
    

    To install the latest minikube beta release on ARMv7 Linux using binary download:

    r=https://api.github.com/repos/kubernetes/minikube/releases
    curl -LO $(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube-linux-arm' | head -n1)
    sudo install minikube-linux-arm /usr/local/bin/minikube
    

    To install the latest minikube stable release on ARMv7 Linux using Debian package:

    curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_armhf.deb
    sudo dpkg -i minikube_latest_armhf.deb
    

    To install the latest minikube beta release on ARMv7 Linux using Debian package:

    r=https://api.github.com/repos/kubernetes/minikube/releases
    u=$(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube_.*_armhf.deb' | head -n1)
    curl -L $u > minikube_beta_armhf.deb && sudo dpkg -i minikube_beta_armhf.deb
    

    To install the latest minikube stable release on ARMv7 Linux using RPM package:

    curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-latest.armv7hl.rpm
    sudo rpm -Uvh minikube-latest.armv7hl.rpm
    

    To install the latest minikube beta release on ARMv7 Linux using RPM package:

    r=https://api.github.com/repos/kubernetes/minikube/releases
    u=$(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube-.*.armv7hl.rpm' | head -n1)
    curl -L $u > minikube-beta.armv7hl.rpm && sudo rpm -Uvh minikube-beta.armv7hl.rpm
    

    To install the latest minikube stable release on x86-64 macOS using Homebrew:

    If the Homebrew Package Manager is installed:

    brew install minikube
    

    If which minikube fails after installation via brew, you may have to remove the old minikube links and link the newly installed binary:

    brew unlink minikube
    brew link minikube
    

    To install the latest minikube stable release on x86-64 macOS using binary download:

    curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64
    sudo install minikube-darwin-amd64 /usr/local/bin/minikube
    

    To install the latest minikube beta release on x86-64 macOS using binary download:

    r=https://api.github.com/repos/kubernetes/minikube/releases
    curl -LO $(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube-darwin-amd64' | head -n1)
    sudo install minikube-darwin-amd64 /usr/local/bin/minikube
    

    To install the latest minikube stable release on ARM64 macOS using binary download:

    curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-arm64
    sudo install minikube-darwin-arm64 /usr/local/bin/minikube
    

    To install the latest minikube stable release on ARM64 macOS using Homebrew:

    If the Homebrew Package Manager is installed:

    brew install minikube
    

    If which minikube fails after installation via brew, you may have to remove the old minikube links and link the newly installed binary:

    brew unlink minikube
    brew link minikube
    

    To install the latest minikube beta release on ARM64 macOS using binary download:

    r=https://api.github.com/repos/kubernetes/minikube/releases
    curl -LO $(curl -s $r | grep -o 'http.*download/v.*beta.*/minikube-darwin-arm64' | head -n1)
    sudo install minikube-darwin-arm64 /usr/local/bin/minikube
    

    To install the latest minikube stable release on x86-64 Windows using Windows Package Manager:

    If the Windows Package Manager is installed, use the following command to install minikube:

    winget install minikube
    

    To install the latest minikube stable release on x86-64 Windows using Chocolatey:

    If the Chocolatey Package Manager is installed, use the following command:

    choco install minikube
    

    To install the latest minikube stable release on x86-64 Windows using .exe download:

    Download and run the installer for the latest release. Or if using PowerShell, use this command:

    New-Item -Path 'c:\' -Name 'minikube' -ItemType Directory -Force
    Invoke-WebRequest -OutFile 'c:\minikube\minikube.exe' -Uri 'https://github.com/kubernetes/minikube/releases/latest/download/minikube-windows-amd64.exe' -UseBasicParsing
    

    Add the minikube.exe binary to your PATH. Make sure to run PowerShell as Administrator.

    $oldPath = [Environment]::GetEnvironmentVariable('Path', [EnvironmentVariableTarget]::Machine)
    if ($oldPath.Split(';') -inotcontains 'C:\minikube'){
      [Environment]::SetEnvironmentVariable('Path', $('{0};C:\minikube' -f $oldPath), [EnvironmentVariableTarget]::Machine)
     If you used a terminal (like powershell) for the installation, please close the terminal and reopen it before running minikube.
    

    Download and run the installer for the latest beta release. Or if using PowerShell, use this command:

    New-Item -Path 'c:\' -Name 'minikube' -ItemType Directory -Force
    $response = Invoke-WebRequest -Uri 'https://api.github.com/repos/kubernetes/minikube/releases' -UseBasicParsing
    $json = $response.Content | ConvertFrom-Json
    $item = ($json | ?{ $_.prerelease -eq $true })[0].assets | ?{ $_.name -eq 'minikube-windows-amd64.exe' }
    Invoke-WebRequest -Uri $item.browser_download_url -OutFile 'c:\minikube\minikube.exe' -UseBasicParsing
    

    Add the minikube.exe binary to your PATH. Make sure to run PowerShell as Administrator.

    $oldPath = [Environment]::GetEnvironmentVariable('Path', [EnvironmentVariableTarget]::Machine)
    if ($oldPath.Split(';') -inotcontains 'C:\minikube'){
      [Environment]::SetEnvironmentVariable('Path', $('{0};C:\minikube' -f $oldPath), [EnvironmentVariableTarget]::Machine)
    

    If you used a CLI to perform the installation, you will need to close that CLI and open a new one before proceeding.

    2Start your cluster

    From a terminal with administrator access (but not logged in as root), run:

    minikube start
    

    If minikube fails to start, see the drivers page for help setting up a compatible container or virtual-machine manager.

    3Interact with your cluster

    If you already have kubectl installed, you can now use it to access your shiny new cluster:

    kubectl get po -A
    

    Alternatively, minikube can download the appropriate version of kubectl and you should be able to use it like this:

    minikube kubectl -- get po -A
    

    You can also make your life easier by adding the following to your shell config:

    alias kubectl="minikube kubectl --"
    

    Initially, some services such as the storage-provisioner, may not yet be in a Running state. This is a normal condition during cluster bring-up, and will resolve itself momentarily. For additional insight into your cluster state, minikube bundles the Kubernetes Dashboard, allowing you to get easily acclimated to your new environment:

    minikube dashboard
    

    4Deploy applications

    Create a sample deployment and expose it on port 8080:

    kubectl create deployment hello-minikube --image=kicbase/echo-server:1.0
    kubectl expose deployment hello-minikube --type=NodePort --port=8080
    

    It may take a moment, but your deployment will soon show up when you run:

    kubectl get services hello-minikube
    

    The easiest way to access this service is to let minikube launch a web browser for you:

    minikube service hello-minikube
    

    Alternatively, use kubectl to forward the port:

    kubectl port-forward service/hello-minikube 7080:8080
    

    Tada! Your application is now available at http://localhost:7080/.

    You should be able to see the request metadata in the application output. Try changing the path of the request and observe the changes. Similarly, you can do a POST request and observe the body show up in the output.

    To access a LoadBalancer deployment, use the “minikube tunnel” command. Here is an example deployment:

    kubectl create deployment balanced --image=kicbase/echo-server:1.0
    kubectl expose deployment balanced --type=LoadBalancer --port=8080
    

    In another window, start the tunnel to create a routable IP for the ‘balanced’ deployment:

    minikube tunnel
    

    To find the routable IP, run this command and examine the EXTERNAL-IP column:

    kubectl get services balanced
    

    Your deployment is now available at <EXTERNAL-IP>:8080

    Enable ingress addon:

    minikube addons enable ingress
    

    The following example creates simple echo-server services and an Ingress object to route to these services.

    kind: Pod
    apiVersion: v1
    metadata:
      name: foo-app
      labels:
        app: foo
    spec:
      containers:
        - name: foo-app
          image: 'kicbase/echo-server:1.0'
    kind: Service
    apiVersion: v1
    metadata:
      name: foo-service
    spec:
      selector:
        app: foo
      ports:
        - port: 8080
    kind: Pod
    apiVersion: v1
    metadata:
      name: bar-app
      labels:
        app: bar
    spec:
      containers:
        - name: bar-app
          image: 'kicbase/echo-server:1.0'
    kind: Service
    apiVersion: v1
    metadata:
      name: bar-service
    spec:
      selector:
        app: bar
      ports:
        - port: 8080
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: example-ingress
    spec:
      rules:
        - http:
            paths:
              - pathType: Prefix
                path: /foo
                backend:
                  service:
                    name: foo-service
                    port:
                      number: 8080
              - pathType: Prefix
                path: /bar
                backend:
                  service:
                    name: bar-service
                    port:
                      number: 8080
    

    Apply the contents

    kubectl apply -f https://storage.googleapis.com/minikube-site-examples/ingress-example.yaml
    

    Wait for ingress address

    kubectl get ingress
    NAME              CLASS   HOSTS   ADDRESS          PORTS   AGE
    example-ingress   nginx   *       <your_ip_here>   80      5m45s
    

    Note for Docker Desktop Users: To get ingress to work you’ll need to open a new terminal window and run minikube tunnel and in the following step use 127.0.0.1 in place of <ip_from_above>.

    Now verify that the ingress works

    $ curl <ip_from_above>/foo
    Request served by foo-app
    $ curl <ip_from_above>/bar
    Request served by bar-app
    

    5Manage your cluster

    Pause Kubernetes without impacting deployed applications:

    minikube pause
    

    Unpause a paused instance:

    minikube unpause
    

    Halt the cluster:

    minikube stop
    

    Change the default memory limit (requires a restart):

    minikube config set memory 9001
    

    Browse the catalog of easily installed Kubernetes services:

    minikube addons list
    

    Create a second cluster running an older Kubernetes release:

    minikube start -p aged --kubernetes-version=v1.16.1
    

    Delete all of the minikube clusters:

    minikube delete --all
    

    Take the next step

  • The minikube handbook
  • Community-contributed tutorials
  • minikube command reference
  • Contributors guide
  • Take our fast 5-question survey to share your thoughts 🙏
  •