- 课程目录
- 课程介绍
-
在线阅读:开篇词 | 一个态度两个步骤,成为容器实战高手
尽管计算机的世界瞬息万变,但容器技术是个很好的窗口,可以帮我们看到后面那些“不变”的技术。
-
01 | 认识容器:容器的基本操作和实现原理
通过这一讲,你会对容器有了一个大致的认识,包括它的“形”,掌握一些基本的容器操作;还有它的“神”,也就是容器实现的原理。
-
02 | 理解进程(1):为什么我在容器中不能kill 1号进程?
如果要解释这个问题,我们就要掌握容器的两个最基本概念——init进程和Linux信号。
-
03|理解进程(2):为什么我的容器里有这么多僵尸进程?
这一讲我们来学习僵尸进程的产生原理到底是什么,理解了这个问题,还可以帮助你更深入地理解容器init进程的特性。
-
04 | 理解进程(3):为什么我在容器中的进程被强制杀死了?
理解了这个问题,能够帮助你更好地管理进程,让容器中的进程实现graceful shutdown。
-
05|容器CPU(1):怎么限制容器的CPU使用?
通过这一讲,你会知道在Pod Spec里的"Request CPU"和"Limit CPU"的值究竟是什么含义。
-
06 | 容器CPU(2):如何正确地拿到容器CPU的开销?
得到单个容器的CPU的使用率,在宿主机上负载变高时,我们就可以很快知道是哪个容器引起的问题。
-
07 | Load Average:加了CPU Cgroup限制,为什么我的容器还是很慢?
我们从CPU Usage和Load Average差异这个现象开始分析,为你讲清楚Load Average这个概念。
-
08 | 容器内存:我的容器为什么被杀了?
这一讲会通过再现一个容器在系统中被杀的问题,帮你理清OOM Killer和Memory Cgroup这两个概念。
-
09 | Page Cache:为什么我的容器内存使用量总是在临界点?
这一讲会帮助你更好理解容器的内存管理机制,以及如何理解RSS和Page Cache。
-
10 | Swap:容器可以使用Swap空间吗?
如果我们让需要使用Swap和不需要Swap的容器在同一个宿主机上同时运行,就能提高硬件资源的利用率。
-
11 | 容器文件系统:我在容器中读写文件怎么变慢了?
所有的容器的运行都需要一个容器文件系统,这一讲会带你深入理解文件系统,了解OverlayFS是怎么工作的。
-
12 | 容器文件Quota:容器为什么把宿主机的磁盘写满了?
对于使用OverlayFS的容器,我们应该如何去防止它把宿主机的磁盘给写满呢?
-
13 | 容器磁盘限速:我的容器里磁盘读写为什么不稳定?
磁盘除了容量的划分,还有一个读写性能问题。如果多个容器同时读写节点上的同一块磁盘,那么它们的磁盘读写相互之间影响吗?
-
14 | 容器中的内存与I/O:容器写文件的延时为什么波动很大?
容器中用Buffered I/O方式写文件的时候,会出现写入时间波动的问题,这个问题背后的原因是什么,又该怎么解决呢?
-
15 | 容器网络:我修改了/proc/sys/net下的参数,为什么在容器中不起效?
这一讲会帮你更好地理解Network Namespace,学会网络参数配置的”正确姿势“。
-
16 | 容器网络配置(1):容器网络不通了要怎么调试?
容器Network Namespace里怎样配置?网络接口当容器网络不通的时候,我们又该怎么去做一个简单调试呢?
-
17|容器网络配置(2):容器网络延时要比宿主机上的高吗?
今天我们聊一聊容器网络接口对容器中应用程序网络延时的影响。
-
18 | 容器网络配置(3):容器中的网络乱序包怎么这么高?
容器云平台中的快速重传大部分是由包的乱序触发的,我们一起来看看这背后的原理和应对方办法。
-
19 | 容器安全(1):我的容器真的需要privileged权限吗?
这一讲我们主要学习如何给容器赋予合理的capabilities。
-
20 | 容器安全(2):在容器中,我不以root用户来运行程序可以吗?
这一讲,我们聊一聊容器中的root用户与安全相关的问题。
-
结束语 | 跳出舒适区,突破思考的惰性
突破舒适区的本质就是突破思考的惰性。只有不断思考,才能推着自己不断往前走,才能让我们更从容地解决工作上的问题。
-
结课测试|这些容器技术的问题,你都掌握了么?
为了帮助你检验自己的学习效果,我特别给你准备了一套关于容器的结课测试题。这套测试题共有20道题目,满分100分。
-
用户故事 | 莫名:相信坚持的力量,终会厚积薄发
当一个人开始把坚持学习当作一种习惯,并且善于合理利用碎片时间提升自我的时候,他已经走在超越大多数人的道路上。
-
加餐福利 | 课后思考题答案合集
为了给你留足思考和研究的时间,我选择用加餐的方式,给你提供部分思考题的参考答案,希望对你有启发。
-
加餐01 | 案例分析:怎么解决海量IPVS规则带来的网络延时抖动问题?
这一讲会探讨一个用户应用程序网络延时的问题,案例会用到 perf、ftrace、bcc/ebpf这些Linux调试工具。
-
加餐02 | 理解perf:怎么用perf聚焦热点函数?
今天这一讲,我们会更深入地学习了perf是什么,以及它的工作方式是怎样的?
-
加餐03 | 理解ftrace(1):怎么应用ftrace查看长延时内核函数?
这一讲我们主要讲解Linux ftrace这个工具,学习它的用法和实现机制。
-
加餐04 | 理解ftrace(2):怎么理解ftrace背后的技术tracepoint和kprobe?
这一讲我们主要学习tracepoint和kprobe,这两个概念在Linux tracing系统中非常重要。
-
加餐05 | eBPF:怎么更加深入地查看内核中的函数?
今天我们一起来学习eBPF。
-
加餐06 | BCC:入门eBPF的前端工具
这一讲会带你学习eBPF的一个前端工具——BCC。
课程介绍
你将获得 容器技术的底层实现与核心原理 20个常见容器技术问题解决办法 系统全面的容器知识体系 常见的Linux内核调试工具使用场景 讲师介绍 课程介绍...你将获得
- 容器技术的底层实现与核心原理
- 20个常见容器技术问题解决办法
- 系统全面的容器知识体系
- 常见的Linux内核调试工具使用场景
讲师介绍
课程介绍
容器技术现在已经比较普及了,但我们学习容器时,还是会遇到形形色色的问题。如果仅靠自己摸索,很难高效地把容器学好。原因就在于,容器技术入门容易,但吃透却很难。主要有三个难点。
- 系统学习难:初学容器,经常被各种技术名词绕进去,虽然想补充背景知识,但是又没有足够的时间看专业书。
- 实际操作难:对容器的认知停留在基本使用上,想要进一步提高实力,却缺乏实际演练。
- 理解原理难:实际使用容器虽然没什么障碍,但没法从底层原理的维度深入理解容器,缺乏全局视角。
针对以上情况,李程远老师结合自己多年的实战经验,梳理了一套系统的容器知识体系。他结合Linux操作系统的主要模块,把容器的核心知识串联了起来。
整个课程由浅入深,注重实践。每节课都会带你复现一个问题,或者了解一个场景。深入内核分析技术原理,解读关键容器指标的含义与功能,帮助你迅速理清问题的排查思路,最终高效解决复杂的性能问题、稳定性问题等等。
本课程结合Linux操作系统的主要模块,从进程管理、容器内存、容器存储、容器网络和容器安全五个部分出发,带你掌握容器核心知识,理解相关技术的实现原理。实践方面,课程会以常见的各种容器问题为背景,给出可复用的高效解决方案。
重点问题如下:
- 进程与CPU问题:如何清理僵尸进程?如何拿到容器CPU的开销?
- 内存问题:OOM Kill到底是怎么一回事儿?为什么容器的内存使用量总在临界点?
- 容器存储:OverlayFS系统是如何工作的?如何限制容器把宿主机磁盘写满?
- 容器网络:容器网络不通怎么调试?如何处理网络乱序包?
- 容器安全:容器中的Privileged权限和root用户的适用场景是什么?
通过系统学习,相信你不但能够得心应手地解决各种常见的容器问题,还可以学到处理一类问题的底层思路,真正晋升为容器高手。

另外,课程还设置了专题加餐。该专题会结合一个真实案例,带你分析、解决网络延时抖动问题。在这个过程中,程远老师还会带你学习perf,ftrace,bcc/ebpf这几个Linux调试工具的用法和原理,最终掌握深入到内核层面解决复杂问题的方法。
课程目录

适合人群
有一定Linux操作系统或容器技术基础的后端、前端工程师及运维、架构师;
对容器技术感兴趣的同学,尤其是工作里实际应用到容器技术的后端、运维、架构人群。

