kube-dns 一直处于 ContainerCreating 状态

kube-dns stays in ContainerCreating status

我有 5 台机器 运行 Ubuntu 16.04.1 LTS。我想将它们设置为 Kubernetes 集群。我试图在他们使用 kubeadm 的地方关注这个 getting started guide

一切正常,直到步骤 3/4 安装 pod 网络 。我在那里 addon page 寻找 pod 网络并选择了法兰绒覆盖网络。我将yaml文件复制到本机执行:

root@up01:/home/up# kubectl apply -f flannel.yml 

结果是:

configmap "kube-flannel-cfg" created
daemonset "kube-flannel-ds" created

所以我认为一切顺利,但是当我显示所有 pod 内容时:

root@up01:/etc/kubernetes/manifests# kubectl get pods --all-namespaces
NAMESPACE     NAME                              READY     STATUS              RESTARTS   AGE
kube-system   dummy-2088944543-d5f50            1/1       Running             0          50m
kube-system   etcd-up01                         1/1       Running             0          48m
kube-system   kube-apiserver-up01               1/1       Running             0          50m
kube-system   kube-controller-manager-up01      1/1       Running             0          49m
kube-system   kube-discovery-1769846148-jvx53   1/1       Running             0          50m
kube-system   kube-dns-2924299975-prlgf         0/4       ContainerCreating   0          49m
kube-system   kube-flannel-ds-jb1df             2/2       Running             0          32m
kube-system   kube-proxy-rtcht                  1/1       Running             0          49m
kube-system   kube-scheduler-up01               1/1       Running             0          49m

问题是 kube-dns 一直处于 ContainerCreating 状态。我不知道该怎么办。

您很可能错过了指南中的这条重要信息:

If you want to use flannel as the pod network, specify --pod-network-cidr 10.244.0.0/16 if you’re using the daemonset manifest below.

如果您省略此 kube-dns 将永远不会离开 ContainerCreating 状态。

您的 kubeadm init 命令应该是:

# kubeadm init --pod-network-cidr 10.244.0.0/16

而不是

# kubeadm init

您是否尝试重新启动 NetworkManager ...?它对我有用。另外,当我 禁用 IPv6 时它也有效。