您如何找到集群&;Kubernetes群集的服务CIDR?

您如何找到集群&;Kubernetes群集的服务CIDR?,kubernetes,kubectl,Kubernetes,Kubectl,一旦Kubernetes集群已经运行,您如何找到它的集群/服务CIDR 我知道Minikube是10.0.0.1/24 对于GKE,您可以通过 gcloud container clusters describe XXXXXXX --zone=XXXXXX | grep -e clusterIpv4Cidr -e servicesIpv4Cidr 但是您如何在通用的Kubernetes集群上找到答案,特别是通过kubectl?您是否检查了以下命令是否包含您需要的信息 kubectl集群信息

一旦Kubernetes集群已经运行,您如何找到它的集群/服务CIDR

我知道Minikube是10.0.0.1/24

对于GKE,您可以通过

gcloud container clusters describe XXXXXXX --zone=XXXXXX |
  grep -e clusterIpv4Cidr -e servicesIpv4Cidr

但是您如何在通用的Kubernetes集群上找到答案,特别是通过
kubectl

您是否检查了以下命令是否包含您需要的信息


kubectl集群信息转储

由于rep的原因,我还不能留下评论,所以我只想用我找到的答案来回答

对于minikube来说,苹果酒似乎可以改变,特别是对我来说。我在.minikube目录下找到了CIDR

.minikube\profiles\minikube

对于windows,您可以在以下位置找到:

C:\Users\YourUserName\.minikube\profiles\minikube

对于linux和mac,我假设它在~/.minikube目录下

在dir中应该有一个名为config.json的文件,它有一个json对象“KubernetesConfig”:{}和以下字段:ServiceCIDR。它的价值应该是您服务的CIDR

不幸的是,我没有其他提示让kubectl找到CIDR,也许它更像是一个提供商的东西,取决于您在哪里/如何运行kubernetes。

获取服务IPs范围

kubectl cluster-info dump | grep -m 1 service-cluster-ip-range
您将看到类似的内容,例如--service cluster ip range=xxx.yy.0.0/13

获取吊舱IPs范围

kubectl cluster-info dump | grep -m 1 cluster-cidr
使用kubeadm,您将看到类似于--cluster cidr=xxx.yy.0.0/11的内容

kubeadm配置视图| grep子网

下面的输出是不言自明的

子网:10.10.0.0/16


serviceSubnet:10.96.0.0/12

我花了几个小时寻找一种通用的方法来实现这一点。我放弃了搜索,写了自己的。从Kubernetes 1.18开始,除了GKE之外,这种方法还适用于云提供商

SVCRANGE=$(echo '{"apiVersion":"v1","kind":"Service","metadata":{"name":"tst"},"spec":{"clusterIP":"1.1.1.1","ports":[{"port":443}]}}' | kubectl apply -f - 2>&1 | sed 's/.*valid IPs is //')
echo $SVCRANGE
172.21.0.0/16
此一行程序的工作原理是将无效的服务群集IP馈送到kubectl apply并解析错误输出,该错误输出提供服务CIDR信息。

与建议类似,但仅返回CIDR:

POD_CIDR=$(kubectl cluster-info dump | grep -m 1 -Po '(?<=--cluster-cidr=)[0-9.\/]+')
SERVICE_RANGE=$(kubectl cluster-info dump | grep -m 1 -Po '(?<=--service-cluster-ip-range=)[0-9.\/]+')

POD_CIDR=$(kubectl集群信息转储| grep-m 1-Po'(?
kubectl描述cm kubeadm配置-n kube系统| grep子网

如果未指定
--POD网络CIDR
--service CIDR
,则使用默认值。获取默认值:

kubeadm config print init-defaults
或者获取配置映射:

kubectl  --namespace kube-system get configmap kubeadm-config -o yaml

对我来说,
kubectl cluster info dump | grep-i cidr
用于查找PIDCIDR和clusterCIDR。错误:缺少apiVersion或种类,无法分配;没有为类型core注册种类。nodelist此错误存在于1.11中,应在1.12中修复:不适用于所有网络插件(我正在使用Canal)干净的解决方案,也是唯一一个对我有效的解决方案。我失去了“dump”的访问权限,现在是下班时间,这帮我弄明白了:)你是MVP@StevenDake。我在1.14.9上试过这个,它在那里也有效。Thnx。第一个答案对我不起作用,但这个答案起作用了!有没有类似的方法来查找集群CIDR?(pod ip范围)也适用于k3s。请注意,这不适用于EKS。