我需要一种方法来获取适用于所有 Kubernetes 集群的服务集群 IP 范围(如 CIDR)。
我尝试了以下方法,这对于使用 kubeadm 创建的集群效果很好,因为它会 grep apiserver pod 的参数:
$ kubectl cluster-info dump | grep service-cluster-ip-range
"--service-cluster-ip-range=10.96.0.0/12",
这不适用于所有 Kubernetes 集群,即 gcloud
所以问题是,以编程方式获取服务 IP 范围的最佳方法是什么?
我认为没有办法通过 K8s Api 访问此类信息,有一个未解决的问题来解决缺乏此功能的问题:https://github.com/kubernetes/kubernetes/issues/25533 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
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)