【发布时间】:2018-01-10 15:34:50
【问题描述】:
我是 Kubernetes 的新手,所以还有很多东西要学。
已经创建了一个双节点 Kubernetes 集群,并且两个节点(主节点和工作节点)都准备好工作了,这很好:
[monkey@k8s-dp1 nginx-test]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-dp1 Ready master 2h v1.9.1
k8s-dp2 Ready <none> 2h v1.9.1
此外,所有 Kubernetes Pod 看起来都还不错:
[monkey@k8s-dp1 nginx-test]# kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system etcd-k8s-dp1 1/1 Running 0 2h
kube-system kube-apiserver-k8s-dp1 1/1 Running 0 2h
kube-system kube-controller-manager-k8s-dp1 1/1 Running 0 2h
kube-system kube-dns-86cc76f8d-9jh2w 3/3 Running 0 2h
kube-system kube-proxy-65mtx 1/1 Running 1 2h
kube-system kube-proxy-wkkdm 1/1 Running 0 2h
kube-system kube-scheduler-k8s-dp1 1/1 Running 0 2h
kube-system weave-net-6sbbn 2/2 Running 0 2h
kube-system weave-net-hdv9b 2/2 Running 3 2h
但是,如果我尝试在集群中创建新部署,则会创建部署,但其 pod 无法进入适当的 RUNNING 状态。例如
[monkey@k8s-dp1 nginx-test]# kubectl apply -f https://k8s.io/docs/tasks/run-application/deployment.yaml
deployment "nginx-deployment" created
[monkey@k8s-dp1 nginx-test]# kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
default nginx-deployment-569477d6d8-f42pz 0/1 ContainerCreating 0 5s
default nginx-deployment-569477d6d8-spjqk 0/1 ContainerCreating 0 5s
kube-system etcd-k8s-dp1 1/1 Running 0 3h
kube-system kube-apiserver-k8s-dp1 1/1 Running 0 3h
kube-system kube-controller-manager-k8s-dp1 1/1 Running 0 3h
kube-system kube-dns-86cc76f8d-9jh2w 3/3 Running 0 3h
kube-system kube-proxy-65mtx 1/1 Running 1 2h
kube-system kube-proxy-wkkdm 1/1 Running 0 3h
kube-system kube-scheduler-k8s-dp1 1/1 Running 0 3h
kube-system weave-net-6sbbn 2/2 Running 0 2h
kube-system weave-net-hdv9b 2/2 Running 3 2h
我不确定如何找出问题所在,但如果我执行kubectl get ev,我可以看到以下可疑事件:
<invalid> <invalid> 1 nginx-deployment-569477d6d8-f42pz.15087c66386edf5d Pod
Warning FailedCreatePodSandBox kubelet, k8s-dp2 Failed create pod sandbox.
但我不知道从这里去哪里。我还可以看到 nginx docker 映像本身从未出现在 docker images 中。
如何了解有关该问题的更多信息?我是否遗漏了 Kubernetes 设置中的一些基本内容?
--- 新信息 ---
有关背景信息,以防万一……
Kubernetes 节点在 Windows 10 hyper-v 上托管的 CentOS 7 虚拟机上运行。
--- 新信息 ---
运行 kubectl describe pods 显示以下警告:
Warning NetworkNotReady 1m kubelet, k8s-dp2 network is not ready: [runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized]
--- 新信息 ---
在我一天的工作时间结束后,我关闭了运行 Kubernetes 的 Hyper-v 虚拟机一夜,今天早上我回到办公室时,我再次启动了 Kubernetes 虚拟机以继续运行,大约 15 分钟,命令:
kubectl get pods --all-namespaces 仍然像昨天一样为那些 nginx pod 显示 ContainerCreating,但是现在,该命令现在将所有 pod 显示为 Running,包括 nginx pod...即问题在经过一段时间后自行解决完全重启主节点和工作节点虚拟机。
我现在再次完全重启,所有 pod 都显示为正在运行,这很好。
【问题讨论】:
标签: kubernetes kubectl weave