28

我在里面运行的centos VM上安装kubernetes(kubeadm)Virtualbox,所以我安装了yumkubeadm, kubeletdocker.

现在,在尝试使用kubeadm init --pod-network-cidr=192.168.56.0/24 --apiserver-advertise-address=192.168.56.33/32我设置集群时遇到以下错误:

Unable to update cni config: No networks found in /etc/cni/net.d

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

所以我检查了,即使安装了cni文件夹也没有。我尝试发表评论,但没有奏效。/etckubernetes-cni-0.6.0-0.x86_64KUBELET_NETWORK_ARGS/etc/systemd/system/kubelet.service.d/10-kubeadm.conf

PS:

  • 我正在代理后面安装。

  • 我有多个网络适配器:

    • NAT : 10.0.2.15/24 用于互联网

    • 仅主机:192.168.56.33/32

    • 和码头接口:172.17.0.1/16

Docker 版本:17.12.1-ce
kubectl 版本:主要:“1”,次要:“9”,GitVersion:“v1.9.3”
Centos 7

4

12 回答 12

17

添加 pod 网络插件

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/2140ac876ef134e0ed5af15c65e414cf26827915/Documentation/kube-flannel.yml
于 2019-10-07T16:55:57.827 回答
12

使用“kubeadm init”设置集群时需要记住几点,Kubernetes 站点kubeadm cluster create上清楚地记录了这一点:

  • “kubeadm reset” 如果您已经创建了以前的集群
  • 从主目录或根目录中删除“.kube”文件夹
  • (也使用 systemctl 停止 kubelet 将允许顺利设置)
  • 在机器上永久禁用交换,尤其是在重新启动 linux 系统时
  • 不要忘记,根据添加站点(不是 Kubernetes 站点)上提供的说明安装pod 网络插件
  • 按照 kubeadm 在命令窗口中给出的初始化后步骤进行操作。

如果正确遵循所有这些步骤,那么您的集群将正常运行。

并且不要忘记执行以下命令以在创建的集群上启用调度:

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

关于如何从代理后面安装,您可能会发现这很有用:

使用代理安装

于 2018-09-14T16:02:41.173 回答
5

检查这个答案

使用这个 PR(直到被批准):

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

这是一个已知问题:coreos/flannel#1044

于 2019-02-20T06:09:46.803 回答
4

我看不到 helm 服务器版本:

$ helm version --tiller-namespace digital-ocean-namespace
Client: &version.Version{SemVer:"v2.13.1", GitCommit:"618447cbf203d147601b4b9bd7f8c37a5d39fbb4", GitTreeState:"clean"}
Error: could not find a ready tiller pod

kubectl describe node kubernetes-master --namespace digital-ocean-namespace命令显示消息:

NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized

节点尚未准备好:

$ kubectl get node --namespace digital-ocean-namespace
NAME                  STATUS     ROLES    AGE   VERSION
kubernetes-master     NotReady   master   82m   v1.14.1
kubernetes-worker-1   NotReady   <none>   81m   v1.14.1

我在 Kubernetes 和 flannel 网络之间遇到了版本兼容性问题。

我的 k8s 版本1.14如命令所示:

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.1", GitCommit:"b7394102d6ef778017f2ca4046abbaa23b88c290", GitTreeState:"clean", BuildDate:"2019-04-08T17:11:31Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.1", GitCommit:"b7394102d6ef778017f2ca4046abbaa23b88c290", GitTreeState:"clean", BuildDate:"2019-04-08T17:02:58Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"linux/amd64"}

使用命令重新安装 flannel 网络后:

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

然后我可以看到 helm 服务器版本:

$ helm version --tiller-namespace digital-ocean-namespace
Client: &version.Version{SemVer:"v2.13.1", GitCommit:"618447cbf203d147601b4b9bd7f8c37a5d39fbb4", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.13.1", GitCommit:"618447cbf203d147601b4b9bd7f8c37a5d39fbb4", GitTreeState:"clean"}
于 2019-04-23T14:22:12.093 回答
2

这是Github https://github.com/kubernetes/kubernetes/issues/34695中提到的代理错误

他们建议使用kubeadm init --use-kubernetes-version v1.4.1,但我完全改变了我的网络(没有代理),我设法设置了我的集群。

之后,我们可以使用 https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/#pod-network 设置kubectl apply -f ...pod网络

于 2018-03-06T14:57:18.550 回答
2

通过使用以下命令安装 Calico CNI 插件解决了此问题:

curl https://docs.projectcalico.org/manifests/calico.yaml -O
kubectl apply -f calico.yaml
于 2021-07-24T18:21:36.890 回答
2

我通过安装 Pod 网络 add-o 解决了这个问题,我使用了 Flannel pod 网络,这是一个非常简单的覆盖网络,可以满足 kubernetes 的要求

你可以用这个命令来做到这一点:

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

您可以在 kubernetes 文档中阅读更多相关信息

https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#pod-network

于 2021-05-04T14:35:12.803 回答
1

我面临同样的错误,它看到它看到systemd有问题。我不记得我的上一个systemd版本。但是更新它为我解决了问题。

于 2019-09-02T16:23:17.173 回答
0

我遇到了同样的错误,我在从节点加入集群后看到了这个问题。从节点加入后显示状态“未就绪”。

我检查kubectl describe node ksalve并观察了上述问题。在深入挖掘之后,我发现systemd主节点和从节点是不同的。在我配置的主systemd服务器中,从服务器只有默认值cfgroup

一旦我systemd从主节点中删除,从属状态立即变为Ready.

于 2020-05-08T13:40:05.900 回答
0

就我而言,这是因为我忘记打开8285端口。8285法兰绒使用端口,您需要从防火墙打开它。

例如:
如果您使用 flannel 插件并且您的操作系统是 centOS:

firewall-cmd --permanent --add-port=8285/tcp 
firewall-cmd --reload
于 2021-11-02T12:57:52.343 回答
0

这适用于 AWS VPC CNI

  1. Step1 : kubectl 获取 mutatingwebhookconfigurations -oyaml > mutating.txt

  2. 第二步:kubectl delete -f mutating.txt

  3. Step3:重启节点

  4. Step4 : 你应该可以看到节点已经准备好了

  5. Step5:重新安装 mutatingwebhook 配置

于 2021-01-11T09:34:08.527 回答
0

我的问题是我在创建集群后更新主机名。这样一来,就好像主人不知道那是主人一样。

我还在跑步:

sudo hostname $(curl 169.254.169.254/latest/meta-data/hostname)[ 1 ][ 2 ]

但现在我在集群初始化之前运行它

导致我运行的错误sudo journalctl -u kubelet

Unable to register node "ip-10-126-121-125.ec2.internal" with API server: nodes "ip-10-126-121-125.ec2.internal" is forbidden: node "ip-10-126-121-125" cannot modify node "ip-10-126-121-125.ec2.internal"
于 2020-12-08T16:19:12.747 回答