云原生时代,容器永生
Posted 云原生生态圈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了云原生时代,容器永生相关的知识,希望对你有一定的参考价值。
就在前几个月,Apache 宣布准备将曾火极一时的 Mesos 项目移至 Attic下 ,保存为“只读”状态。要知道,Attic 是 Apache 软件基金会为已终止项目提供的一种解决方案,这意味着 Mesos 正式进入项目“退休”阶段。
说实话,我并不惊讶。过去几年,以 docker、kubernetes 为代表的容器技术已发展为一项通用技术,BAT、滴滴、京东、头条等大厂,都争相把容器和 k8s 项目作为技术重心,试图“放长线钓大鱼”。
就说阿里吧,目前基本所有业务都跑在云上,其中有一半迁移到了自己定制 k8s 集群上。据说,今年计划完成 100% 基于 k8s 集群的业务部署。而服务网格这块儿,在阿里一些部门(比如蚂蚁金服),已经有线上业务在用了。
这充分说明了容器在当今软件研发领域的地位,掌握容器技术自然成为很多公司在招聘时的重要选项。
但是,容器技术本身偏向运维,namespace 资源隔离、cgroups 资源限制等概念,对开发者来说,理解起来比较困难。这几年,在跟朋友探讨 k8s 落地时,也有一些问题被反复提及,比如:
-
为什么运行在虚拟机里的 CPU 监控程序,移到容器之后,再用之前的算法计算容器 CPU 使用率就不适用了? -
为什么我的容器里有这么多僵尸进程? -
为什么 kubernetes 一直不支持使用 swap ? -
为什么我的容器内存使用量总是在临界点?
其实,容器问题虽然很复杂,但最终都会归结到 Linux 操作系统上,而它不外乎是进程管理、内存管理、文件系统、网络协议栈,再加上一些安全管理。同时,再考虑容器自身的特性——Namespace 和 Cgroups,毕竟 Linux 内核的特性叠加二者会带来一些变化。
所以,在解决容器相关问题时,将 Linux 操作系统的主要模块,和容器的知识结构系统串联起来,并看到 Namespace 和 Cgroups 带来的特殊性,有一个整体的思路和体系。
总结来说,他深入讲解了容器技术的底层实现和核心原理,通过解决 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 调试工具的原理,熟悉它们在调试问题的不同阶段所发挥的作用,并用它们解决现实场景中复杂的容器问题。
有多干货,来看看目录:
口碑相当不错,我随便截了几个,你可以看看:
再提醒一遍
以上是关于云原生时代,容器永生的主要内容,如果未能解决你的问题,请参考以下文章