容器 :大厂的另一块敲门砖
共 1986字,需浏览 4分钟
·
2021-07-17 07:55
说实话,我并不惊讶。过去几年,以 docker、kubernetes 为代表的容器技术已发展为一项通用技术,BAT、滴滴、京东、头条等大厂,都争相把容器和 k8s 项目作为技术重心,试图“放长线钓大鱼”。
就说阿里吧,目前基本所有业务都跑在云上,其中有一半迁移到了自己定制 k8s 集群上。据说,今年计划完成 100% 基于 k8s 集群的业务部署。而服务网格这块儿,在阿里一些部门(比如蚂蚁金服),已经有线上业务在用了。
这充分说明了容器在当今软件研发领域的地位,掌握容器技术自然成为很多公司在招聘时的重要选项。
但是,容器技术本身偏向运维,namespace 资源隔离、cgroups 资源限制等概念,对开发者来说,理解起来比较困难。这几年,在跟朋友探讨 k8s 落地时,也有一些问题被反复提及,比如:
为什么运行在虚拟机里的 CPU 监控程序,移到容器之后,再用之前的算法计算容器 CPU 使用率就不适用了? 为什么我的容器里有这么多僵尸进程? 为什么 kubernetes 一直不支持使用 swap ? 为什么我的容器内存使用量总是在临界点?
其实,容器问题虽然很复杂,但最终都会归结到 Linux 操作系统上,而它不外乎是进程管理、内存管理、文件系统、网络协议栈,再加上一些安全管理。同时,再考虑容器自身的特性——Namespace 和 Cgroups,毕竟 Linux 内核的特性叠加二者会带来一些变化。
所以,在解决容器相关问题时,将 Linux 操作系统的主要模块,和容器的知识结构系统串联起来,并看到 Namespace 和 Cgroups 带来的特殊性,有一个整体的思路和体系。
这两天,看朋友圈有人分享他的专栏《容器实战高手课》,一口气读完了,收获很大,整个专栏总结成 8 个字,就是“由浅入深,注重实践”,讲解透彻又通俗易懂,简直是一个宝藏。
总结来说,他深入讲解了容器技术的底层实现和核心原理,通过解决 20 个常见容器问题, 让你搭建完整的容器知识体系,掌握常见 Linux 内核调试工具的使用场景,和Namespace、Cgroups 的实际应用。内容挺硬的,都是工作中实打实用得上的,在这推荐给大家,而且申请到了特别优惠。
输入专属口令:rongqi666
到手仅 ¥69,半价秒杀
即将涨价至 ¥129
他是如何讲透容器的?
内容的设计上,参考操作系统的模块划分,依次讲解容器进程、容器内存、容器存储、 容器网络、容器安全这 5 大模块,从实际问题入手,带你系统掌握容器核心点 Namespace 和 Cgroups,并理解其对传统操作系统行为的影响。
比如,Memory Cgroup 对 Pagecache 和 Swap 空间有怎样的影响;在 proc 文件系统下,我们的网络参数应用了 Network Namespace 后,需要如何重新设置,等等。
给大家梳理了一些重点问题:
进程与CPU问题:如何清理僵尸进程?如何拿到容器CPU的开销?
内存问题:OOM Kill到底是怎么一回事儿?为什么容器的内存使用量总在临界点?
容器存储:OverlayFS系统是如何工作的?如何限制容器把宿主机磁盘写满?
容器网络:容器网络不通怎么调试?如何处理网络乱序包?
容器安全:容器中的Privileged权限和root用户的适用场景是什么?
此外,他还专门做了一个专题加餐。通过一个真实案例,带你了解 perf,ftrace,bcc/ebpf 这几个 Linux 调试工具的原理,熟悉它们在调试问题的不同阶段所发挥的作用,并用它们解决现实场景中复杂的容器问题。
有多干货,来看看目录:
口碑相当不错,我随便截了几个,你可以看看:
再提醒一遍
👇点击「阅读原文」,输入优惠口令「rongqi666」,涨价前半价入手。