我对 Calico IP 有点困惑:
如果我使用以下命令将 calico 添加到 kubernetes 集群
kubectl apply -f https://docs.projectcalico.org/v3.14/manifests/calico.yaml
Run Code Online (Sandbox Code Playgroud)
CALICO_IPV4POOL_CIDR 为 192.168.0.0/16,因此 IP 范围为 192.168.0.0 至 192.168.255.255
现在我已经使用以下命令启动了集群:
kubeadm init --pod-network-cidr=20.96.0.0/12 --apiserver-advertise-address=192.168.56.30
Run Code Online (Sandbox Code Playgroud)
因此,现在 Pod 的 IP 地址(使用 Pod 网络 CIDR)将在:20.96.0.0 到 20.111.255.255 之间
这两个不同的IP是什么?我的 Pod 正在获取 IP 地址 20.96.205.192 等。
CALICO_IPV4POOL_CIDR
下#commented
,请查看calico.yaml中的这些行:# The default IPv4 pool to create on startup if none exists. Pod IPs will be
# chosen from this range. Changing this value after installation will have
# no effect. This should fall within `--cluster-cidr`.
# - name: CALICO_IPV4POOL_CIDR
# value: "192.168.0.0/16"
Run Code Online (Sandbox Code Playgroud)
对于所有效果,除非在部署前手动修改,否则在部署期间不会考虑这些行。
# kubeadm 上的 Pod CIDR 自动检测需要访问配置映射。
这证实了 CIDR 是从集群获取的,而不是从calico.yaml
.
这两个不同的IP是什么?我的 Pod 正在获取 IP 地址 20.96.205.192 等。
Kubeadm 支持许多Pod 网络插件,Calico 就是其中之一。另一方面,Calico 支持多种部署,kubeadm 只是其中之一。
部署中的Kubeadm--pod-network-cidr
是定义 pod 网络 CIDR 的正确方法,这就是20.96.0.0/12
有效使用范围的原因。
CALICO_IPV4POOL_CIDR
对于不为 Pod 网络指定 CIDR 池预留的其他类型的部署来说,这是必需的。
笔记:
20.96.0.0/12
不是专用网络范围,如果具有该范围内公共 IP 的客户端尝试访问您的服务,可能会导致问题。附加参考资料:
归档时间: |
|
查看次数: |
7174 次 |
最近记录: |