首页 > 解决方案 > Kubernetes 工作节点不会在 kubeadm 加入时自动分配 podCidr

问题描述

我设置了一个多主 Kubernetes 集群,有一个工作节点。我用 kubeadm 设置了集群。在 上kubeadm init,我通过了-pod-network-cidr=10.244.0.0/16(使用 Flannel 作为网络覆盖)。

kubeadm join在第一个工作节点上使用时,一切正常。由于某种原因,在尝试添加更多工作人员时,没有一个节点会自动分配 podCidr。

我使用文档手动修补每个工作节点,使用 kubectl patch node <NODE_NAME> -p '{"spec":{"podCIDR":"<SUBNET>"}}'命令并且一切正常。

但这并不理想,我想知道如何修复我的设置,以便只需添加kubeadm join命令就会自动分配 podCidr。

任何帮助将不胜感激。谢谢!

编辑:

I1003 23:08:55.920623       1 main.go:475] Determining IP address of default interface

I1003 23:08:55.920896       1 main.go:488] Using interface with name eth0 and address 

I1003 23:08:55.920915       1 main.go:505] Defaulting external address to interface address ()

I1003 23:08:55.941287       1 kube.go:131] Waiting 10m0s for node controller to sync

I1003 23:08:55.942785       1 kube.go:294] Starting kube subnet manager

I1003 23:08:56.943187       1 kube.go:138] Node controller sync successful

I1003 23:08:56.943212       1 main.go:235] Created subnet manager: 

Kubernetes 子网管理器 - kubernetes-worker-06

I1003 23:08:56.943219       1 main.go:238] Installing signal handlers

I1003 23:08:56.943273       1 main.go:353] Found network config - Backend type: vxlan

I1003 23:08:56.943319       1 vxlan.go:120] VXLAN config: VNI=1 Port=0 GBP=false DirectRouting=false

E1003 23:08:56.943497       1 main.go:280] Error registering network: failed to acquire lease: node "kube-worker-02" pod cidr not assigned

I1003 23:08:56.943513       1 main.go:333] Stopping shutdownHandler...

标签: kuberneteskubeadmflannel

解决方案


我能够解决我的问题。在我的多主设置中,在我的一个主节点上,kube-controller-manager.yaml(在 /etc/kubernetes/manifest 中)文件缺少以下两个字段:

  • --allocate-node-cidrs=true
  • --cluster-cidr=10.244.0.0/16

将这些字段添加到 yaml 后,我重置了kubelet服务,并且在尝试添加新的工作节点时一切正常。

这是我的一个错误,因为在使用 初始化我的一个主节点时kubeadm init,我必须忘记传递--pod-network-cidr. 哎呀。

希望这可以帮助那里的人!


推荐阅读