源码分析 Kubernetes 对 Pod IP 的管理
💡
原文中文,约20200字,阅读约需48分钟。
📝
内容提要
本文介绍了从 kube-controller-manager 到 kubelet 的 Pod IP 管理过程,包括 NodeIpamController 控制器为每个节点分配 Pod IP 网段,cri 调用 container runtime 创建 sandbox,cni 创建 Pod 网络,IPAM 对 Pod IP 进行管理。通过源码分析,可以了解 InPlacePodVerticalScaling 等新知识。
🎯
关键要点
- kube-controller-manager 通过 NodeIpamController 控制器为每个节点分配 Pod IP 网段。
- NodeIpamController 在新节点加入时分配子网段,节点删除时回收子网段。
- 每个节点的子网段不会重叠,独立完成 Pod IP 的分配。
- 集群的 cluster-cidr 和 node-cidr-mask-size 参数需要根据规模进行调整。
- kubelet 通过 cri 调用 container runtime 创建 sandbox。
- container runtime 调用 CNI 创建 Pod 网络。
- IPAM 负责为容器分配 IP 地址,支持多种实现方式。
- 源码分析揭示了 InPlacePodVerticalScaling 作为 Kubernetes 1.27 的新特性。
- 通过源码学习可以深入理解 Pod IP 管理的具体实现细节。
➡️