Minikube在创建容器时卡住了

nyb*_*bon 12 kubernetes minikube

我最近开始在Mac上本地使用Minikube学习Kubernetes.以前,我能够使用Minikube 0.10.0启动本地Kubernetes集群,创建部署并查看Kubernetes仪表板.

昨天我试图删除集群并从头开始重新做一切.但是,我发现无法部署资产,无法查看仪表板.从我看到的情况来看,在容器创建期间,一切似乎都被卡住了.

跑完之后minikube start,据报道

Starting local Kubernetes cluster...
Kubectl is now configured to use the cluster.
Run Code Online (Sandbox Code Playgroud)

当我跑kubectl get pods --all-namespaces,它报告(注意STATUS列):

kubectl get pods --all-namespaces
NAMESPACE     NAME                          READY     STATUS              RESTARTS   AGE
kube-system   kube-addon-manager-minikube   0/1       ContainerCreating   0          51s
Run Code Online (Sandbox Code Playgroud)

docker ps 没有显示:

docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
Run Code Online (Sandbox Code Playgroud)

minikube status 告诉我VM和集群正在运行:

minikubeVM: Running
localkube: Running
Run Code Online (Sandbox Code Playgroud)

如果我尝试创建部署和自动规划器,我被告知它们已成功创建:

kubectl create -f configs
deployment "hello-minikube" created
horizontalpodautoscaler "hello-minikube-autoscaler" created

$ kubectl get pods --all-namespaces
NAMESPACE     NAME                             READY     STATUS              RESTARTS   AGE
default       hello-minikube-661011369-1pgey   0/1       ContainerCreating   0          1m
default       hello-minikube-661011369-91iyw   0/1       ContainerCreating   0          1m
kube-system   kube-addon-manager-minikube      0/1       ContainerCreating   0          21m
Run Code Online (Sandbox Code Playgroud)

在公开服务时,它说:

$ kubectl expose deployment hello-minikube --type=NodePort
service "hello-minikube" exposed

$ kubectl get service
NAME             CLUSTER-IP   EXTERNAL-IP   PORT(S)    AGE
hello-minikube   10.0.0.32    <nodes>       8080/TCP   6s
kubernetes       10.0.0.1     <none>        443/TCP    22m
Run Code Online (Sandbox Code Playgroud)

当我试图访问该服务时,我被告知:

curl $(minikube service hello-minikube --url)
Waiting, endpoint for service is not ready yet...
Run Code Online (Sandbox Code Playgroud)

docker ps仍然没有显示.它看起来在创建容器时一切都被卡住了.我尝试了其他一些方法来解决这个问题:

  1. 升级到minikube 0.11.0
  2. 使用xhyve驱动程序而不是Virtualbox驱动程序
  3. 删除缓存的所有内容,例如〜/ .minikube,〜/ .kube和群集,然后重试

他们都没有为我工作.

Kubernetes对我来说还是新手,我想知道:

  1. 我该如何解决这类问题?
  2. 这个问题可能是什么原因?

任何帮助表示赞赏.谢谢.

nyb*_*bon 9

事实证明,在我的案例中,这是一个网络问题.

pod状态为"ContainerCreating",我发现在容器创建期间,docker镜像将从gcr.io中提取,这在中国是无法访问的(由GFW阻止).以前它适用于我,因为我碰巧连接到VPN.


sri*_*tha 5

我没有尝试,minikube但我使用kubernetes. 根据提供的信息,很难说出问题的原因。您minikube在创建资源没有问题,但ContainerCreating就是与问题有关的docker守护程序或之间存在不正当的通信kube-apidocker守护程序或某些问题kubelet

您可以尝试以下命令:

kubectl describe po POD_NAME
Run Code Online (Sandbox Code Playgroud)

这将为您提供 POD 的事件。也许这将为问题的根本原因提供一条途径。

您还可以检查日志kubelet以获取事件。