Kubernetes 集群中的每个节点都有一个专用的 IP 地址范围,可以分配给 Pod。如何检查该 IP 范围?
答案1
您可以在 OpenShift 中执行以下操作:
# oc get hostsubnet
NAME HOST HOST IP SUBNET EGRESS CIDRS EGRESS IPS
master0.ocp.lab.edu master0.ocp.lab.edu 10.9.1.175 192.168.2.0/23
master1.ocp.lab.edu master1.ocp.lab.edu 10.9.1.176 192.168.0.0/23
master2.ocp.lab.edu master2.ocp.lab.edu 10.9.1.177 192.169.0.0/23
worker0.ocp.lab.edu worker0.ocp.lab.edu 10.9.1.178 192.170.0.0/23
worker1.ocp.lab.edu worker1.ocp.lab.edu 10.9.1.179 192.171.0.0/23
在 Kubernetes 中如下:
k get nodes -o custom-columns=NODE:.metadata.name,POD_CIDR:.spec.podCIDR
NODE POD_CIDR
master.lab.edu 192.168.0.0/24
worker0.lab.edu 192.168.1.0/24
worker1.lab.edu 192.168.2.0/24
注意:- 在 kubernetes 中,您还可以看到针对工作节点:
k get nodes -o custom-columns=NODE:.metadata.name,POD_CIDR:.spec.podCIDR
NODE POD_CIDR
master.lab.edu 192.168.1.0/24
worker0.lab.edu <none>
worker1.lab.edu <none>
这意味着您需要在“kubeadm init”过程中分配 /16 作为 pod 网络 cidr。
答案2
你可以做这样的事情
[root@kmaster ~]# k get nodes
NAME STATUS ROLES AGE VERSION
kmaster.mylab.edu Ready control-plane 26h v1.25.4
kworker0.mylab.edu Ready <none> 25h v1.25.4
kworker1.mylab.edu Ready <none> 25h v1.25.4
[root@kmaster ~]# k describe node | egrep -w "PodCIDR:|Name:"
Name: kmaster.mylab.edu
PodCIDR: 10.244.0.0/24
Name: kworker0.mylab.edu
PodCIDR: 10.244.1.0/24
Name: kworker1.mylab.edu
PodCIDR: 10.244.3.0/24
[root@kmaster ~]#
答案3
其中一种方法是检查 etcd。
oc rsh -n openshift-etcd etcd-master02
要检查分配给特定节点的 pod 范围:
etcdctl get /kubernetes.io/network.openshift.io/hostsubnets/master01
在输出中,您将看到一个子网,例如“10.8.2.0/23”`
列出所有集群节点的分配:
etcdctl get --prefix /kubernetes.io/network.openshift.io/hostsubnets/