Kubernetes Minikube在创建容器时被卡住
我最近开始学习Kubernetes,在我的Mac中本地使用Minikube。以前,我可以用Minikube 0.10.0启动本地Kubernetes集群,创建部署并查看Kubernetes仪表板 昨天我尝试删除集群,从头开始重新做所有事情。但是,我发现我无法部署资产,也无法查看仪表板。从我看到的情况来看,在创建容器的过程中,一切似乎都被卡住了 在我运行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
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
,但我使用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...