
#打卡不停更# calico IPAM 原创
IPAM
在云网络环境中,网络之间的通路固然重要,但是 IP 地址的管理也同样重要,否则在云网络环境中, 混乱的 IP 地址并不能给我们提供优良的通信和管理,所以我们这篇文档介绍 Calico IPAM ,我们看一下 Calico 中的 IPAM 的这些高级特性。
默认情况下,我们安装的就是 calico IPAM
基于拓扑分配 IP 地址
assign-ip-addresses-topology
可以理解为针对某些特定的节点,分配不同的 IP池,从而分配到不同的 IP 地址。
比如我们针对 机架分配 IP 池。
1.node 节点分配标签
2.删除默认分配的 IPPool
默认的 IPPool 已经占据了所有可分配的IP地址,所以需要先删除掉,然后我们新建新池
3.为每个机架创建新的 IPPOOL
这个地方需要根据上一步创建的备份内容具体修改 cidr
部分和 nodeSelector
部分即可,因为我本地是 BGP 的模式,所以和 默认的 IPIP 模式有一些差别。
4.验证 pod 遵守了配置
5.注意
Calico IPAM 不会将 IP 地址重新分配给已经运行的工作负载。若要使用新配置的 IP 池中的 IP 地址更新正在运行的工作负载,必须重新创建它们。我们建议在投入生产之前或在维护窗口期间这样做。
POD 配置静态 IP 地址
use-specific-ip
在 calico 中,通过增加注解的方式,可以配置静态 IP 地址
注意,我们配置的ip 地址必须是 ippool 池中的地址
迁移至另一个 IPPOOL
如果您按照这些步骤操作,现有的 pod 连接将不会受到影响。(如果在创建和验证新池之前删除旧的 IP 池,现有的 pods 将受到影响。)当 pod 被删除时,应用程序可能暂时不可用(取决于应用程序的类型) 。
1.添加一个新的 ippool
注意: 强烈建议您的 Calico IP 池位于 Kubernetes 集群 CIDR 中。如果 pods IPs 是从 Kubernetes 集群 CIDR 之外分配的,那么一些流量可能会不必要地应用 NAT,从而导致意外的行为。
k8s CIDR:10.244.0.0/16
当前默认 CIDR:10.244.1.0/24
迁移新的 CIDR:10.244.22.0/24
创建一个新的 IPPOOL
2.禁用旧的 IPPOOL
注意: 禁用 IP 池只能防止新的 IP 地址分配; 它不会影响现有 pod 的网络。
3. 创建 pod 验证此 IPPOOL
创建 pod 验证是否在 10.244.22.0/24 网段
4.迁移之前老 IPPOOL 中的 pod
如果是deployment 或者 statefulset 等其他控制的pod,只需要将之前的pod 删除,验证新创建的 pod 是否在此网段即可。
5.删除旧的 IPPOOL
现在您已经验证了 pods 正在从新的范围获得 IPs,您可以安全地删除旧池。
