Kubernetes - 以编程方式找出服务 ip 范围 CIDR

标签 kubernetes gcloud kubectl

我需要一种方法来获取适用于所有 Kubernetes 集群的服务集群 IP 范围(如 CIDR)。

我尝试了以下方法,它适用于使用 kubeadm 创建的集群,因为它会获取 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 访问此类信息,有一个 Unresolved 问题可以解决此功能的缺失:https://github.com/kubernetes/kubernetes/issues/25533 .如果您有权访问相关 k8s 集群的 etcd,则有一个包含有关服务 cidr 范围信息的 key :/registry/ranges/serviceips .您可以使用 etcdctl 获取该值(假设您拥有适当的权限):etcdctl --enpoints=<your etcd> --<any authentication flags> get "/registry/ranges/serviceips" --prefix=true .

关于Kubernetes - 以编程方式找出服务 ip 范围 CIDR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44154425/

相关文章:

kubernetes - gcloud kubernetes 节点池 : high priority for preemptible VM nodes possible

kubernetes - 在 kubernetes 中安装 helm chart 时出错

kubernetes - 多主 K8s 集群推荐的证书策略是什么?

google-cloud-platform - 传递多个过滤器选项

gcloud - 如何通过 gcloud cli args 或环境变量将 secretEnv 指定到 cloudbuild.yaml

kubernetes - 如何使用 kubectl 标签重新标记 k8s 中的多个 pod?

kubectl - 当前上下文未设置 Kubectl

kubernetes - InitContainer 或 Helm Hook 数据库迁移回滚

Kubernetes - 服务网格是必须的吗?

kubernetes - 在 YAML 中对 Kubernetes 服务设置注释的正确方法是什么