kubernetes中没有运行coredns pod

时间:2019-09-22 16:04:36

标签: docker kubernetes

我安装kubernetes 1000次,但现在不起作用。 我先安装kubectl kubeadm kubelet

 sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=185.73.114.92
 kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

但是我看到coredns处于待处理状态

kubectl get pods --all-namespaces
NAMESPACE     NAME                              READY   STATUS    RESTARTS   AGE
kube-system   coredns-5644d7b6d9-492q4          0/1     Pending   0          13m
kube-system   coredns-5644d7b6d9-cvwjg          0/1     Pending   0          13m
kube-system   etcd-amghezi                      1/1     Running   0          12m
kube-system   kube-apiserver-amghezi            1/1     Running   0          12m
kube-system   kube-controller-manager-amghezi   1/1     Running   0          12m
kube-system   kube-flannel-ds-amd64-fkxnf       1/1     Running   0          12m
kube-system   kube-proxy-pspw2                  1/1     Running   0          13m
kube-system   kube-scheduler-amghezi            1/1     Running   0          12m

然后我描述了coredns

kubectl describe pods coredns-5644d7b6d9-492q4 -n kube-system
Events:
  Type     Reason            Age        From               Message
  ----     ------            ----       ----               -------
  Warning  FailedScheduling  <unknown>  default-scheduler  0/1 nodes are available: 1 node(s) had taints that the pod didn't tolerate.
  Warning  FailedScheduling  <unknown>  default-scheduler  0/1 nodes are available: 1 node(s) had taints that the pod didn't tolerate.

我通过

污染了节点
kubectl taint nodes amghezi node-role.kubernetes.io/master-

它没有用 我在

journalctl -xe
message:docker: network plugin is not ready: cni config uninitialized

service docker status
● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; disabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-09-22 17:29:45 CEST; 34min ago
     Docs: https://docs.docker.com
 Main PID: 987 (dockerd)
    Tasks: 20
   CGroup: /system.slice/docker.service
           └─987 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Sep 22 17:29:45 ubuntu systemd[1]: Started Docker Application Container Engine.
Sep 22 17:29:45 ubuntu dockerd[987]: time="2019-09-22T17:29:45.728818467+02:00" level=info msg="API listen on /var/run/docker.sock"
Sep 22 17:29:45 ubuntu dockerd[987]: time="2019-09-22T17:29:45.757401709+02:00" level=warning msg="failed to retrieve runc version: unknown output format: runc version spec: 1.0.1-dev\n"
Sep 22 17:29:45 ubuntu dockerd[987]: time="2019-09-22T17:29:45.786776798+02:00" level=warning msg="failed to retrieve runc version: unknown output format: runc version spec: 1.0.1-dev\n"
Sep 22 17:29:46 ubuntu dockerd[987]: time="2019-09-22T17:29:46.296798944+02:00" level=warning msg="failed to retrieve runc version: unknown output format: runc version spec: 1.0.1-dev\n"
Sep 22 17:29:46 ubuntu dockerd[987]: time="2019-09-22T17:29:46.364459982+02:00" level=warning msg="failed to retrieve runc version: unknown output format: runc version spec: 1.0.1-dev\n"
Sep 22 17:30:06 ubuntu dockerd[987]: time="2019-09-22T17:30:06.996299645+02:00" level=warning msg="failed to retrieve runc version: unknown output format: runc version spec: 1.0.1-dev\n"
Sep 22 17:30:41 ubuntu dockerd[987]: time="2019-09-22T17:30:41.633452599+02:00" level=info msg="ignoring event" module=libcontainerd namespace=moby topic=/tasks/delete type="*events.TaskDelete"
Sep 22 17:30:41 ubuntu dockerd[987]: time="2019-09-22T17:30:41.633831003+02:00" level=warning msg="d72e19bd0e929513a1c9092ec487e5dc3f3e009bdaa4d33668b610e86cdadf9e cleanup: failed to unmount IPC: umount /var/lib/docker/containers/d72e19bd0e929513a1c9092ec487e5dc3f3e009bdaa4d33668b610e86cdadf9e/mounts/shm, flags: 0x2
Sep 22 17:30:41 ubuntu dockerd[987]: time="2019-09-22T17:30:41.903058543+02:00" level=warning msg="Your kernel does not support swap limit capabilities,or the cgroup is not mounted. Memory limited without swap."

让我们看看kubelet的状态

Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized

1 个答案:

答案 0 :(得分:0)

我假设每个给定的数据输出都来自Kubelet节点代理,因为kubelet主要要求安装CNI network plugin。为了自动为Pod配置网络功能,在创建Pod之前,每次 CNI插件都会启动kubelet来设置Pod的网络接口。此外,CoreDNS发现服务依赖于覆盖容器网络对于所有群集节点都是可访问的。

尽管您使用过Flannel CNI提供程序,但flannel Pod已启动并正在运行,因为kubelet无法为缺少的特定CoreDNS Pod创建容器接口关于CNI配置,我建议通过清除冗余组件文件夹结构来重置kubeadm集群:

$ sudo kubeadm reset

$ sudo systemctl stop docker && sudo systemctl stop kubelet

$ sudo rm -rf /etc/kubernetes/

$ sudo rm -rf .kube/

$ sudo rm -rf /var/lib/kubelet/

$ sudo rm -rf /var/lib/cni/

$ sudo rm -rf /etc/cni/

$ sudo rm -rf /var/lib/etcd/

通过kubeadm引导K8s集群:

$ sudo systemctl start docker && sudo systemctl start kubelet

$ sudo kubeadm init ...

进一步移除node-role.kubernetes.io/master异味并应用Flannel插件:

$ kubectl taint nodes --all node-role.kubernetes.io/master-

$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

您可能还会在官方的K8s文档中找到有关kubeadm troubleshooting指导步骤的有用信息。