问题排查
如何排查 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 用户 grp 718 8月 18 12:40 /var/folders/n1/qxvd9kc/T//minikube_start_dc950831e1a232e0318a6d6ca82aaf4f4a8a048b_0.log
这些是纯文本日志文件:您可以将它们重命名为 “
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
。