指令层:kubectl → API Server → kubelet(发起者);
网络层:Calico CNI(分配 IP)→ etcd(存 IP 信息)→ confd(同步配置);
执行层:Felix(本机路由 / 网络配置)→ BIRD(集群路由同步);
载体层:pause 容器(承载 Pod 网络命名空间)。
我只帮你把最精准的角色关系捋顺,你就彻底闭环了:
kubectl = 发号施令的老大,只说「创建 Pod」kubelet = 每个节点的小弟,负责落地创建 Pod ↓小弟(kubelet)干活时,调用本节点的 CNI 网络插件 CNI 负责:分配 Pod IP → 把 IP 信息注册到 etcd ↓confd 盯着 etcd → 把配置同步给本节点的 Felix Felix 负责:在本机写好路由表 ↓本节点的 BIRD 把 Felix 的路由表同步给集群里所有其他节点的 BIRD↓所有节点都知道:这个 Pod IP 在哪台机器上跨节点 Pod 就能互通了
kubectl 下令 → kubelet 执行 → CNI 分 IP 存 etcd → Felix 写本地路由 → BIRD 全集群同步路由