Minikube在创建容器时卡住了

时间:2016-10-07 06:34:03

标签: 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.

当我运行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

docker ps没有显示任何内容:

docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

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

minikubeVM: Running
localkube: Running

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

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

在公开服务时,它说:

$ 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

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

curl $(minikube service hello-minikube --url)
Waiting, endpoint for service is not ready yet...

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

  1. 升级至minikube 0.11.0
  2. 使用xhyve驱动程序代替Virtualbox驱动程序
  3. 删除缓存的所有内容,例如〜/ .minikube,〜/ .kube和群集,然后重新尝试
  4. 他们都不适合我。

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

    1. 如何解决此类问题?
    2. 这个问题可能是什么原因?
    3. 感谢任何帮助。感谢。

5 个答案:

答案 0 :(得分:7)

在我的案例中,结果证明是一个网络问题。

pod状态为“ContainerCreating”,我发现在容器创建过程中,docker image将从gcr.io中提取,这在中国是无法访问的(由GFW阻止)。以前它对我有用,因为我碰巧连接到VPN。

答案 1 :(得分:3)

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

您可以尝试以下命令:

kubectl describe po POD_NAME

这将为您提供POD的活动。也许这将提供解决问题根本原因的途径。

您还可以查看kubelet的日志以获取活动。

答案 2 :(得分:1)

horizo​​ntalpodautoscaler(hpa)需要使用heapster。你需要在minikube中运行heapster才能工作。您始终可以使用minikube logs或通过minikube dashboard上的信息中心以交互方式调试此类问题。

您可以在https://github.com/kubernetes/heapster

找到运行heapster和grafana的步骤

答案 3 :(得分:0)

对我来说,在看到ContainerCreating问题之前需要几分钟时间。执行以下命令后:

systemctl status kube-controller-manager.service

我收到此错误:

  

同步&#34;默认/ redis-master-2229813293&#34;无法创建广告连播失败:未找到服务帐户的API令牌&#34;默认&#34;,在自动创建令牌并重新添加到服务帐户后重试。

有两种方法可以解决这个问题:

  1. 使用令牌
  2. 设置服务帐户
  3. 删除api-server
  4. ServiceAccount的{​​{1}}设置

答案 4 :(得分:0)

我在Windows上遇到此问题,但它与NTLM proxy有关。我删除了minikube VM,然后使用我CNTLM安装的正确代理设置重新创建了它:

minikube start \
--docker-env http_proxy=http://10.0.2.2:3128 \
--docker-env https_proxy=http://10.0.2.2:3128 \
--docker-env no_proxy=localhost,127.0.0.1,::1,192.168.99.100

请参阅https://blog.alexellis.io/minikube-behind-proxy/

相关问题