Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 如何找出库伯内特斯的calico CNI分配给每个节点的podcidr_Kubernetes_Kubernetes Pod_Project Calico_Calico_Cni - Fatal编程技术网

Kubernetes 如何找出库伯内特斯的calico CNI分配给每个节点的podcidr

Kubernetes 如何找出库伯内特斯的calico CNI分配给每个节点的podcidr,kubernetes,kubernetes-pod,project-calico,calico,cni,Kubernetes,Kubernetes Pod,Project Calico,Calico,Cni,使用calico CNI时,是否有直接命令获取分配给每个节点的podcidr 我正在寻找准确的网络和网络掩码分配给每个节点。我无法通过podCIDR value或projectcalico.org/IPv4VXLANTunnelAddr注释从kubectl get nodes获取它。此外,根据calico使用的VXLAN或IPIP隧道,注释也会有所不同 试图通过podCIDR密钥从节点获取。获得以下输出。这不是分配给节点的网络 kubectl get nodes -oyaml | grep -i

使用calico CNI时,是否有直接命令获取分配给每个节点的podcidr

我正在寻找准确的网络和网络掩码分配给每个节点。我无法通过
podCIDR value
projectcalico.org/IPv4VXLANTunnelAddr
注释从
kubectl get nodes
获取它。此外,根据calico使用的VXLAN或IPIP隧道,注释也会有所不同

试图通过podCIDR密钥从节点获取。获得以下输出。这不是分配给节点的网络

kubectl get nodes -oyaml | grep -i podcidr -B 1
  spec:
    podCIDR: 192.168.0.0/24
    podCIDRs:
--
  spec:
    podCIDR: 192.168.2.0/24
    podCIDRs:
试图通过印花布批注获取它。无法找到网络,但网络掩码丢失

kubectl get nodes -oyaml | grep -i ipv4vxlan
      projectcalico.org/IPv4VXLANTunnelAddr: 192.168.33.64
      projectcalico.org/IPv4VXLANTunnelAddr: 192.168.253.192
试图通过印花棉布吊舱取。从印花布日志中找到准确的网络和网络掩码,即192.168.33.64/26

kubectl logs calico-node-h2s9w   -n calico-system | grep cidr
2020-12-14 06:54:50.783 [INFO][18] tunnel-ip-allocator/ipam.go 140:
Attempting to load block cidr=192.168.33.64/26 host="calico-master"

但我想避免查看每个节点上的印花棉布吊舱日志。
是否有更好的方法通过单个命令查找分配给每个节点的podcidr。

您可以使用
etcdctl
了解分配给每个节点的子网块的详细信息

ETCDCTL_API=3 etcdctl ls /calico/ipam/v2/host/node1/ipv4/block/
上面的节点
node1
示例将给出如下内容作为输出

/calico/ipam/v2/host/node1/ipv4/block/192.168.228.192-26
看起来calico添加了一个名为ipamblocks的文件,其中包含分配给每个群集节点的podcidr

自定义资源本身的名称包含节点的podcidr

kubectl get ipamblocks.crd.projectcalico.org 
NAME               AGE
10-42-123-0-26     89d
10-42-187-192-26   89d
获取确切podcidr和nodeip的命令:

kubectl get ipamblocks.crd.projectcalico.org -o jsonpath="{range .items[*]}{'podNetwork: '}{.spec.cidr}{'\t NodeIP: '}{.spec.affinity}{'\n'}"
podNetwork:10.42.123.0/26节点IP:host:
podNetwork:10.42.187.192/26节点IP:主机:

谢谢。但是我从那个印花布命令行得到了以下信息<代码>calicoctl获取ippools名称CIDR选择器默认值-ipv4-ippool 192.168.0.0/16 all()我没有将cidr分配给集群的每个节点。谢谢。这也可以通过对kube apiserver的任何api调用获取吗?据我所知,这是不可能的
podNetwork: 10.42.123.0/26   NodeIP: host:<node1-ip>
podNetwork: 10.42.187.192/26     NodeIP: host:<node2-ip>