Kubernetes - 以编程方式查找服务ip range CIDR

时间:2017-05-24 09:30:27

标签: kubernetes gcloud kubectl

我需要一种获得服务群集ip范围(作为CIDR)的方法,该范围适用于所有Kubernetes群集。

我尝试了以下内容,它适用于使用kubeadm创建的集群,因为它会抓取apiserver pod的参数:

$ kubectl cluster-info dump  | grep service-cluster-ip-range
                        "--service-cluster-ip-range=10.96.0.0/12",

这不适用于所有Kubernetes集群,即gcloud

所以问题是,以编程方式获取服务ip范围的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

我认为没有办法通过K8s Api访问此类信息,有一个未解决此功能的公开问题:https://github.com/kubernetes/kubernetes/issues/25533。如果您可以访问有问题的k8s群集的etcd,那么有一个密钥包含有关服务cidr范围的信息:/registry/ranges/serviceips。您可以使用etcdctl获取值(假设您拥有适当的权限):etcdctl --enpoints=<your etcd> --<any authentication flags> get "/registry/ranges/serviceips" --prefix=true