在 Kubernetes 中,每个节点(Node)上创建的 Pod 子网并不会直接存储在 etcd 中。etcd 是一个高可用的分布式键值存储系统,主要用于存储 Kubernetes 集群中的配置数据、元数据和状态信息等。
在 Kubernetes 中,Pod 网络是由 CNI(Container Network Interface)插件动态生成的,CNI 插件会根据集群网络配置和 Pod 规格来为每个 Pod 动态分配 IP 地址,并设置对应的网络规则。CNI 插件可以使用多种底层网络技术实现网络隔离与路由功能,比如 Flannel、Calico、Weave Net 等。
当一个 Pod 被调度到某个节点时,Kubernetes Scheduler 会将 Pod 的所有信息(包括 IP 地址、容器镜像、容器命令等)编码为 JSON 格式,并存储到 etcd 中。此外,每个节点上还运行着 kubelet 进程,kubelet 进程负责管理该节点上运行的所有容器和 Pod,并定期向 API Server 上报各种资源对象的状态信息。因此,在 Kubernetes 集群中,Pod 子网及其相关信息都是分散存储在各个组件中,并由 API Server 和 etcd 协同管理。
需要注意的是,在一些特殊情况下(例如使用 HostNetwork 模式或者自定义 CNI 插件等),Pod 可能会共享节点的网络命名空间,此时 Pod 的 IP 地址和网络规则将直接继承自节点。此种情况下,Pod 子网的信息并不会存储在 etcd 中。