我需要一种获得服务群集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范围的最佳方法是什么?
答案 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
。