故障排除

如何排除 minikube 问题

启用调试日志

--alsologtostderr 传递给 minikube 命令以查看详细的日志输出。要增加日志详细程度,您可以使用

  • -v=1:详细消息
  • -v=2:非常详细的消息
  • -v=8:比您能处理的还要多的日志消息。

示例

minikube start --alsologtostderr --v=2 将启动 minikube 并将所有重要的调试日志输出到 stderr。

事后 minikube 调试日志

minikube 将事后日志存储在系统的临时目录中。每个子命令都会创建一个日志文件,并且具有相同参数的后续调用将追加到同一文件中。如果日志文件大小超过 1MB,则会创建一个新的日志文件。在 macOS 或 Linux 上,很容易获取最近日志的列表

find $TMPDIR -mtime -1 -type f -name "*minikube*" -ls  2>/dev/null

例如,运行 minikube start 后,上述命令将显示

-rw-r--r-- 1 user grp 718 Aug 18 12:40 /var/folders/n1/qxvd9kc/T//minikube_start_dc950831e1a232e0318a6d6ca82aaf4f4a8a048b_0.log

这些是纯文本日志文件:您可以将它们重命名为“.log”然后将它们拖放到 GitHub issue 中供 minikube 团队进一步分析。您可以通过以下命令快速检查这些日志中的最后几行

tail -n 10 <filename>

例如,这将显示

I0818 12:40:17.027317   63501 out.go:197] Setting ErrFile to fd 2...
I0818 12:40:17.027321   63501 out.go:231] isatty.IsTerminal(2) = true
I0818 12:40:17.027423   63501 root.go:272] Updating PATH: /Users/tstromberg/.minikube/bin
I0818 12:40:17.027715   63501 mustload.go:64] Loading cluster: minikube

收集 VM 日志

要调试 Kubernetes 部署失败的问题,收集 Kubernetes pod 和内核日志非常有用

minikube logs

查看 Pod 状态

要查看所有 Kubernetes pod 的部署状态,请使用

kubectl get po -A

示例输出

NAMESPACE     NAME                        READY   STATUS    RESTARTS   AGE
kube-system   coredns-5c98db65d4-299md    1/1     Running   0          11m
kube-system   coredns-5c98db65d4-qlpkd    1/1     Running   0          11m
kube-system   etcd-minikube               1/1     Running   0          10m
kube-system   gvisor                      1/1     Running   0          11m
...
kube-system   storage-provisioner         1/1     Running   0          11m

要查看有关 pod 的更详细信息,请使用

kubectl describe pod <name> -n <namespace>

调试启动卡顿

minikube 将等待约 8 分钟,然后放弃 Kubernetes 部署。如果您想更及时地看到启动失败,可以考虑使用

minikube logs --problems

这将尝试显示已知错误,例如无效的配置标志。如果没有显示任何有趣的内容,请尝试 minikube logs


最后修改时间 2022 年 1 月 29 日: 修复拼写错误 (bc0382182)