容器实战高手课 / 在实战中深入理解容器技术的本质
李程远
eBay总监级工程师,云平台架构师
 
  • 课程目录
  • 课程介绍
  • 开篇词 | 一个态度两个步骤,成为容器实战高手

    尽管计算机的世界瞬息万变,但容器技术是个很好的窗口,可以帮我们看到后面那些“不变”的技术。

  • 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分。

【立省 ¥30 | 仅限前 50 人】

拼团+口令「happy2021」立省 ¥30, 原价¥99,口令仅限「前 50 人」 有效!

你将获得

  • 容器技术的底层实现与核心原理
  • 20个常见容器技术问题解决办法
  • 系统全面的容器知识体系
  • 常见的Linux内核调试工具使用场景

讲师介绍

李程远,eBay总监级工程师,云平台架构师。

15+年Linux平台开发经验,8年云平台开发经历。参与设计与开发eBay数据中心两代云平台,从Openstack到Kubernetes,专注于云平台中Linux操作系统、虚拟机、容器的开发与运维。

在容器领域有深入的研究和实践,主导迁移eBay关键应用服务从物理机到Kubernetes容器平台。目前带领团队建立并维护管理着一个运行了百万个容器的云平台。

课程介绍

容器技术现在已经比较普及了,但我们学习容器时,还是会遇到形形色色的问题。如果仅靠自己摸索,很难高效地把容器学好。原因就在于,容器技术入门容易,但吃透却很难。主要有三个难点。

  1. 系统学习难:初学容器,经常被各种技术名词绕进去,虽然想补充背景知识,但是又没有足够的时间看专业书。
  2. 实际操作难:对容器的认知停留在基本使用上,想要进一步提高实力,却缺乏实际演练。
  3. 理解原理难:实际使用容器虽然没什么障碍,但没法从底层原理的维度深入理解容器,缺乏全局视角。

针对以上情况,李程远老师结合自己多年的实战经验,梳理了一套系统的容器知识体系。他结合Linux操作系统的主要模块,把容器的核心知识串联了起来。

整个课程由浅入深,注重实践。每节课都会带你复现一个问题,或者了解一个场景。深入内核分析技术原理,解读关键容器指标的含义与功能,帮助你迅速理清问题的排查思路,最终高效解决复杂的性能问题、稳定性问题等等。

本课程结合Linux操作系统的主要模块,从进程管理、容器内存、容器存储、容器网络和容器安全五个部分出发,带你掌握容器核心知识,理解相关技术的实现原理。实践方面,课程会以常见的各种容器问题为背景,给出可复用的高效解决方案。

重点问题如下:

  • 进程与CPU问题:如何清理僵尸进程?如何拿到容器CPU的开销?
  • 内存问题:OOM Kill到底是怎么一回事儿?为什么容器的内存使用量总在临界点?
  • 容器存储:OverlayFS系统是如何工作的?如何限制容器把宿主机磁盘写满?
  • 容器网络:容器网络不通怎么调试?如何处理网络乱序包?
  • 容器安全:容器中的Privileged权限和root用户的适用场景是什么?

通过系统学习,相信你不但能够得心应手地解决各种常见的容器问题,还可以学到处理一类问题的底层思路,真正晋升为容器高手。

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

课程目录

适合人群

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

特别放送

订阅须知