我正在使用以下方法启动kubernetes集群:
kubeadm init --pod-network-cidr=192.168.1.0/16 --apiserver-advertise-address=192.168.0.33
我对网络概念或CIDR不太熟悉,如何确定Pod CIDR的适当值?
我以前使用过10.244.0.0/16
,但结果是:
Failed create pod sandbox: rpc error: code = Unknown desc = failed to set up sandbox container "78cf556b2e87e15cc5ec8827ca3a397c16dcfb90f045e225a17028f072db6e5f" network for pod "coredns-78fcdf6894-c7kq2": NetworkPlugin cni failed to set up pod "coredns-78fcdf6894-c7kq2_kube-system" network: failed to set bridge addr: "cni0" already has an IP address different from 10.244.1.1/24
答案 0 :(得分:8)
关于CIDR(Classless Inter-Domain Routing
):这只是定义要在网络中使用的IP地址的子网/范围的一种表示法。
如果要使用/16
,则必须计划创建一个相当大的Kubernetes集群,因为它将为您提供>65k
个虚拟IP地址(请注意,我们正在谈论SDN / Virtual网络,即您将为kubernetes POD设置的IP,而不是您的实际节点/主机。
这是一个CIDR表,您可以将其用作参考来确定更合适的范围:
https://kb.wisc.edu/ns/page.php?id=3493
现在,就您的失败而言,取决于您在Kubernetes集群中使用的CNI(Container Networking Interface
)插件。如果您使用的默认值必须为Kubenet
,这是有局限性的。
此处有更多信息:
https://kubernetes.io/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/
和这里:
https://chrislovecnm.com/kubernetes/cni/choosing-a-cni-provider/
我希望有帮助。