写点什么

Kubernetes,原来可以如此简单

  • 2018-08-27
  • 本文字数:2179 字

    阅读完需:约 7 分钟

不管你是否意识到,在过去的几年时间里,以 Docker、Kubernetes 为代表的容器技术已经悄然发展成为一项通用技术。放眼国外,Google、Microsoft、IBM 等互联网巨头们,仍在容器开源基础设施的技术市场上厮杀。回看国内,包括 BAT、滴滴、京东、头条在内的大厂也都争相把容器和 Kubernetes 项目作为其技术重心,试图“放长线钓大鱼”。

正如媒体所言,软件正在吃掉世界,而容器正在吃掉整个软件世界。虽说有些夸张,但也充分证明了容器在当今软件研发领域的地位。顺势而为,是否掌握容器技术也成为很多企业在招聘时的一个重要选项。

容器技术本身是一项偏向运维工程师的基础技术,namespace 资源隔离、cgroups 资源限制等等概念对于开发人员来说,都有一道难以逾越的理解鸿沟。这些年,我一直都在和容器打交道,也一直和容器工程师探讨落地过程中的问题。从这些交流中,我发现总有很多相似的问题被反复提及,比如:

  1. 为什么容器里只能跑“一个进程”?
  2. 为什么我原先一直在用的某个 JVM 参数,在容器里就不好使了?
  3. 为什么 Kubernetes 就不能固定 IP 地址?容器网络连不通又该如何去 Debug?
  4. Kubernetes 中 StatefulSet 和 Operator 到底什么区别?PV 和 PVC 又该怎么用?

这些问题乍一看与我们平常的认知非常矛盾,但它们的答案和原理却并不复杂。而这些对于容器初学者来说,又很难用一两句话就解释清楚。

容器技术涉及到操作系统、网络、存储、调度、分布式原理等等各方面的综合知识,也就导致了很多初学者面对容器技术,要么知识储备不足,要么杂乱无章、无从下手。

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

这些基础知识并不会在 Docker 或者 Kubernetes 的官方文档中详细赘述。但它们也才是真正掌握容器技术体系的精髓所在,是每一位技术从业者都需要悉心修炼的“内功”。

深入剖析 Kubernetes》专栏就是想基于我多年的从业经验,用深入浅出的方式帮你从看似凌乱复杂的 Kubernetes 项目中梳理出一条主线,助你理解容器和 Kubernetes 背后的设计思想和逻辑,从而解决现实工作中遇到的问题。

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

我是谁?

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

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

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

工作之余,我还发起和组织撰写了《Docker 容器与容器云》一书,受到了广大希望进阶容器技术的读者的好评。

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

可以说,这 6 年里,我参与和亲历了容器技术从“初出茅庐”到“尘埃落定”的全过程。

专栏简介

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

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

在专栏开始,我首先为你准备了 4 篇预习文章,详细地梳理了容器技术自兴起到现在的发展历程,同时也回答了“Kubernetes 为什么会赢”这个重要的问题,算是我额外为你准备的一份开学礼物。



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

订阅福利

福利一:上新优惠价¥68,原价¥99,9 月 8 日恢复原价

福利二:每邀请一位好友购买,你可获得24 元现金返现,多邀多得,上不封顶,随时提现(提现流程:极客时间 App - 我的 - 分享有赏)

如何订阅?

点击下方图片,即可试读或订阅专栏。

2018-08-27 19:003311

评论

发布
暂无评论
发现更多内容

Java异常处理的9个最佳实践,看看自己是不是都用过?

geekymv

Java 异常处理

一周信创舆情观察(12.14~12.20)

统小信uos

GitHub标星78.9K的算法宝典,让你分分钟刷爆LeetCode,更有“左神”精讲视频加持,金三银四offer手到擒来

程序员 面试 算法 架构师

关于自己的一个梦(控制)

Yuchen

情绪控制 心理 个人 控制感 自我思考

乘百度AI之风,媒体从业者们这样登上智能云端

脑极体

skynet源码分析之网络层—Lua层

赖猫

c++ lua skynet

Rust太难?那是你没看到这套Rust语言学习万字指南!

华为云开发者联盟

rust 语言 开发语言

四面美团大众点评归来,分享一下我总结的面试题及解析:并发+spring+分布式+jvm+缓存+数据库

Java架构之路

Java 程序员 架构 面试 编程语言

刨根问底,kafka到底会不会丢消息

爱笑的架构师

kafka 消息队列 Kafka知识点 消息中间件 七日更

多线程之信号量(By C++)

赖猫

c++ 多线程

架构师训练营大作业1

邓昀垚

华为全栈AI技术干货深度解析,解锁企业AI开发“秘籍”

华为云开发者联盟

AI 全栈 开发

花火交易所系统APP软件开发

系统开发

微服务:服务本身的设计、维护以及治理

积极&丧

别找了,这份PDF是目前Java程序员最全面的学习文档,没有之一

Java架构之路

Java 程序员 架构 面试 编程语言

美团五面+滴滴四面,复盘总结117道面试题,大厂套路展露无遗

Java架构之路

Java 程序员 架构 面试 编程语言

架构师训练营第五周作业

Geek_xq

LeetCode题解:42. 接雨水,动态规划,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

够屌!看完“大牛程序员必修16课”足足让你超越80%Java面试者!赶紧冲!

比伯

Java 编程 程序员 架构 面试

架构师系列11 微服务架构的思考

桃花原记

python3参考秘籍-附PDF下载

程序那些事

Python 程序那些事 Python秘籍 Python数据分析

“关灯”看这出戏,依旧是百年至美

脑极体

普本开发三年,每天两小时面试备战,2个月后五面阿里定级P7

Java架构之路

Java 程序员 架构 面试 编程语言

架构师训练营第五周总结

Geek_xq

今天,我们为什么应该读懂华为人工智能?

脑极体

【Java入门】Array

Albert

Java 七日更

真香~~看完看阿里P8大牛手写的450页文档总结,我精通Java并发编程了

Java架构之路

Java 程序员 架构 面试 编程语言

游戏自动化测试——局内战斗

行者AI

测试

领域驱动落地实现

星际行者

DDD 领域驱动

Hystrix-技术专题-基础运作原理

码界西柚

自定义TBE算子入门,不妨从单算子开发开始

华为云开发者联盟

算法 算子 自定义

Kubernetes,原来可以如此简单_语言 & 开发_极客时间_InfoQ精选文章