如何获取kubernetes pod网络的CIDR?

down 发表于: 2022-07-27   最后更新时间: 2022-07-28 00:08:53   1,723 游览

我有一个正在运行的k8s集群,用kubeadm安装的。

在初始化时,我没有通过选项--pod-network-cidr

我怎样才能得到pod网络的CIDR?

我查看了/etc/kubernetes/manifests/kube-apiserver.yaml,这好像是kubeadm使用的kube-apiserver,但该信息没有被包括在内。

发表于 2022-07-27

这个命令会返回集群中每个节点的CIDR地址。

kubectl get nodes -o jsonpath='{.items[*].spec.podCIDR}'

显示 kube-proxy 使用的 pod 网络 CIDR:

kubectl cluster-info dump | grep -m 1 cluster-cidr

--cluster-cidr / --pod-network-cidr 是提供给 kube-controller-manager 的配置。

你可以简单地做ps -ef | grep "cluster-cidr" 得到你想要的。

也可以通过文件获取,在/etc/kubernetes/manifests/kube-controller-manager.yaml中:

# sudo grep cidr /etc/kubernetes/manifests/kube-*
/etc/kubernetes/manifests/kube-controller-manager.yaml:    - --allocate-node-cidrs=true
/etc/kubernetes/manifests/kube-controller-manager.yaml:    - --cluster-cidr=192.168.0.0/16
/etc/kubernetes/manifests/kube-controller-manager.yaml:    - --node-cidr-mask-size=24

如果是kubeadm,可以这样获取:

kubeadm config view | grep Subnet
你的答案

查看kubernetes相关的其他问题或提一个您自己的问题