我最近开始在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
仍未显示任何内容。它看起来在创建容器时一切都被卡住了。我尝试了其他一些方法来解决这个问题:
他们都不适合我。
Kubernetes对我来说还是新手,我想知道:
感谢任何帮助。感谢。
答案 0 :(得分:7)
在我的案例中,结果证明是一个网络问题。
pod状态为“ContainerCreating”,我发现在容器创建过程中,docker image将从gcr.io中提取,这在中国是无法访问的(由GFW阻止)。以前它对我有用,因为我碰巧连接到VPN。
答案 1 :(得分:3)
我没有尝试minikube
,但我使用kubernetes
。根据提供的信息,很难说出问题的原因。您的minikube
在创建资源方面没有问题,但ContainerCreating
是与docker
守护程序相关的问题或kube-api
和docker
守护程序之间的不正确通信或kubelet
的某些问题{1}}。
您可以尝试以下命令:
kubectl describe po POD_NAME
这将为您提供POD的活动。也许这将提供解决问题根本原因的途径。
您还可以查看kubelet
的日志以获取活动。
答案 2 :(得分:1)
horizontalpodautoscaler(hpa)需要使用heapster。你需要在minikube中运行heapster才能工作。您始终可以使用minikube logs
或通过minikube dashboard
上的信息中心以交互方式调试此类问题。
答案 3 :(得分:0)
对我来说,在看到ContainerCreating
问题之前需要几分钟时间。执行以下命令后:
systemctl status kube-controller-manager.service
我收到此错误:
同步&#34;默认/ redis-master-2229813293&#34;无法创建广告连播失败:未找到服务帐户的API令牌&#34;默认&#34;,在自动创建令牌并重新添加到服务帐户后重试。
有两种方法可以解决这个问题:
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