I get error message "runtime error: index out of range [0] with length 0" when I try to start minikube

I get error message "runtime error: index out of range [0] with length 0" when I try to start minikube

也许这是一个新手问题,我正在安装 minikube。当我尝试启动 minikube (minikube start --vm-driver hyperv --hyperv-virtual-switch "MiniKube" --alsologtostderr -v=8 --memory=2000) 时,我在日志中看到一条错误消息 (panic: runtime error: index out of range [0] with length 0):

I0410 07:24:15.123609    1724 main.go:110] libmachine: [executing ==>] : C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive @(Get-Module -ListAvailable hyper-v).Name | Get-Unique
I0410 07:24:15.339794    1724 main.go:110] libmachine: [stdout =====>] :
I0410 07:24:15.339794    1724 main.go:110] libmachine: [stderr =====>] :
I0410 07:24:15.340756    1724 client.go:172] LocalClient.Create took 586.3704ms
panic: runtime error: index out of range [0] with length 0

这是完整的日志:

PS C:\> minikube start --vm-driver hyperv --hyperv-virtual-switch "MiniKube" --alsologtostderr -v=8 --memory=2000
W0410 01:15:52.776702      72 root.go:248] Error reading config file at C:\Users\Cesar\.minikube\config\config.json: open C:\Users\Cesar\.minikube\config\config.json: The system cannot find the path specified.
I0410 01:15:52.780691      72 notify.go:125] Checking for updates...
I0410 01:15:53.293167      72 start.go:262] hostinfo: {"hostname":"DESKTOP-TVHSQJC","uptime":1563,"bootTime":1586497790,"procs":191,"os":"windows","platform":"Microsoft Windows 10 Home Single Language","platformFamily":"Standalone Workstation","platformVersion":"10.0.18362 Build 18362","kernelVersion":"","virtualizationSystem":"","virtualizationRole":"","hostid":"33e72451-872e-4673-b23d-c29f75f4dc35"}
W0410 01:15:53.293167      72 start.go:270] gopshost.Virtualization returned error: not implemented yet
* minikube v1.9.2 en Microsoft Windows 10 Home Single Language 10.0.18362 Build 18362
I0410 01:15:53.362980      72 driver.go:245] Setting default libvirt URI to qemu:///system
* Using the hyperv driver based on user configuration
I0410 01:15:54.783789      72 start.go:310] selected driver: hyperv
I0410 01:15:54.784786      72 start.go:656] validating driver "hyperv" against <nil>
I0410 01:15:54.788061      72 start.go:662] status for hyperv: {Installed:true Healthy:true Error:<nil> Fix: Doc:}
I0410 01:15:54.788775      72 start.go:1210] Wait components to verify : map[apiserver:true system_pods:true]
I0410 01:15:54.789771      72 iso.go:119] acquiring lock: {Name:mk489b460911118cd1582e81f0bed446f9566f30 Clock:{} Delay:500ms Timeout:10m0s Cancel:<nil>}
* Downloading VM boot image ...
I0410 01:15:54.814975      72 iso.go:147] full url: https://storage.googleapis.com/minikube/iso/minikube-v1.9.0.iso?checksum=file:https://storage.googleapis.com/minikube/iso/minikube-v1.9.0.iso.sha256
    > minikube-v1.9.0.iso.sha256: 65 B / 65 B [--------------] 100.00% ? p/s 0s
    > minikube-v1.9.0.iso: 174.93 MiB / 174.93 MiB [ 100.00% 1.82 MiB p/s 1m36s
* Starting control plane node m01 in cluster minikube
I0410 01:17:33.260532      72 preload.go:81] Checking if preload exists for k8s version v1.18.0 and runtime docker
I0410 01:17:33.538319      72 preload.go:114] Found remote preload: https://storage.googleapis.com/minikube-preloaded-volume-tarballs/preloaded-images-k8s-v2-v1.18.0-docker-overlay2-amd64.tar.lz4
I0410 01:17:33.538319      72 cache.go:46] Caching tarball of preloaded images
I0410 01:17:33.542306      72 preload.go:81] Checking if preload exists for k8s version v1.18.0 and runtime docker
I0410 01:17:33.643204      72 preload.go:114] Found remote preload: https://storage.googleapis.com/minikube-preloaded-volume-tarballs/preloaded-images-k8s-v2-v1.18.0-docker-overlay2-amd64.tar.lz4
* Downloading Kubernetes v1.18.0 preload ...
I0410 01:17:33.669080      72 preload.go:144] Downloading: &{Ctx:<nil> Src:https://storage.googleapis.com/minikube-preloaded-volume-tarballs/preloaded-images-k8s-v2-v1.18.0-docker-overlay2-amd64.tar.lz4 Dst:C:\Users\Cesar\.minikube\cache\preloaded-tarball\preloaded-images-k8s-v2-v1.18.0-docker-overlay2-amd64.tar.lz4.download Pwd: Mode:2 Detectors:[] Decompressors:map[] Getters:map[] Dir:false ProgressListener:<nil> Options:[0xc15670]}
    > preloaded-images-k8s-v2-v1.18.0-docker-overlay2-amd64.tar.lz4: 542.91 MiB
I0410 01:22:35.483647      72 preload.go:160] saving checksum for preloaded-images-k8s-v2-v1.18.0-docker-overlay2-amd64.tar.lz4 ...
I0410 01:22:35.794173      72 preload.go:177] verifying checksumm of C:\Users\Cesar\.minikube\cache\preloaded-tarball\preloaded-images-k8s-v2-v1.18.0-docker-overlay2-amd64.tar.lz4.download ...
I0410 01:22:37.049807      72 cache.go:49] Finished downloading the preloaded tar for v1.18.0 on docker
I0410 01:22:37.050808      72 profile.go:138] Saving config to C:\Users\Cesar\.minikube\profiles\minikube\config.json ...
I0410 01:22:37.051804      72 lock.go:35] WriteFile acquiring C:\Users\Cesar\.minikube\profiles\minikube\config.json: {Name:mk135836da876aa669fb2d39bc4acd571651f245 Clock:{} Delay:500ms Timeout:1m0s Cancel:<nil>}
I0410 01:22:37.061190      72 cache.go:117] Successfully downloaded all kic artifacts
I0410 01:22:37.061190      72 start.go:260] acquiring machines lock for minikube: {Name:mk72c8971e0e6c4ad7d34035b9e15502a51a2ea9 Clock:{} Delay:500ms Timeout:15m0s Cancel:<nil>}
I0410 01:22:37.062189      72 start.go:264] acquired machines lock for "minikube" in 0s
I0410 01:22:37.065183      72 start.go:86] Provisioning new machine with config: {Name:minikube KeepContext:false EmbedCerts:false MinikubeISO:https://storage.googleapis.com/minikube/iso/minikube-v1.9.0.iso Memory:2000 CPUs:2 DiskSize:20000 Driver:hyperv HyperkitVpnKitSock: HyperkitVSockPorts:[] DockerEnv:[] InsecureRegistry:[] RegistryMirror:[] HostOnlyCIDR:192.168.99.1/24 HypervVirtualSwitch:MiniKube HypervUseExternalSwitch:false HypervExternalAdapter: KVMNetwork:default KVMQemuURI:qemu:///system KVMGPU:false KVMHidden:false DockerOpt:[] DisableDriverMounts:false NFSShare:[] NFSSharesRoot:/nfsshares UUID: NoVTXCheck:false DNSProxy:false HostDNSResolver:true HostOnlyNicType:virtio NatNicType:virtio KubernetesConfig:{KubernetesVersion:v1.18.0 ClusterName:minikube APIServerName:minikubeCA APIServerNames:[] APIServerIPs:[] DNSDomain:cluster.local ContainerRuntime:docker CRISocket: NetworkPlugin: FeatureGates: ServiceCIDR:10.96.0.0/12 ImageRepository: ExtraOptions:[] ShouldLoadCachedImages:true EnableDefaultCNI:false NodeIP: NodePort:0 NodeName:} Nodes:[{Name:m01 IP: Port:8443 KubernetesVersion:v1.18.0 ControlPlane:true Worker:true}] Addons:map[] VerifyComponents:map[apiserver:true system_pods:true]} {Name:m01 IP: Port:8443 KubernetesVersion:v1.18.0 ControlPlane:true Worker:true}
I0410 01:22:37.065183      72 start.go:107] createHost starting for "m01" (driver="hyperv")
* Creating hyperv VM (CPUs=2, Memory=2000MB, Disk=20000MB) ...
I0410 01:22:37.131796      72 start.go:143] libmachine.API.Create for "minikube" (driver="hyperv")
I0410 01:22:37.132794      72 client.go:169] LocalClient.Create starting
I0410 01:22:37.136784      72 main.go:110] libmachine: Creating CA: C:\Users\Cesar\.minikube\certs\ca.pem
I0410 01:22:37.277444      72 main.go:110] libmachine: Creating client certificate: C:\Users\Cesar\.minikube\certs\cert.pem
I0410 01:22:37.618494      72 main.go:110] libmachine: [executing ==>] : C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive @(Get-Module -ListAvailable hyper-v).Name | Get-Unique
I0410 01:22:37.838183      72 main.go:110] libmachine: [stdout =====>] :
I0410 01:22:37.838183      72 main.go:110] libmachine: [stderr =====>] :
I0410 01:22:37.839147      72 client.go:172] LocalClient.Create took 703.289ms
panic: runtime error: index out of range [0] with length 0

goroutine 162 [running]:
github.com/docker/machine/drivers/hyperv.hypervAvailable(0xc0003b4630, 0xc00021f3f0)
        /go/pkg/mod/github.com/machine-drivers/machine@v0.7.1-0.20200323212942-41eb826190d8/drivers/hyperv/powershell.go:64 +0x105
github.com/docker/machine/drivers/hyperv.(*Driver).PreCreateCheck(0xc0005d4ba0, 0x0, 0x0)
        /go/pkg/mod/github.com/machine-drivers/machine@v0.7.1-0.20200323212942-41eb826190d8/drivers/hyperv/hyperv.go:171 +0x3b
k8s.io/minikube/pkg/minikube/machine.(*LocalClient).Create(0xc000216340, 0xc0005d4c00, 0x0, 0x0)
        /app/pkg/minikube/machine/client.go:229 +0x3f5
k8s.io/minikube/pkg/minikube/machine.timedCreateHost.func2(0x1e08b00, 0xc000216340, 0xc0005d4c00, 0xc0002771d0, 0xc0005300e0)
        /app/pkg/minikube/machine/start.go:170 +0x42
created by k8s.io/minikube/pkg/minikube/machine.timedCreateHost
        /app/pkg/minikube/machine/start.go:169 +0x10e
PS C:\> minikube delete
! "minikube" profile does not exist, trying anyways.
* Removed all traces of the "minikube" cluster.
PS C:\> minikube start --vm-driver hyperv --hyperv-virtual-switch "MiniKube" --alsologtostderr -v=8 --memory=2000
I0410 07:17:24.557312    1724 notify.go:125] Checking for updates...
I0410 07:17:25.094876    1724 start.go:262] hostinfo: {"hostname":"DESKTOP-TVHSQJC","uptime":23254,"bootTime":1586497791,"procs":216,"os":"windows","platform":"Microsoft Windows 10 Home Single Language","platformFamily":"Standalone Workstation","platformVersion":"10.0.18362 Build 18362","kernelVersion":"","virtualizationSystem":"","virtualizationRole":"","hostid":"33e72451-872e-4673-b23d-c29f75f4dc35"}
W0410 07:17:25.094876    1724 start.go:270] gopshost.Virtualization returned error: not implemented yet
* minikube v1.9.2 en Microsoft Windows 10 Home Single Language 10.0.18362 Build 18362
I0410 07:17:25.200591    1724 driver.go:245] Setting default libvirt URI to qemu:///system
* Using the hyperv driver based on user configuration
I0410 07:17:26.923910    1724 start.go:310] selected driver: hyperv
I0410 07:17:26.923910    1724 start.go:656] validating driver "hyperv" against <nil>
I0410 07:17:26.923910    1724 start.go:662] status for hyperv: {Installed:true Healthy:true Error:<nil> Fix: Doc:}
I0410 07:17:26.924950    1724 start.go:1210] Wait components to verify : map[apiserver:true system_pods:true]
I0410 07:17:26.924950    1724 iso.go:119] acquiring lock: {Name:mk489b460911118cd1582e81f0bed446f9566f30 Clock:{} Delay:500ms Timeout:10m0s Cancel:<nil>}
* Downloading VM boot image ...
I0410 07:17:26.959728    1724 iso.go:147] full url: https://storage.googleapis.com/minikube/iso/minikube-v1.9.0.iso?checksum=file:https://storage.googleapis.com/minikube/iso/minikube-v1.9.0.iso.sha256
    > minikube-v1.9.0.iso.sha256: 65 B / 65 B [--------------] 100.00% ? p/s 0s
    > minikube-v1.9.0.iso: 174.93 MiB / 174.93 MiB [ 100.00% 1.80 MiB p/s 1m37s
* Starting control plane node m01 in cluster minikube
I0410 07:19:06.392837    1724 preload.go:81] Checking if preload exists for k8s version v1.18.0 and runtime docker
I0410 07:19:06.811093    1724 preload.go:114] Found remote preload: https://storage.googleapis.com/minikube-preloaded-volume-tarballs/preloaded-images-k8s-v2-v1.18.0-docker-overlay2-amd64.tar.lz4
I0410 07:19:06.812115    1724 cache.go:46] Caching tarball of preloaded images
I0410 07:19:06.818091    1724 preload.go:81] Checking if preload exists for k8s version v1.18.0 and runtime docker
I0410 07:19:06.938300    1724 preload.go:114] Found remote preload: https://storage.googleapis.com/minikube-preloaded-volume-tarballs/preloaded-images-k8s-v2-v1.18.0-docker-overlay2-amd64.tar.lz4
* Downloading Kubernetes v1.18.0 preload ...
I0410 07:19:06.963740    1724 preload.go:144] Downloading: &{Ctx:<nil> Src:https://storage.googleapis.com/minikube-preloaded-volume-tarballs/preloaded-images-k8s-v2-v1.18.0-docker-overlay2-amd64.tar.lz4 Dst:C:\Users\Cesar\.minikube\cache\preloaded-tarball\preloaded-images-k8s-v2-v1.18.0-docker-overlay2-amd64.tar.lz4.download Pwd: Mode:2 Detectors:[] Decompressors:map[] Getters:map[] Dir:false ProgressListener:<nil> Options:[0xc15670]}
    > preloaded-images-k8s-v2-v1.18.0-docker-overlay2-amd64.tar.lz4: 542.91 MiB
I0410 07:24:12.620296    1724 preload.go:160] saving checksum for preloaded-images-k8s-v2-v1.18.0-docker-overlay2-amd64.tar.lz4 ...
I0410 07:24:13.151132    1724 preload.go:177] verifying checksumm of C:\Users\Cesar\.minikube\cache\preloaded-tarball\preloaded-images-k8s-v2-v1.18.0-docker-overlay2-amd64.tar.lz4.download ...
I0410 07:24:14.351294    1724 cache.go:49] Finished downloading the preloaded tar for v1.18.0 on docker
I0410 07:24:14.351294    1724 profile.go:138] Saving config to C:\Users\Cesar\.minikube\profiles\minikube\config.json ...
I0410 07:24:14.352249    1724 lock.go:35] WriteFile acquiring C:\Users\Cesar\.minikube\profiles\minikube\config.json: {Name:mk135836da876aa669fb2d39bc4acd571651f245 Clock:{} Delay:500ms Timeout:1m0s Cancel:<nil>}
I0410 07:24:14.634215    1724 cache.go:117] Successfully downloaded all kic artifacts
I0410 07:24:14.634215    1724 start.go:260] acquiring machines lock for minikube: {Name:mk72c8971e0e6c4ad7d34035b9e15502a51a2ea9 Clock:{} Delay:500ms Timeout:15m0s Cancel:<nil>}
I0410 07:24:14.635218    1724 start.go:264] acquired machines lock for "minikube" in 0s
I0410 07:24:14.639240    1724 start.go:86] Provisioning new machine with config: {Name:minikube KeepContext:false EmbedCerts:false MinikubeISO:https://storage.googleapis.com/minikube/iso/minikube-v1.9.0.iso Memory:2000 CPUs:2 DiskSize:20000 Driver:hyperv HyperkitVpnKitSock: HyperkitVSockPorts:[] DockerEnv:[] InsecureRegistry:[] RegistryMirror:[] HostOnlyCIDR:192.168.99.1/24 HypervVirtualSwitch:MiniKube HypervUseExternalSwitch:false HypervExternalAdapter: KVMNetwork:default KVMQemuURI:qemu:///system KVMGPU:false KVMHidden:false DockerOpt:[] DisableDriverMounts:false NFSShare:[] NFSSharesRoot:/nfsshares UUID: NoVTXCheck:false DNSProxy:false HostDNSResolver:true HostOnlyNicType:virtio NatNicType:virtio KubernetesConfig:{KubernetesVersion:v1.18.0 ClusterName:minikube APIServerName:minikubeCA APIServerNames:[] APIServerIPs:[] DNSDomain:cluster.local ContainerRuntime:docker CRISocket: NetworkPlugin: FeatureGates: ServiceCIDR:10.96.0.0/12 ImageRepository: ExtraOptions:[] ShouldLoadCachedImages:true EnableDefaultCNI:false NodeIP: NodePort:0 NodeName:} Nodes:[{Name:m01 IP: Port:8443 KubernetesVersion:v1.18.0 ControlPlane:true Worker:true}] Addons:map[] VerifyComponents:map[apiserver:true system_pods:true]} {Name:m01 IP: Port:8443 KubernetesVersion:v1.18.0 ControlPlane:true Worker:true}
I0410 07:24:14.639240    1724 start.go:107] createHost starting for "m01" (driver="hyperv")
* Creating hyperv VM (CPUs=2, Memory=2000MB, Disk=20000MB) ...
I0410 07:24:14.750393    1724 start.go:143] libmachine.API.Create for "minikube" (driver="hyperv")
I0410 07:24:14.753426    1724 client.go:169] LocalClient.Create starting
I0410 07:24:14.755381    1724 main.go:110] libmachine: Creating CA: C:\Users\Cesar\.minikube\certs\ca.pem
I0410 07:24:14.928984    1724 main.go:110] libmachine: Creating client certificate: C:\Users\Cesar\.minikube\certs\cert.pem
I0410 07:24:15.123609    1724 main.go:110] libmachine: [executing ==>] : C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive @(Get-Module -ListAvailable hyper-v).Name | Get-Unique
I0410 07:24:15.339794    1724 main.go:110] libmachine: [stdout =====>] :
I0410 07:24:15.339794    1724 main.go:110] libmachine: [stderr =====>] :
I0410 07:24:15.340756    1724 client.go:172] LocalClient.Create took 586.3704ms
panic: runtime error: index out of range [0] with length 0

goroutine 164 [running]:
github.com/docker/machine/drivers/hyperv.hypervAvailable(0xc0003ee8d0, 0xc000266a90)
        /go/pkg/mod/github.com/machine-drivers/machine@v0.7.1-0.20200323212942-41eb826190d8/drivers/hyperv/powershell.go:64 +0x105
github.com/docker/machine/drivers/hyperv.(*Driver).PreCreateCheck(0xc000592420, 0x0, 0x0)
        /go/pkg/mod/github.com/machine-drivers/machine@v0.7.1-0.20200323212942-41eb826190d8/drivers/hyperv/hyperv.go:171 +0x3b
k8s.io/minikube/pkg/minikube/machine.(*LocalClient).Create(0xc000218d80, 0xc000592480, 0x0, 0x0)
        /app/pkg/minikube/machine/client.go:229 +0x3f5
k8s.io/minikube/pkg/minikube/machine.timedCreateHost.func2(0x1e08b00, 0xc000218d80, 0xc000592480, 0xc000215100, 0xc00005e230)
        /app/pkg/minikube/machine/start.go:170 +0x42
created by k8s.io/minikube/pkg/minikube/machine.timedCreateHost
        /app/pkg/minikube/machine/start.go:169 +0x10e

我想启动进程是否执行成功。

PD: 我在执行命令时关闭了防火墙。

您遇到的问题与这一行严格相关:

minikube v1.9.2 en Microsoft Windows 10 Home Single Language 10.0.18362 Build 18362

Windows10首页不支持Hyper-V

引用微软官方页面:

Enable Hyper-V to create virtual machines on Windows 10.
Hyper-V can be enabled in many ways including using the Windows 10 control panel, PowerShell or using the Deployment Imaging Servicing and Management tool (DISM). This documents walks through each option.

Note: Hyper-V is built into Windows as an optional feature -- there is no Hyper-V download.

检查要求

  • Windows 10 企业版、专业版或教育版
  • 具有二级地址转换 (SLAT) 的 64 位处理器。
  • CPU 支持 VM 监视器模式扩展(Intel CPUs 上的 VT-c)。
  • 至少 4 GB 内存。

-- Docs.microsoft.com: Virtualization: Enable hyper v

如您所见,有一项要求禁止将 Hyper-VWindows 10 Home 一起使用。

为了让您的 minikube 正常工作,您可以:

  • 使用不同的管理程序,例如 Virtualbox,然后启动 minikube start --vm-driver=virtualbox
  • Upgrade 你的 Windows 10 到官方支持的版本 Hyper-V