Kubernetes Minikube在创建容器时被卡住

Kubernetes Minikube在创建容器时被卡住,kubernetes,minikube,Kubernetes,Minikube,我最近开始学习Kubernetes,在我的Mac中本地使用Minikube。以前,我可以用Minikube 0.10.0启动本地Kubernetes集群,创建部署并查看Kubernetes仪表板 昨天我尝试删除集群,从头开始重新做所有事情。但是,我发现我无法部署资产,也无法查看仪表板。从我看到的情况来看,在创建容器的过程中,一切似乎都被卡住了 在我运行minikube start后,它报告 Starting local Kubernetes cluster... Kubectl is now c

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

昨天我尝试删除集群,从头开始重新做所有事情。但是,我发现我无法部署资产,也无法查看仪表板。从我看到的情况来看,在创建容器的过程中,一切似乎都被卡住了

在我运行
minikube start
后,它报告

Starting local Kubernetes cluster...
Kubectl is now configured to use the cluster.
当我运行
kubectl get pods--all namespace
时,它报告(注意状态列):

docker ps
未显示任何内容:

docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
minikube status
告诉我虚拟机和集群正在运行:

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
docker ps
仍然没有显示任何内容。在我看来,在创建容器时,所有的东西都卡住了。我尝试了其他一些方法来解决这个问题:

  • 升级至minikube 0.11.0
  • 使用xhyve驱动程序而不是Virtualbox驱动程序
  • 删除缓存的所有内容,如~/.minikube、~/.kube和集群,然后重试
  • 他们都不为我工作

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

  • 如何解决此类问题
  • 这个问题的原因可能是什么

  • 感谢您的帮助。谢谢。

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

    您可以尝试以下命令:

    kubectl描述po POD_名称
    
    这将为您提供POD的事件。也许这将为问题的根本原因提供一条途径


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

    horizontalpodautoscaler(hpa)需要heapster才能使用。你需要在minikube运行heapster才能正常工作。您始终可以使用
    minikube日志
    或通过
    minikube仪表板
    上的仪表板以交互方式调试此类问题


    您可以在

    上找到运行heapster和grafana的步骤。在我的例子中,这是一个网络问题


    pod状态为“ContainerCreating”,我在创建容器时发现,docker映像将从gcr.io中提取,这在中国是无法访问的(被GFW阻止)。上一次它对我有效,因为我碰巧连接到VPN。

    对我来说,需要几分钟才能看到
    容器创建问题。执行以下命令后:

    systemctl状态kube-controller-manager.service
    
    我得到这个错误:

    同步“default/redis-master-2229813293”失败,无法创建POD:找不到服务帐户“default”的API令牌,请在自动创建令牌并将其添加到服务帐户后重试

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

  • 使用令牌设置服务帐户
  • 删除api服务器中的
    KUBE\u准入\u控件的
    serviceCount
    设置

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

    minikube启动\
    --docker环境http_代理=http://10.0.2.2:3128 \
    --docker环境https\u代理=http://10.0.2.2:3128 \
    --docker env no_proxy=localhost,127.0.0.1,::1192.168.99.100
    

    请参见

    我也面临同样的问题。你能告诉我你是如何解决这个问题的吗?那将是非常重要的help@NSP对我来说,由于它是由网络可访问性问题引起的,我只需连接到VPN即可解决此问题。那么,我是否应该删除现有的minikube安装程序,然后通过连接到VPN重新开始安装?(minikube删除后紧接着minikube启动?@NSP我不再记得确切的细节了,但请尝试一下:)非常感谢您的回答。在使用加密狗而不是内部网后,我现在能够访问minikube仪表板。您是对的,似乎存在网络可访问性问题。我花了一个多星期的时间调试这个。但最后你的回答救了我:)
    $ 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...