当前通讯!Spiderpool:如何解决僵尸 IP 回收的问题
Spiderpool 在各种测试场景下表现优秀。虽然 Spiderpool 是一种适用于 Underlay 网络下的 IPAM 解决方案,但是其 IP 分配以及回收的能力,相较于主流 Overlay CNI (如 Calico)也毫不逊色,尽管 Spiderpool 面临着更多的、复杂的 IP 地址抢占与冲突的问题。
(资料图片)
在 Underlay 网络中,如何回收僵尸 IP?云原生网络开源项目–Spiderpool 提供了相应的解决方案,让我们一探究竟。
01Underlay网络解决方案
为什么需要 Underlay 网络解决方案?在数据中心私有云中,有许多需要 Underlay 网络的应用场景:
低延迟和高吞吐量:在一些需要低延迟和高吞吐量的应用场景中,Underlay 网络方案通常比 Overlay 网络方案更具优势。由于 Underlay 网络是基于物理网络构建的,因此可以提供更快速和稳定的网络传输服务。传统主机应用上云:在数据中心内,许多传统主机应用仍然使用传统的网络对接方式,例如服务暴露和发现、多子网对接等。在这种情况下,使用 Underlay 网络解决方案可以更好地满足这些应用的需求。数据中心网络管理:数据中心管理人员通常需要对应用实施安全管控,例如使用防火墙、Vlan 隔离等手段。此外,他们还需要使用传统的网络观测手段实施集群网络监控。使用 Underlay 网络解决方案可以更方便地实现这些需求。独立的宿主机网卡规划:在一些特殊的应用场景下,例如 Kubevirt、存储项目、日志项目等,需要实施独立的宿主机网卡规划,以保证底层子网的带宽隔离。使用Underlay 网络解决方案可以更好地支持这些应用的需求,从而提高应用的性能和可靠性。随着数据中心私有云的不断普及,Underlay 网络作为数据中心网络架构的重要组成部分,已经被广泛应用于数据中心的网络架构中,以提供更高效的网络传输和更好的网络拓扑管理能力。
02Underlay 网络中的僵尸 IP 问题
什么是僵尸 IP ?在 IPAM 中记录了分配给 Pod 使用的 IP 地址,但是这些 Pod 在 Kubernetes 集群中已经不复存在,这些 IP 可称为 僵尸 IP 。
在实际的生产中,难免会遇到集群中出现僵尸 IP,如:
在集群中 delete Pod 时,但由于网络异常或 cni 二进制 crash 等问题,导致调用 cni delete 失败,从而导致 IP 地址无法被 cni 回收。节点意外宕机后,集群中的 Pod 永久处于 `deleting` 状态,Pod 占用的 IP 地址无法被释放。在使用 Underlay 网络的 Kubernetes 集群中,当出现僵尸 IP 时,可能会带来如下的一些问题:
Underlay 网络下 IP 资源有限:在大规模集群中,Pod 的数量可能非常庞大,IPAM 会为每个 Pod 实例分配指定的 Underlay 子网 IP 以进行网络通信,如果出现僵尸 IP 问题,可能会导致大量的 IP 资源浪费,或将面临无 Underlay IP 资源可用的局面。固定 IP 需求,导致新 Pod 启动失败:将一个拥有 10 个 IP 地址的 IP 池,固定给 10 个副本的应用使用,如出现上述的僵尸 IP 问题,旧的 Pod IP 无法被回收,新 Pod 将因为缺少 IP 资源,且无法获取到可用的 IP,从而无法启动。这将对应用的稳定性和可靠性造成威胁,甚至可能导致整个应用程序都无法正常运行。03解决方案:Spiderpool
Spiderpool(https://github.com/spidernet-io/spiderpool) 是一个 Kubernetes 的 Underlay 网络解决方案,通过提供轻量级的 meta 插件和 IPAM 插件,Spiderpool 灵活地整合与强化了开源社区中现有的 CNI 项目,最大程度的简化 Underlay 网络下 IPAM 的运维工作,使得多 CNI 协同工作真正的可落地,支持运行在裸金属、虚拟机、公有云等环境下。
Spiderpool 通过如下的 IP 回收机制,以解决 Underlay 网络中出现的故障 IP 问题:
对处于 Terminating 状态的 Pod,Spiderpool 将在 Pod 的 spec.terminationGracePeriodSecond 后,自动释放其 IP 地址。该功能可通过环境变量 SPIDERPOOL_GC_TERMINATING_POD_IP_ENABLED 来控制。该能力能够用以解决节点意外宕机的故障场景。在 cni delete 失败等故障场景,如果一个曾经分配了 IP 的 Pod 被销毁后,但在 IPAM 中还记录分配着 IP 地址,形成了僵尸 IP 的现象。Spiderpool 针对这种问题,会基于周期和事件扫描机制,自动回收这些僵尸 IP 地址。04等比例 IP分配测试
IPAM 要求能够精准地分配 IP 地址,同时 Spiderpool 还具备了健壮的故障 IP 回收能力,笔者做了如下的等比例 IP 分配测试,来进行验证。本次等比例 IP 分配测试,基于 0.3.1 版本的 CNI Specification,以 Macvlan 搭配 Spiderpool(版本 v0.6.0)作为测试方案,并选择了开源社区中的 Whereabouts(版本 v0.6.2)搭配 Macvlan 、Kube-ovn(版本 v1.11.8)Calico-ipam(版本 v3.26.1)几种网络解决方案为对比,测试场景如下:
1. 创建 1000 个 Pod,同时限制可用的 IPv4/IPv6 地址数量均为 1000 个,确保可用的 IP 地址数量与 Pod 数量为 1:1。
2. 使用如下命令一次性地重建这 1000 个 Pod,记录被重建的 1000 个 Pod 全部 Running 的耗时。验证在固定 IP 地址时,并发重建的 Pod 在涉及 IP 地址的回收、抢占与冲突的场景下,各 IPAM 插件能否快速的调节好有限的 IP 地址资源,保证应用恢复的速度。
~# kubectl get pod | grep "prefix" | awk "{print $1}" | xargs kubectl delete pod
3. 将所有节点下电后再上电,模拟故障恢复,记录 1000 个 Pod 再次达到 Running 的耗时。
4. 删除所有的 Deployment,记录所有 Pod 完全消失的耗时。
测试数据如下:
Spiderpool 与 Kube-ovn 的 IPAM 分配原理,是整个集群节点的所有 Pod 都从同一个 CIDR 中分配 IP,所以 IP 分配和释放需要面临激烈的竞争,IP 分配性能的挑战会更大;Whereabouts 和 Calico 的 IPAM 分配原理,是每个节点都有一个小的 IP 集合,所以 IP 分配的竞争比较小,IP 分配性能的挑战会小。但从实验数据上看,虽然 Spdierpool 的 IPAM 原理是 “吃亏” 的,但是分配 IP 的性能却是很好的。
在测试 Macvlan + Whereabouts 这个组合期间,创建的场景中 922 个 Pod 在 14m25s 内以较为均匀的速率达到 Running 状态,自此之后的 Pod 增长速率大幅降低,最终 1000 个 Pod 花了 21m49s 达到 Running 状态。至于重建的场景,在 55 个 Pod 达到 Running 状态后,Whereabouts 无法继续分配 IP 给 Pod。由于测试场景中 IP 地址数量与 Pod 数量为 1:1,如果 IPAM 组件未能正确的回收 IP,新 Pod 将因为缺少 IP 资源,且无法获取到可用的 IP,从而无法启动。
05总结
从上面的测试可以发现,Spiderpool 在各种测试场景下表现优秀。虽然 Spiderpool 是一种适用于 Underlay 网络下的 IPAM 解决方案,但是其 IP 分配以及回收的能力,相较于主流 Overlay CNI (如 Calico)也毫不逊色,尽管Spiderpool面临着更多的、复杂的 IP 地址抢占与冲突的问题。
- 当前通讯!Spiderpool:如何解决僵尸 IP 回收的问题
- 掌上盛京医院挂号_盛京医院挂号系统
- 焦点报道:金证股份中标陕国投信托新一代TA系统建设项目
- 全国多地地铁列车推分区控温 “强冷”“弱冷”车厢差2℃-全球快看
- 浙江有礼 瓯越先行:“浙风十礼”团扇送来“有礼之风”
- 【世界速看料】台上5人侃侃而谈,台下仅1个听众?这家券商回应!
- 发展集体经济 助推强村富民 环球讯息
- 彩金闹天宫金币价格今天多少一克(2023年06月29日)_天天百事通
- 今日热门!波司登防晒衣,撑不过一个夏天?
- 南京财经大学中外合作办学专业有哪些? 环球简讯
- 科尼赛克承诺新的最高速度记录尝试 天天动态
- 2023年郴州市国有林场工作暨业务培训会在嘉禾召开 天天微资讯
- 5G进入“升维发展”的下半场 天天信息
- 兰州城市四区初一新生今日看榜去!
- 6月28日复盘:南方精工从悲观到乐观,割肉新高!_世界微头条
- 2023年关断器概念上市公司龙头有哪些?(6月29日)|天天最新
- 天天快消息!又一大佬警告:超级铜周期即将来临!
- 郑西高速公路路线图(郑西高速铁路工程总结) 当前报道
- 当前头条:春风摩托车怎么样质量好(春风摩托车怎么样)
- 艾美疫苗港交所公告:针对新冠病毒Delta及OmicronBA.5变异株的二价mRNA疫苗获得国家药品监督管理局临床试验批准_环球热资讯
- 美国银行业通过美联储压力测试_天天新消息
- 缪斯水仙积雪草面膜_缪斯水仙面膜好不好
- 智通全球财经日志|6月29日
- 【环球报资讯】推特会让你下周隐藏你的回复
- 爆冷!中超冠军无地自容,神锋屡失良机,名记愤怒1言令球迷绝望
- 有钱君与装穷君(对于有钱君与装穷君简单介绍)
- 世界即时看!鹿晗演唱会社恐版提词器 网友:很可爱,被笑到了
- 转债申购结果:力合微转债公布中签率
- 共建充换电基础设施,蔚来与中国海油达成战略合作_天天聚看点
- 招商局置地获一家银行提供19.5亿元银行贷款额度 期限36个月-全球头条