Kubernetes 集群中处于挂起状态的 Coredns

Adi*_*tta 6 docker kubernetes kubectl kubelet kubeadm

我正在尝试配置一个 2 节点 Kubernetes 集群。首先,我尝试在 CentOS VM 上配置集群的主节点。我已经使用 'kubeadm init --apiserver-advertise-address=172.16.100.6 --pod-network-cidr=10.244.0.0/16' 初始化了集群并将 flannel 网络部署到集群。但是当我做'kubectl get nodes'时,我得到以下输出----

[root@kubernetus ~]# kubectl get nodes
NAME         STATUS     ROLES    AGE   VERSION
kubernetus   NotReady   master   57m   v1.12.0
Run Code Online (Sandbox Code Playgroud)

以下是“kubectl get pods --all-namespaces -o wide”的输出——

[root@kubernetus ~]# kubectl get pods --all-namespaces -o wide
NAMESPACE     NAME                                 READY   STATUS    RESTARTS   AGE   IP             NODE         NOMINATED NODE
kube-system   coredns-576cbf47c7-9x59x             0/1     Pending   0          58m   <none>         <none>       <none>
kube-system   coredns-576cbf47c7-l52wc             0/1     Pending   0          58m   <none>         <none>       <none>
kube-system   etcd-kubernetus                      1/1     Running   2          57m   172.16.100.6   kubernetus   <none>
kube-system   kube-apiserver-kubernetus            1/1     Running   2          57m   172.16.100.6   kubernetus   <none>
kube-system   kube-controller-manager-kubernetus   1/1     Running   1          57m   172.16.100.6   kubernetus   <none>
kube-system   kube-proxy-hr557                     1/1     Running   1          58m   172.16.100.6   kubernetus   <none>
kube-system   kube-scheduler-kubernetus            1/1     Running   1          57m   172.16.100.6   kubernetus   <none>
Run Code Online (Sandbox Code Playgroud)

coredns 在很长一段时间内都处于挂起状态。我已经多次删除 docker 和 kubectl、kubeadm、kubelet 并尝试重新创建集群,但每次都显示相同的输出。有人可以帮我解决这个问题吗?

Ben*_*sur 12

尝试安装 Pod 网络插件(基于本指南)。

运行这一行:

kubectl apply -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml
Run Code Online (Sandbox Code Playgroud)


Art*_*aev 4

\n

无法更新 cni 配置:在 /etc/cni/net.d 中找不到网络 .....\n Oct 02 19:21:32 kubernetus kubelet[19007]: E1002 19:21:32.886170 19007\n kubelet.go :2167]容器运行时网络未准备好:\n NetworkReady=false 原因:NetworkPluginNotReady 消息:docker:\n 网络插件未准备好:cni 配置未初始化

\n
\n\n

根据此错误,您忘记初始化 Kubernetes Pod 网络插件。看看你的设置,我想它应该是法兰绒。

\n\n

以下是 Kubernetes 官方文档中的说明:

\n\n
\n

为了让 flannel 正常工作,您必须传递\n --pod-network-cidr=10.244.0.0/16到 kubeadm init。

\n\n

/proc/sys/net/bridge/bridge-nf-call-iptables通过运行\n sysctl net.bridge.bridge-nf-call-iptables=1将桥接 IPv4\n 流量设置为 1\n 到 iptables\xe2\x80\x99 链。这是某些 CNI\n 插件正常工作的要求,有关详细信息,请参阅此处。

\n\n
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.10.0/Documentation/kube-flannel.yml\n
Run Code Online (Sandbox Code Playgroud)\n\n

请注意,flannel 适用于 amd64、arm、arm64 和 ppc64le,但在 flannel v0.11.0 发布之前,您需要使用以下支持所有架构的清单:

\n\n
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/c5d10c8/Documentation/kube-flannel.yml\n
Run Code Online (Sandbox Code Playgroud)\n
\n\n

欲了解更多信息,您可以访问此链接

\n