8

我正在尝试配置一个 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

以下是'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>

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

4

5 回答 5

4

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

运行这一行:

kubectl apply -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml
于 2020-06-17T14:02:49.990 回答
3

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

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

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

要使 flannel 正常工作,您必须传递 --pod-network-cidr=10.244.0.0/16给 kubeadm init。

/proc/sys/net/bridge/bridge-nf-call-iptables通过运行 sysctl net.bridge.bridge-nf-call-iptables=1将桥接的 IPv4 流量传递到 iptables 的链来设置为 1。这是某些 CNI 插件工作的必要条件,有关更多信息,请参阅此处。

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

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

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

有关更多信息,您可以访问此链接

于 2018-10-03T10:23:15.027 回答
1

要使 Kubernetes 集群可用,集群应该有一个容器网络接口 (CNI)。需要配置 pod-network 才能使 dns pod 正常工作。

安装任何 CNI 提供程序,例如: - Flannel - Calico - Canal - WeaveNet 等,

如果没有这个,托管的 Kubernetes 集群的主节点将处于 NotReady 状态。

于 2019-09-02T19:03:55.143 回答
0

我安装了 1 个主节点 + 1 个工作节点的 kubernetes。
在我做之后kubeadm init ...,我遇到了两个问题:

  1. 在主节点上,coredns 处于挂起状态。
  2. 在工作节点上,kubectl 命令不起作用

在工作节点上,我执行了以下操作并修复了这两个问题:

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/kubelet.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config**
于 2020-12-21T16:01:55.800 回答
0

检查 docker 和 kubernetes 是否使用相同的 cgroup 驱动程序。我遇到了同样的问题(CentOS 7,kubernetes v1.14.1),设置相同的 cgroup 驱动程序(systemd)修复了它。

于 2019-05-02T09:08:52.997 回答