<audio id="audio" title="开篇词 | 打通“容器技术”的任督二脉" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/fd/da/fde5b177af8b243cbd34413535e72cda.mp3"></audio>

你好，我是张磊，Kubernetes社区的一位资深成员和项目维护者。

2012年，我还在浙大读书的时候，就有幸组建了一个云计算与PaaS基础设施相关的科研团队，就这样，我从早期的Cloud Foundry社区开始，正式与容器结缘。

这几年里，我大多数时间都在Kubernetes项目里从事上游技术工作，也得以作为一名从业者和社区成员的身份，参与和亲历了容器技术从“初出茅庐”到“尘埃落定”的全过程。

而即使从2013年Docker项目发布开始算起，这次变革也不过短短5年时间，可在现如今的技术圈儿里，不懂容器，没听过Kubernetes，你还真不好意思跟人打招呼。

容器技术这样一个新生事物，完全重塑了整个云计算市场的形态。它不仅催生出了一批年轻有为的容器技术人，更培育出了一个具有相当规模的开源基础设施技术市场。

在这个市场里，不仅有Google、Microsoft等技术巨擘们厮杀至今，更有无数的国内外创业公司前仆后继。而在国内，甚至连以前对开源基础设施领域涉足不多的BAT、蚂蚁、滴滴这样的巨头们，也都从AI、云计算、微服务、基础设施等维度多管齐下，争相把容器和Kubernetes项目树立为战略重心之一。

**就在这场因“容器”而起的技术变革中，Kubernetes项目已然成为容器技术的事实标准，重新定义了基础设施领域对应用编排与管理的种种可能。**

2014年后，我开始以远程的方式，全职在Kubernetes和Kata Containers社区从事上游开发工作，先后发起了容器镜像亲密性调度、基于等价类的调度优化等多个核心特性，参与了容器运行时接口、安全容器沙盒等多个基础特性的设计和研发。还有幸作为主要的研发人员和维护者之一，亲历了Serverless Container概念的诞生与崛起。

在2015年，我发起和组织撰写了《Docker容器与容器云》一书，希望帮助更多的人利用容器解决实际场景中的问题。时至今日，这本书的第2版也已经出版快2年了，受到了广大容器技术读者们的好评。

2018年，我又赴西雅图，在微软研究院（MSR）云计算与存储研究组，专门从事基于Kubernetes的深度学习基础设施相关的研究工作。

我与容器打交道的这些年，一直在与关注容器生态的工程师们交流，并经常探讨容器在落地过程中遇到的问题。从这些交流中，我发现总有很多相似的问题被反复提及，比如：

<li>
为什么容器里只能跑“一个进程”？
</li>
<li>
为什么我原先一直在用的某个JVM参数，在容器里就不好使了？
</li>
<li>
为什么Kubernetes就不能固定IP地址？容器网络连不通又该如何去Debug？
</li>
<li>
Kubernetes中StatefulSet和Operator到底什么区别？PV和PVC这些概念又该怎么用？
</li>

这些问题乍一看与我们平常的认知非常矛盾，但它们的答案和原理却并不复杂。不过很遗憾，对于刚刚开始学习容器的技术人员来说，它们却很难用一两句话就能解释清楚。

究其原因在于，**从过去以物理机和虚拟机为主体的开发运维环境，向以容器为核心的基础设施的转变过程，并不是一次温和的改革，而是涵盖了对网络、存储、调度、操作系统、分布式原理等各个方面的容器化理解和改造。**

这就导致了很多初学者，对于容器技术栈表现出来的这些难题，要么知识储备不足，要么杂乱无章、无法形成体系。这，也是很多初次参与PaaS项目的从业者们共同面临的一个困境。

其实，容器技术体系看似纷乱繁杂，却存在着很多可以“牵一发而动全身”的主线。比如，Linux的进程模型对于容器本身的重要意义；或者，“控制器”模式对整个Kubernetes项目提纲挈领的作用。

但是，这些关于Linux内核、分布式系统、网络、存储等方方面面的积累，并不会在Docker或者Kubernetes的文档中交代清楚。可偏偏就是它们，才是真正掌握容器技术体系的精髓所在，是每一位技术从业者需要悉心修炼的“内功”。

**而这，也正是我开设这个专栏的初衷。**

我希望借由这个专栏，给你讲清楚容器背后的这些技术本质与设计思想，并结合着对核心特性的剖析与实践，加深你对容器技术的理解。为此，我把专栏划分成了4大模块：

<li>
**“白话”容器技术基础：** 我希望用饶有趣味的解说，给你梳理容器技术生态的发展脉络，用最通俗易懂的语言描述容器底层技术的实现方式，让你知其然，也知其所以然。
</li>
<li>
**Kubernetes集群的搭建与实践：** Kubernetes集群号称“非常复杂”，但是如果明白了其中的架构和原理，选择了正确的工具和方法，它的搭建却也可以“一键安装”，它的应用部署也可以浅显易懂。
</li>
<li>
**容器编排与Kubernetes核心特性剖析：** 这是这个专栏最重要的内容。“编排”永远都是容器云项目的灵魂所在，也是Kubernetes社区持久生命力的源泉。在这一模块，我会从分布式系统设计的视角出发，抽象和归纳出这些特性中体现出来的普遍方法，然后带着这些指导思想去逐一阐述Kubernetes项目关于编排、调度和作业管理的各项核心特性。“不识庐山真面目，只缘身在此山中”，希望这样一个与众不同的角度，能够给你以全新的启发。
</li>
<li>
**Kubernetes开源社区与生态：**“开源生态”永远都是容器技术和Kubernetes项目成功的关键。在这个模块，我会和你一起探讨，容器社区在开源软件工程指导下的演进之路；带你思考，如何同团队一起平衡内外部需求，让自己逐渐成为社区中不可或缺的一员。
</li>

我希望通过这些对容器与Kubernetes项目的逐层剖析，能够让你面对容器化浪潮时不再踌躇无措，有一种拨云见日的酣畅淋漓。

最后，我想再和你分享一个故事。

2015年我在InfoQ举办的第一届容器技术大会上，结识了当时CoreOS的布道师Kelsey Hightower，他热情地和大家一起安装和体验微信，谈笑风生间，还时不时地安利一番自家产品。

但两年后也就是2017年，Kelsey已经是全世界容器圈儿的意见领袖，是Google公司Kubernetes项目的首席布道师，而他的座右铭也变为了“只布道，不推销”。此时，就算你漂洋过海想要亲自拜会Kelsey ，恐怕也得先预约下时间了。

诚然，Kelsey 的“一夜成名”，与他的勤奋和天赋密不可分，但他对这次“容器”变革走向的准确把握却也是功不可没。这也正应了一句名言：一个人的命运啊，当然要靠自我奋斗，但是也要考虑到历史的行程。

眼下，你我可能已经错过了互联网技术大爆炸的时代，也没有在数字货币早期的狂热里分到一杯羹。可就在此时此刻，在沉寂了多年的云计算与基础设施领域，一次以“容器”为名的历史变革，正呼之欲出。这一次，我们又有什么理由作壁上观呢？

如果你也想登上“容器”这趟高速前进的列车，我相信这个专栏，可以帮助你打通学习容器技术的“任督二脉”。**在专栏开始，我首先为你准备了4篇预习文章，详细地梳理了容器技术自兴起到现在的发展历程，同时也回答了“Kubernetes为什么会赢”这个重要的问题，算是我额外为你准备的一份开学礼物吧。**

机会总是留给有准备的人，现在就让我们一起开启这次充满挑战的容器之旅！


