minikube start

minikube 是本地 Kubernetes,专注于使 Kubernetes 的学习和开发变得容易。

你只需要 Docker(或类似兼容的)容器或虚拟机环境,Kubernetes 只需一个命令即可启动:minikube start

你需要什么

1安装

单击描述你的目标平台的按钮。对于其他架构,请参阅发布页面以获取完整的 minikube 二进制文件列表。

操作系统

架构

发布类型

安装程序类型

安装程序类型

发布类型

安装程序类型

安装程序类型

发布类型

安装程序类型

安装程序类型

发布类型

安装程序类型

安装程序类型

发布类型

安装程序类型

安装程序类型

架构

发布类型

安装程序类型

安装程序类型

发布类型

安装程序类型

安装程序类型

架构

发布类型

安装程序类型

安装程序类型

要使用二进制文件下载x86-64 Linux 上安装最新的 minikube 稳定版

curl -LO https://github.com/kubernetes/minikube/releases/latest/download/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64

要使用二进制文件下载x86-64 Linux 上安装最新的 minikube 测试版

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 && rm minikube-linux-amd64

要使用 Debian 包x86-64 Linux 上安装最新的 minikube 稳定版

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

要使用 Debian 包x86-64 Linux 上安装最新的 minikube 测试版

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

要使用 RPM 包x86-64 Linux 上安装最新的 minikube 稳定版

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

要使用 RPM 包x86-64 Linux 上安装最新的 minikube 测试版

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

要使用二进制文件下载ARM64 Linux 上安装最新的 minikube 稳定版

curl -LO https://github.com/kubernetes/minikube/releases/latest/download/minikube-linux-arm64
sudo install minikube-linux-arm64 /usr/local/bin/minikube && rm minikube-linux-arm64

要使用二进制文件下载ARM64 Linux 上安装最新的 minikube 测试版

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 && rm minikube-linux-arm64

要使用 Debian 包ARM64 Linux 上安装最新的 minikube 稳定版

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

要使用 Debian 包ARM64 Linux 上安装最新的 minikube 测试版

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

要使用 RPM 包ARM64 Linux 上安装最新的 minikube 稳定版

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

要使用 RPM 包ARM64 Linux 上安装最新的 minikube 测试版

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

要使用二进制文件下载ppc64 Linux 上安装最新的 minikube 稳定版

curl -LO https://github.com/kubernetes/minikube/releases/latest/download/minikube-linux-ppc64le
sudo install minikube-linux-ppc64le /usr/local/bin/minikube && rm minikube-linux-ppc64le

要使用二进制文件下载ppc64 Linux 上安装最新的 minikube 测试版

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 && rm minikube-linux-ppc64le

要使用 Debian 包ppc64 Linux 上安装最新的 minikube 稳定版

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

要使用 Debian 包ppc64 Linux 上安装最新的 minikube 测试版

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

要使用 RPM 包ppc64 Linux 上安装最新的 minikube 稳定版

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

要使用 RPM 包ppc64 Linux 上安装最新的 minikube 测试版

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

要使用二进制文件下载S390x Linux 上安装最新的 minikube 稳定版

curl -LO https://github.com/kubernetes/minikube/releases/latest/download/minikube-linux-s390x
sudo install minikube-linux-s390x /usr/local/bin/minikube && rm minikube-linux-s390x

要使用二进制文件下载S390x Linux 上安装最新的 minikube 测试版

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 && rm minikube-linux-s390x

要使用 Debian 包S390x Linux 上安装最新的 minikube 稳定版

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

要使用 Debian 包S390x Linux 上安装最新的 minikube 测试版

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

要使用 RPM 包S390x Linux 上安装最新的 minikube 稳定版

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

要使用 RPM 包S390x Linux 上安装最新的 minikube 测试版

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

要使用二进制文件下载ARMv7 Linux 上安装最新的 minikube 稳定版

curl -LO https://github.com/kubernetes/minikube/releases/latest/download/minikube-linux-arm
sudo install minikube-linux-arm /usr/local/bin/minikube && rm minikube-linux-arm

要使用二进制文件下载ARMv7 Linux 上安装最新的 minikube 测试版

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 && rm minikube-linux-arm

要使用 Debian 包ARMv7 Linux 上安装最新的 minikube 稳定版

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

要使用 Debian 包ARMv7 Linux 上安装最新的 minikube 测试版

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

要使用 RPM 包ARMv7 Linux 上安装最新的 minikube 稳定版

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

要使用 RPM 包ARMv7 Linux 上安装最新的 minikube 测试版

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

x86-64 macOS 上使用 Homebrew 安装最新的 minikube 稳定版本

如果已安装 Homebrew 包管理器

brew install minikube

如果在通过 brew 安装后 which minikube 失败,您可能需要删除旧的 minikube 链接并链接新安装的二进制文件

brew unlink minikube
brew link minikube

x86-64 macOS 上使用二进制文件下载安装最新的 minikube 稳定版本

curl -LO https://github.com/kubernetes/minikube/releases/latest/download/minikube-darwin-amd64
sudo install minikube-darwin-amd64 /usr/local/bin/minikube

x86-64 macOS 上使用二进制文件下载安装最新的 minikube 测试版本

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

ARM64 macOS 上使用二进制文件下载安装最新的 minikube 稳定版本

curl -LO https://github.com/kubernetes/minikube/releases/latest/download/minikube-darwin-arm64
sudo install minikube-darwin-arm64 /usr/local/bin/minikube

ARM64 macOS 上使用 Homebrew 安装最新的 minikube 稳定版本

如果已安装 Homebrew 包管理器

brew install minikube

如果在通过 brew 安装后 which minikube 失败,您可能需要删除旧的 minikube 链接并链接新安装的二进制文件

brew unlink minikube
brew link minikube

ARM64 macOS 上使用二进制文件下载安装最新的 minikube 测试版本

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

x86-64 Windows 上使用 Windows 包管理器安装最新的 minikube 稳定版本

如果已安装 Windows 包管理器,请使用以下命令安装 minikube

winget install Kubernetes.minikube

x86-64 Windows 上使用 Chocolatey 安装最新的 minikube 稳定版本

如果已安装 Chocolatey 包管理器,请使用以下命令

choco install minikube

x86-64 Windows 上使用 .exe 下载安装最新的 minikube 稳定版本

  1. 下载并运行 最新版本的安装程序。
    或者,如果使用 PowerShell,请使用此命令

    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
    
  2. minikube.exe 二进制文件添加到您的 PATH
    请确保以管理员身份运行 PowerShell。

    $oldPath = [Environment]::GetEnvironmentVariable('Path', [EnvironmentVariableTarget]::Machine)
    if ($oldPath.Split(';') -inotcontains 'C:\minikube'){
      [Environment]::SetEnvironmentVariable('Path', $('{0};C:\minikube' -f $oldPath), [EnvironmentVariableTarget]::Machine)
    }
    
    如果您使用终端(如 powershell)进行安装,请关闭终端并重新打开,然后再运行 minikube。

x86-64 Windows 上使用 .exe 下载安装最新的 minikube 测试版本

  1. 下载并运行 最新测试版本的安装程序。
    或者,如果使用 PowerShell,请使用此命令

    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
    
  2. minikube.exe 二进制文件添加到您的 PATH
    请确保以管理员身份运行 PowerShell。

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

    如果您使用 CLI 执行安装,则需要在继续操作之前关闭该 CLI 并打开一个新的 CLI。

2启动您的集群

从具有管理员权限(但不是以 root 用户身份登录)的终端运行

minikube start

如果 minikube 启动失败,请参阅 驱动程序页面,以获取有关设置兼容的容器或虚拟机管理器的帮助。

3与您的集群交互

如果您已经安装了 kubectl(请参阅文档),您现在可以使用它来访问您全新的集群

kubectl get po -A

或者,minikube 可以下载相应版本的 kubectl,您应该可以像这样使用它

minikube kubectl -- get po -A

您还可以通过将以下内容添加到您的 shell 配置中来简化您的生活:(有关更多详细信息,请参阅:kubectl

alias kubectl="minikube kubectl --"

最初,某些服务(如存储 provisioner)可能尚未处于“Running”状态。 这是集群启动期间的正常情况,并且会立即自行解决。 为了进一步了解您的集群状态,minikube 捆绑了 Kubernetes 仪表板,让您可以轻松适应新环境

minikube dashboard

4部署应用程序

创建一个示例部署并将其暴露在端口 8080 上

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

可能需要一些时间,但当您运行

kubectl get services hello-minikube

访问此服务的最简单方法是让 minikube 为您启动一个 Web 浏览器

minikube service hello-minikube

或者,使用 kubectl 转发端口

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

成功! 您的应用程序现在可以在 http://localhost:7080/ 上访问。

您应该能够在应用程序输出中看到请求元数据。 尝试更改请求的路径并观察变化。 类似地,您可以执行 POST 请求并观察输出中显示的请求体。

要访问 LoadBalancer 部署,请使用“minikube tunnel”命令。 这是一个示例部署

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

在另一个窗口中,启动隧道以为“balanced”部署创建一个可路由的 IP

minikube tunnel

要查找可路由的 IP,请运行此命令并检查 EXTERNAL-IP

kubectl get services balanced

您的部署现在可以在 <EXTERNAL-IP>:8080 上访问

启用 ingress 插件

minikube addons enable ingress

以下示例创建简单的 echo-server 服务和一个 Ingress 对象来路由到这些服务。

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

应用内容

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

等待入口地址

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

Docker Desktop 用户注意事项
要使入口正常工作,您需要打开一个新的终端窗口并运行 minikube tunnel,并在下一步中使用 127.0.0.1 代替 <ip_from_above>

现在验证入口是否正常工作

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

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

5管理您的集群

暂停 Kubernetes 而不影响已部署的应用程序

minikube pause

取消暂停已暂停的实例

minikube unpause

停止集群

minikube stop

更改默认内存限制(需要重新启动)

minikube config set memory 9001

浏览易于安装的 Kubernetes 服务目录

minikube addons list

创建第二个运行旧版本 Kubernetes 的集群

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

删除所有 minikube 集群

minikube delete --all

下一步