正版资源Kubernetes实战解析及源码深度学习
Kubernetes 实战解析及源码深度学习导读 本系列课程专为希望突破“调包侠”瓶颈的开发者设计,旨在解决 Kubernetes 集群从“跑通 Demo"到“理解底层调度机制”的断层问题。市面上多数教程止步于命令行操作,而本课程直指核心:深入剖析 kubelet 组件如何管理容器资源、处理 Cgr
Kubernetes 实战解析及源码深度学习导读
本系列课程专为希望突破“调包侠”瓶颈的开发者设计,旨在解决 Kubernetes 集群从“跑通 Demo"到“理解底层调度机制”的断层问题。市面上多数教程止步于命令行操作,而本课程直指核心:深入剖析 kubelet 组件如何管理容器资源、处理 Cgroup 限制以及调度 CPU 与内存。这门课不仅教会你使用 K8s,更带你走进源码,理解 Pod 创建、Init 容器启动及容器停止的完整生命周期,适合那些希望具备独立排查运行时故障或进行 K8s 二次开发的工程师。
技术栈门槛与前置准备
学习本课程需要一定的 Linux 基础和对 Go 语言的基本阅读能力。课程前几章会快速带你完成 kubeadm 集群部署,并让你部署第一个应用及 Service,确保你有现成的环境进行后续实验。对于进阶的源码剖析部分,建议先观看关于 Cgroup v1/v2 原理的章节,熟悉 Linux 内核的容器资源隔离机制。若对 Golang 的并发模型(如 goroutine、channel)不熟,阅读源码时会有一定难度,建议先复习一下协程相关知识。资料包中的视频会演示具体的代码运行位置和关键逻辑,但请不要只看不练。
核心模块拆解与自学路径
课程结构由浅入深,分为“实战演练”与“源码深挖”两大部分。前几课时用于搭建环境并熟悉核心对象(Pod, Service),这是所有源码阅读的基础。随后课程进入 kubelet 核心模块,首先解读 cgroupManager,理解节点如何根据资源请求创建顶级目录;接着分析 cpuManager、memoryManager 和 deviceManager,搞懂资源如何在拓扑上分配以及设备插件如何挂载;最后聚焦容器生命周期,详细拆解 pleg 对象如何监控容器状态,以及 containerRuntime 如何拉取镜像、创建 init 容器、运行主容器并执行停止流程。建议按此顺序学习,每看一个源码模块,就自己在本地代码库中对应位置打断点或添加日志验证理解。
资料配合练习与最终产出
资料包并非单纯的视频观看列表,而是工程实践的对照手册。在观看“容器创建”或“资源管理”相关课时,务必暂停视频,对照资料中的源码路径,在本地克隆的 K8s 源码仓库中找到对应的 Go 文件。例如,当视频讲解 init 容器启动步骤时,你应去查看 kubelet 中对应的 createContainer 函数实现,手动追踪变量变化。学完本课程后,你应当能够独立绘制出从 API Server 接收到 Pod 定义到容器在节点上运行完毕的完整调用链路图,并能独立分析如 OOM Kill 或容器启动卡死等问题的根因。通过这种“视频引导 + 源码复现 + 本地验证”的模式,你将真正掌握 K8s 的内核运作逻辑。
课程目录
课程目录62 集
- kubernetes实战与源码剖析
- 章节1-第1章 准备工作
- 课时1-k8s的介绍与核心对象概念-1660019847.mp4 62.75M
- 课时2-使用kubeadm 10分钟部署k8集群-1660019860.mp4 77.65M
- 课时3-k8s-上部署第一个应用程序-1660019877.mp4 76.24M
- 课时4-给应用添加service,执行扩容和滚动更新-1660019890.mp4 58.60M
- 课时5-安装Kuboard在页面上熟悉k8s集群-1660019911.mp4 173.41M
- 课时6-阅读k8s源码的准备工作-1660019918.mp4 22.86M
- 章节10-第10章 kubelet中的cgroupManager解读
- 课时1-10.1 cgroup-v1原理介绍和golang代码体验cgroup的cpu和memory限制-1660020416.mp4 84.69M
- 课时2-10.2 cgroup-v2原理介绍-1660020422.mp4 16.17M
- 课时3-10.3 kubelet 中的cgroupManager解析和节点qos顶级目录创建-1660020432.mp4 109.98M
- 课时4-10.4 containerManager应用之创建容器cgroup目录-1660020442.mp4 106.35M
- 章节11-第11章 kubelet中的资源管理器cpuManager、memoryManager、deviceManager解读
- 璇炬椂1-11.1 TopologyManager鍒嗘瀽-1660020452.mp4 60.97M
- 课时2-11.2 TopologyManager源码解读-1660020468.mp4 205.03M
- 课时3-11.3 写goland代码体会cpuset原理-1660020479.mp4 58.51M
- 课时4-11.4 kubelet中的cpuManager解读-1660020499.mp4 157.31M
- 课时5-11.5 memoryManager原理简介-1660020507.mp4 24.09M
- 课时6-11.6 memoryManager源码阅读-1660020520.mp4 123.90M
- 课时7-11.7 device-plugins设备插件机制介绍-1660020528.mp4 24.99M
- 课时8-11.8 deviceManager源码解读-1660020542.mp4 127.14M
- 章节12-第12章 kubelet pleg对象和containerManager总结
- 课时1-12.1 kubelet pleg对象介绍和源码解读-1660020561.mp4 141.03M
- 课时2-12.2 kubelet containerManager源码解读-1660020580.mp4 147.99M
- 章节13-第13章 kubelet containerRuntime和sandbox容器
- 课时1-13.1 containerRuntime 原理简介-1660020591.mp4 42.87M
- 课时2-13.2 kubelet containerRuntime接口定义和初始化-1660020601.mp4 75.30M
- 璇炬椂3-13.3 sandbox绠€浠嬪拰podsandbox-1660020608.mp4 18.41M
- 课时4-13.4 containerRuntime创建sandbox源码阅读-1660020620.mp4 100.57M
- 章节14-第14章 containerRuntime创建init容器前期工作
- 课时1-14.1 实操说明init容器的作用-1660020634.mp4 55.46M
- 课时2-14.2 创建init容器步骤1拉取镜像源码解读-1660020649.mp4 127.67M
- 课时3-14.3 创建init容器步骤2create的准备工作源码解读-1660020664.mp4 129.15M
- 章节15-第15章 创建init和app容器的后期工作
- 课时1-15.1 创建init容器步骤2剩余工作源码解读-1660020673.mp4 36.53M
- 课时2-15.2 创建init容器步骤3 4启动容器源码解读-1660020683.mp4 72.91M
- 章节16-第16章 containerRuntime停止容器的流程
- 课时1-16.1 killContainer源码解读-1660020693.mp4 52.86M
- 课时2-16.2 killContainer的调用方解析-1660020702.mp4 69.55M
- 章节17-第17章 kubelet的GarbageCollection
- 课时1-17.1 GarbageCollection之镜像清理源码解读-1660020714.mp4 64.63M
- 课时2-17.2 GarbageCollection之容器清理源码解读-1660020725.mp4 67.36M
- 章节18-第18章 kubelet的syncLoop的第1大监听configCh
- 课时1-18.1 syncLoop的configCh中的apiserver通信的流程-1660020740.mp4 102.01M
- 课时2-18.2 syncLoop的configCh中的file源码-1660020752.mp4 75.25M
- 课时3-18.3 syncLoop的configCh中的http源码-1660020759.mp4 26.15M
- 课时4-18.4 syncLoop的configCh中的merge逻辑-1660020767.mp4 50.57M
- 章节19-第19章 kubelet的syncLoop的其余监听
- 璇炬椂1-19.1 syncLoop鐨刪ousekeepingCh娴佺▼-1660020780.mp4 98.01M
- 璇炬椂2-19.2 syncLoop鐨剆yncCh娴佺▼-1660020790.mp4 68.75M
- 璇炬椂3-19.3 syncLoop鐩戝惉鐨刪ealth-manager-1660020798.mp4 39.75M
- 章节2-第2章 创建pod时kubectl的执行流程和它的设计模式
- 课时1-2.1 使用kubectl部署一个简单的nginx-pod-1660019925.mp4 14.60M
- 课时2-2.2 命令行解析工具cobra的使用-1660019938.mp4 122.80M
- 课时3-2.3 kubectl命令行设置pprof抓取火焰图-1660019946.mp4 69.63M
- 课时4-2.4 kubectl命令行设置7大命令分组-1660019954.mp4 64.99M
- 课时5-2.5 create命令执行流程-1660019962.mp4 81.22M
- 课时6-2.6 createCmd中的builder建造者设计模式-1660019968.mp4 44.26M
- 课时7-2.7 createCmd中的visitor访问者设计模式-1660019980.mp4 158.67M
- 课时8-2.8 kubectl功能和对象总结-1660019986.mp4 17.41M
- 章节20-第20章 kubelet中内置的cadvisor
- 课时1-20.1 kubelet中内置的cadvisor-1660020824.mp4 257.07M
- 章节21-第21章 kubelet中内置的dockershim机制
- 璇炬椂1-21.1 瀹瑰櫒鍜宯amespace-1660020836.mp4 44.86M
- 璇炬椂2-21.2 瀹瑰櫒鍜宑groups-1660020842.mp4 12.06M
- 课时3-21.3 容器运行时的乱战-1660020851.mp4 39.62M
- 课时4-21.4 k8s的cri接口和dockershim的去留-1660020861.mp4 39.62M
- 课时5-21.5 kubelet中dockershim源码解读-1660020878.mp4 165.78M
- 章节22-第22章 容器底层技术之镜像原理
- 课时1-22.1 以nginx镜像为例看OCI中的镜像规范-1660020897.mp4 132.29M
- 课时2-22.2 联合文件系统简介-1660020917.mp4 136.86M
- 章节23-第23章 k8s job和cronjob源码解读
- 课时1-23.1 job的基本功能-1660020928.mp4 39.40M
- 课时2-23.2 job controller源码解析之初始化工作-1660020942.mp4 106.11M
- 课时3-23.3 job controller源码解析之syncJob工作-1660020958.mp4 119.45M
- 课时4-23.4 job controller源码解析之manageJob工作-1660020972.mp4 115.29M
- 课时5-23.5 cronjob-controller同步主流程源码解析-1660020983.mp4 79.13M
- 课时6-23.6 cronjob-controller同步核心syncCronJob源码解析-1660020994.mp4 63.95M
- 章节24-第24章 k8s deployment源码解读




