Minikube卡在“Starting VM”步骤上。

3

亲爱的社区成员们,再次见到你们很高兴。

我的v0.33.1 minikube在“Starting VM…”步骤卡住了。我使用Windows 10和HyperV虚拟机。我用以下命令运行我的集群:

minikube start --kubernetes-version="v1.10.11" --memory 4096 --vm-driver hyperv --hyperv-virtual-switch "HyperV Switch"

我的Docker版本是:

Version 2.0.0.3 (31259)
Channel: stable
Build: 8858db3

虚拟机已经启动,但其CPU使用率最终降至0%并停滞不前,Kubectl也无法正常工作。

我已尝试:

  1. 清除用户/.../.minikube下的Minikube缓存
  2. 删除Minikube
  3. 重新安装Minikube和Kubernetes CLI
  4. 重新安装Docker
  5. 在HyperV主机上调整虚拟机

我已经多次注意到相同的问题,通常我只需关闭虚拟机并再次调用 minikube start,大多数情况下都能解决。最新版本更容易出现此问题。 - Diego Mendes
尝试过了,还重新启动了整个机器 ;) 这次不确定出了什么问题 @DiegoMendes - qubits
尝试使用旧版本,当我使用 minikube-0.28 时,很少遇到这个问题。 - Diego Mendes
@DiegoMendes 在哪里可以查看我的示例是否是这种情况?我似乎无法通过ssh登录到虚拟机。 - qubits
在 Hyper-V 管理器中看到的 IP,当您选择 VM 时,在底部看到 详细信息,转到 网络 选项卡,您应该看到分配给 VM 的虚拟网络卡和 IP,如果只看到 IPV6 IP,则可能是问题所在。另一个选项是手动启动 VM,等待 IP,然后运行 minikube start - Diego Mendes
显示剩余2条评论
2个回答

6

在Diego Mendes的评论建议下,我调查了导致minikube机器获取IPv6地址并导致启动挂起的问题。

我在虚拟网络交换机上禁用了IPv6(可以从网络和共享中心 -> 适配器设置 -> 右键单击相关交换机并找到相关复选框来完成),但是VM仍会获取一个IPv6地址。

v18.02或更高版本以来,Docker for Windows附带了一个内置的Kubernetes集群,这会干扰minikube配置,导致其噎住并出现2个集群。符合我的要求的解决方案是从使用minikube切换到仅使用内部本地docker k8s集群(唯一的主要缺点是无法指定k8s版本,但总体上使脚本更简单)。

您需要运行:

  • minikube delete

然后将Kubernetes集群上下文更改为指向docker实例:

  • kubectl config use-context docker-for-desktop

现在,您应该能够像正常使用kubectl时一样执行所有操作。


0

Piotr,关于Windows上的minikube,您也可以使用docker toolbox和VirtualBox。我在这里解释了这一点。此外,您还可以尝试使用chocolatey安装minikube,这在我的特定情况下与Docker for Windows和Hyper-V上的minikube并行运行良好。

至于这个案例,它确实很有趣,因为我看到过至少几个案例,在这些案例中,有人在Windows上使用minikube时遇到了麻烦,但是没有明显的原因。


谢谢,我已经看过了,但老实说,我会选择 Docker for Windows 解决方案,minikube 原生开发是为了使用 VirtualBox,Hyper-V 的切换似乎有些麻烦,每个版本都容易出问题。此外,由于我已经有一个运行 docker 的 Hyper-V 主机,添加 docker toolbox 和 virtualbox 会很多余。 - qubits
1
我明白了。只是想让您知道其他选项。我肯定可以推荐使用Ubuntu和minikube - 我已经很长时间在使用它进行测试,而且非常稳定和易于使用。 - aurelius
1
谢谢。我会去看看,我的宏碁笔记本电脑的网络卡出了点问题,所以我很快就要换电脑了,只用Linux也是一个选择。 - qubits

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接