先判断:这门课值不值得你花时间

这门短课解决的是容器网络底层的落地问题,不是教你如何部署或运维现成的集群。如果日常只是用现成插件,确实没必要碰底层开发。但如果你在做内部云平台、需要定制容器网络策略,或者想彻底搞懂容器跨主机通信的底层链路,这门课的切入点非常务实。它直接带你从零手写一个能跑通的插件,把网桥创建、IP分配、veth设备连接这些平时被隐藏的细节全拆开。这比单纯啃源码高效得多,能让你在遇到疑难网络故障时,有能力去定位是哪一环出了问题。

门槛与建议:适合什么基础、先看哪几块

编辑必须提前预警:这绝对不是零基础能直接啃的课。它要求你已经有熟练的 Kubernetes 基本操作经验,能独立写 Go 代码,并且对 Linux 内核网络概念不陌生。如果你连 Pod、Service 都没部署过,或者没写过 Go 的并发与接口,建议先去补齐这些前置知识再来。在内容编排上,建议先看开头对规范的基本理解,以及用 shell 写最简单插件的那一讲。这两节能帮你迅速建立规范中“二进制加环境变量”的运行心智模型。然后再进入 Go 代码结构部分,重点看如何调用现成工具分配 IP,以及用代码创建并连接 veth 设备的连续三讲。这几节是核心,把网络命名空间打通,整个插件的逻辑骨架就立住了。

落地预期:学完能独立做什么、资料怎么用

学完后,你不一定能马上写出功能大而全的网络方案,但绝对能独立写出一个具备基础连通性的本地测试插件。这意味着你能控制容器的 IP 分配逻辑,理解数据包是如何从容器走到宿主机网桥的。在配合资料练习时,不要只看视频。强烈建议在本地虚拟机里备好测试环境,跟着每一讲的进度,自己把代码敲出来编译。尤其是涉及创建虚拟网卡和连通性测试的部分,必须亲自抓包验证。当你在宿主机和容器之间成功互 ping 通的那一刻,这门课的价值才算真正转化成了你自己的底层开发能力。


本课程是k8s基础速学4的子课程。对cni插件做个入门级的引导教学。本课程不适合新手,需要熟练掌握k8s基操、golang开发、Linux相关内核知识点。短课程

课程目录

*   第1讲:开张课、课程基本内容、CNI的基本理解

*   第2讲:使用shell 写个最简单的插件、本地测试

*   第3讲:go写cni插件之基本代码结构

*   第4讲:利用cni插件创建网桥

*   第5讲:补充课:host-local插件学习

*   第6讲:代码调用host-local 得到分配的IP

*   第7讲:cni插件之:用代码创建veth设备

*   第8讲:代码创建veth设备(2):veth连接网桥、连通性测试

*   第9讲:代码创建veth设备(3):容器和宿主机的互通