coredns pod 停留在待处理状态

coredns pod 停留在待处理状态



我正在尝试学习 k8s,而且我碰巧可以访问 OpenStack 云,所以我决定尝试在其上安装 k8s,如下所示本维基到目前为止,
我能够初始化集群、安装 weave CNI、连接外部工作器并安装 OpenStack 云控制器管理器。根据上述 Wiki,现在我应该等待 kube-system 命名空间中的所有 pod 运行。我被困住了核心域名豆荚虽然...他们不会从待办的状态。
从 pod 的描述中我可以看到我的问题是掌握节点仍然有以下污点:
node-role.kubernetes.io/master:NoSchedule
当我检查节点的状态时,一切似乎正常:

ubuntu@master-node-01:~$ kubectl get nodes -o wide
NAME             STATUS   ROLES    AGE   VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION       CONTAINER-RUNTIME
master-node-01   Ready    master   10h   v1.17.0   10.99.53.6    <none>        Ubuntu 18.04.5 LTS   4.15.0-143-generic   docker://20.10.2
worker-node-01   Ready    <none>   10h   v1.17.0   10.99.53.5    <none>        Ubuntu 18.04.5 LTS   4.15.0-143-generic   docker://20.10.2

所有 pod(coredns 除外)运行良好:

ubuntu@master-node-01:~$ kubectl get pods --all-namespaces -o wide
NAMESPACE     NAME                                       READY   STATUS    RESTARTS   AGE   IP           NODE             NOMINATED NODE   READINESS GATES
kube-system   coredns-6955765f44-g2jnm                   0/1     Pending   0          10h   <none>       <none>           <none>           <none>
kube-system   coredns-6955765f44-wj7xb                   0/1     Pending   0          10h   <none>       <none>           <none>           <none>
kube-system   etcd-master-node-01                        1/1     Running   0          11h   10.99.53.6   master-node-01   <none>           <none>
kube-system   kube-apiserver-master-node-01              1/1     Running   0          11h   10.99.53.6   master-node-01   <none>           <none>
kube-system   kube-controller-manager-master-node-01     1/1     Running   0          11h   10.99.53.6   master-node-01   <none>           <none>
kube-system   kube-proxy-8s8r9                           1/1     Running   0          10h   10.99.53.5   worker-node-01   <none>           <none>
kube-system   kube-proxy-vtgnz                           1/1     Running   0          10h   10.99.53.6   master-node-01   <none>           <none>
kube-system   kube-scheduler-master-node-01              1/1     Running   0          11h   10.99.53.6   master-node-01   <none>           <none>
kube-system   openstack-cloud-controller-manager-dtczj   1/1     Running   0          10h   10.99.53.6   master-node-01   <none>           <none>
kube-system   weave-net-2z5n7                            2/2     Running   2          10h   10.99.53.5   worker-node-01   <none>           <none>
kube-system   weave-net-tm9p4                            2/2     Running   1          10h   10.99.53.6   master-node-01   <none>           <none>

我在 pod 的日志中发现任何可疑的东西。

我正在使用的 OpenStack 没有安装 Octavia(Wiki 说它需要设置 LB,但我的问题似乎与此无关)。

如果这里有人能帮我找到调查(并最终解决)这个问题的方法,我将不胜感激。谢谢。

答案1

看起来问题taints。您可以尝试用以下几种方法解决该问题:

  • 消除污点:
kubectl taint nodes $(hostname) node-role.kubernetes.io/master:NoSchedule-
  • 编辑节点配置并注释掉污点部分:
kubectl edit node <node_name>

评论后您需要更新节点。

  • 在主节点上进行调度而不删除污点:
apiVersion: extensions/v1beta1
kind: Deployment
...
  spec:
...
    spec:
...
      tolerations:
        - key: "node-role.kubernetes.io/master"
          effect: "NoSchedule"
          operator: "Exists"
  • 文档说这个解决方案也应该有效:
kubectl taint nodes $(kubectl get nodes --selector=node-role.kubernetes.io/master | awk 'FNR==2{print $1}') node-role.kubernetes.io/master-

相关内容