- 课程目录
- 课程介绍
-
在线阅读:开篇词 | 打通“容器技术”的任督二脉
我希望通过对容器与Kubernetes项目的逐层剖析,能够让你面对容器化浪潮时不再踌躇无措,有一种拨云见日的酣畅淋漓。
-
01 | 预习篇 · 小鲸鱼大事记(一):初出茅庐
Docker项目,用近乎完美地解决了Pass项目的打包问题。于是,它开源不久便从脱颖而出,迅速占领了所有云计算领域头条。
-
02 | 预习篇 · 小鲸鱼大事记(二):崭露头角
解决了应用打包的技术难题,同开发者与生俱来的的亲密关系,再加上PaaS概念已经深入人心的完美契机,是Docker项目一举走红的重要原因。
-
03 | 预习篇 · 小鲸鱼大事记(三):群雄并起
在2014~2015年间的容器生态大爆发中,Docker公司和Mesosphere公司,依托自身优势率先占据了有利位置,但这却并不是结局。
-
04 | 预习篇 · 小鲸鱼大事记(四):尘埃落定
Kubernetes社区的成功归功于,它是以开发者为核心,构建一个相对民主和开放的容器生态。
-
05 | 白话容器基础(一):从进程说开去
对于Docker等大多数Linux容器,Cgroups是制造约束的主要手段,Namespace是修改进程视图的主要方法。
-
06 | 白话容器基础(二):隔离与限制
一个正在运行的Docker容器,是一个启用了多个Namespace的应用进程,它能够使用的资源量受Cgroups的限制。
-
07 | 白话容器基础(三):深入理解容器镜像
rootfs,是Linux容器文件系统实现的核心方式。它包含了一个操作系统的所有文件和目录,保证了Docker容器深入到操作系统级别的环境一致性。
-
08 | 白话容器基础(四):重新认识Docker容器
我会首先讲解Docke容器使用的主要场景,然后再次解读Linux容器的Namespace、Cgroups、rootfs。
-
09 | 从容器到容器云:谈谈Kubernetes的本质
Kubernetes为用户提供的不仅仅是一个工具,而是一套帮助使用容器构建分布式作业的依赖和框架。
-
10 | Kubernetes一键部署利器:kubeadm
在今天的这次分享中,我重点介绍了kubeadm这个部署工具的工作原理和使用方法。
-
11 | 从0到1:搭建一个完整的Kubernetes集群
今天,我们从0开始,在Bare-metal环境下使用kubeadm工具部署了一个完整的Kubernetes集群。
-
12 | 牛刀小试:我的第一个容器化应用
在今天的分享中,我会通过一个小案例,和你近距离体验Kubernetes的使用方法。
-
13 | 为什么我们需要Pod?
Pod,实际上是在扮演传统基础设施里“虚拟机”的角色;而容器,则是这个虚拟机里运行的用户程序。
-
14 | 深入解析Pod对象(一):基本概念
Pod(而不是容器)才是Kubernetes项目中的最小编排单位。将这个设计落实到API对象上,容器(Container)就成了Pod属性里的一个普通的字段。
-
15 | 深入解析Pod对象(二):使用进阶
今天,我会详细介绍Pod对象更高阶的使用方法,希望通过对这些实例的讲解,你可以更深入地理解Pod API对象的各个字段。
-
16 | 编排其实很简单:谈谈“控制器”模型
今天,我以Deployment为例,详细讲解了Kubernetes项目如何通过一个称作“控制器模式”的设计方法,实现了对各种不同的对象或者资源的编排。
-
17 | 经典PaaS的记忆:作业副本与水平扩展
今天,我为你详细讲解了Deployment这个Kubernetes项目中,最基本的编排控制器的实现原理和使用方法。
-
18 | 深入理解StatefulSet(一):拓扑状态
StatefulSet的作用之一,就在是使用Pod模板创建Pod时,对它们进行编号,并且按照编号顺序逐一完成创建工作。
-
19 | 深入理解StatefulSet(二):存储状态
今天,我详细介绍了StatefulSet处理存储状态的方法,并以此为基础总结了StatefulSet控制器的工作原理。
-
20 | 深入理解StatefulSet(三):有状态应用实践
我以MySQL集群为例,和你分享了一个实际的StatefulSet的编写过程。
-
21 | 容器化守护进程的意义:DaemonSet
我首先简单介绍了StatefulSet的滚动更新能力,然后重点讲解了本专栏的第三个重要编排对象:DaemonSet。
-
22 | 撬动离线业务:Job与CronJob
我会分享Job的编排方法、completions和parallelism字段、Job Controller的执行原理。
-
23 | 声明式API与Kubernetes编程范式
从“使用Kubernetes部署应用”到“使用Kubernetes编写应用”的蜕变,是从你从一个用户到玩家的晋级之路。
-
24 | 深入解析声明式API(一):API对象的奥秘
今天,我们要达到的目的是,通过标准的kubectl create和get操作,来管理自定义API对象。
-
25 | 深入解析声明式API(二):编写自定义控制器
今天,我将为你剖析Kubernetes API编程范式的具体原理,并带你一起编写了一个自定义控制器。
-
26 | 基于角色的权限控制:RBAC
Role + RoleBinding + ServiceAccount的权限分配方式,是你要重点掌握的内容。
-
27 | 聪明的微创新:Operator工作原理解读
Operator的工作原理,是利用自定义API资源,描述你要部署的“有状态应用”;然后在自定义控制器里,根据自定义API对象的变化,完成具体的部署和运维工作。
-
28 | PV、PVC、StorageClass,这些到底在说啥?
PVC描述的,是Pod想要使用的持久化存储的属性;PV描述的,则是一个具体的Volume的属性;而StorageClass描述的,则是PV和PVC的绑定关系。
-
29 | PV、PVC体系是不是多此一举?从本地持久化卷谈起
正是通过PV和PVC,以及StorageClass这套存储体系,这个后来新添加的持久化存储方案,对Kubernetes已有用户的“破坏”,几乎可以忽略不计。
-
30 | 编写自己的存储插件:FlexVolume与CSI
与FlexVolume相比,CSI把插件职责从“两阶段处理”扩展成了Provision、Attach和Mount三阶段。
-
31 | 容器存储实践:CSI插件编写指南
在今天这篇文章中,我以一个DigitalOcean的CSI插件为例,和你分享了编写CSI插件的具体流程。
-
32 | 浅谈容器网络
容器要想跟外界通信,它发出的IP包就必须从Network Namespace里出来,来到宿主机上。而解决方法就是:为容器创建一个Veth Pair设备。
-
33 | 深入解析容器跨主机网络
在本篇文章中,我为你详细讲解了Flannel UDP和VXLAN模式的工作原理。这两种模式其实都可以称作“隧道”机制。
-
34 | Kubernetes网络模型与CNI网络插件
用一个字概括Kubernetes网络模型就是“通”。容器间、容器与宿主机间都要通,且是直接基于容器和宿主机的IP地址。
-
35 | 解读Kubernetes三层网络方案
在本篇文章中,我为你详细讲述了Fannel host-gw模式和Calico这两种纯三层网络方案的工作原理。
-
36 | 为什么说Kubernetes只有soft multi-tenancy?
NetworkPolicy只是宿主机上的一系列iptables规则。这跟传统IaaS里面的安全组,其实是类似的原理。
-
37 | 找到容器不容易:Service、DNS与服务发现
实际上,Service机制以及Kubernetes的DNS插件,都是在帮助你解决同样一个问题,即如何找到我的某一个容器?
-
38 | 从外界连通Service与Service调试“三板斧”
我分享了从外部访问Service的几种方式和具体的工作原理,以及当Service出现故障时,如何根据它的工作原理,按照一定的思路去定位问题的可行之道。
-
39 | 谈谈Service与Ingress
在实际的生产环境中,Ingress带来的灵活度和自由度,对于使用容器的用户来说,其实是非常有意义的。
-
40 | Kubernetes的资源模型与资源管理
我先为你讲解了Kubernetes对资源的定义方式和资源模型的设计,然后讲述了Kubernetes对Pod进行Eviction的具体策略和实践方式。
-
41 | 十字路口上的Kubernetes默认调度器
我和你详细分享了K8s默认调度器的设计与实现,并分析了默认调度器现在正在经历的重构、发展路线,以及未来的走向。
-
42 | Kubernetes默认调度器调度策略解析
在本篇文章中,我为你讲述了 Kubernetes 默认调度器里的主要调度算法。
-
43 | Kubernetes默认调度器的优先级与抢占机制
在本篇文章中,我为你详细讲述了 Kubernetes 里关于 Pod 的优先级和抢占机制的设计与实现。
-
44 | Kubernetes GPU管理与Device Plugin机制
我为你详细讲述了 Kubernetes 对 GPU 的管理方式,以及它所需要使用的 Device Plugin 机制。
-
45 | 幕后英雄:SIG-Node与CRI
在本篇文章中,我首先为你介绍了 SIG-Node 的职责,以及 kubelet 这个组件的工作原理。
-
46 | 解读 CRI 与 容器运行时
在本篇文章中,我为你详细解读了 CRI 的设计和具体工作原理,并为你梳理了实现CRI 接口的核心流程。
-
47 | 绝不仅仅是安全:Kata Containers 与 gVisor
今天,我为你介绍了拥有独立内核的安全容器项目,对比了 KataContainers 和 gVisor 的设计与实现细节。
-
48 | Prometheus、Metrics Server与Kubernetes监控体系
我介绍了Kubernetes当前监控体系的设计、Prometheus 在其中的地位,以及以它为核心的监控系统的架构设计。
-
49 | Custom Metrics: 让Auto Scaling不再“食之无味”
今天,我为你详细讲解了 Kubernetes 里对自定义监控指标,即 Custom Metrics 的设计与实现机制。
-
50 | 让日志无处可逃:容器日志收集与管理
我建议你将应用日志输出到stdout和stderr,然后通过在宿主机上部署 logging-agent 来集中处理日志。
-
51 | 谈谈Kubernetes开源社区和未来走向
我为你详细讲述了 CNCF 和 Kubernetes 社区的关系,以及 Kubernetes 社区的运作方式。
-
52 | 答疑:在问题中解决问题,在思考中产生思考
今天,我会对本专栏部分文章的思考题,进行一次集中地汇总和答疑,希望帮你更好地理解和掌握 Kubernetes 项目。
-
特别放送 | 2019 年,容器技术生态会发生些什么?
今天我想再和你做一次分享,一起聊聊在2019年,容器技术生态会发生些什么。
-
特别放送 | 基于 Kubernetes 的云原生应用管理,到底应该怎么做?
接下来我会再通过几篇文章,与你分享“云原生应用管理”,让你更加深刻地理解Kubernetes本质。
-
结束语 | Kubernetes:赢开发者赢天下
“深入剖析Kubernetes专栏”的结束,其实是你技术生涯全新的开始。我相信你一定能够带着这个赢开发者赢天下的启发,在云计算的海洋里继续乘风破浪,一往无前!
-
结课测试|这些Kubernetes的相关知识,你都掌握了吗?
学习的知识和技能有多少转化成自己的了?一起来测一测。
课程介绍
618 狂欢 | 课程专属口令 你将获得 容器基础知识详解 从 0 搭建 Kubernetes 集群 剖析 Kubernetes 的核心特性 掌握基于 Kubernetes 的容器编排 讲师介绍 Kubernetes...618 狂欢 | 课程专属口令
你将获得
- 容器基础知识详解
- 从 0 搭建 Kubernetes 集群
- 剖析 Kubernetes 的核心特性
- 掌握基于 Kubernetes 的容器编排
讲师介绍
Kubernetes 社区资深成员与项目维护者,长期专注并活跃于容器集群管理与云计算数据中心领域,连续三次被微软授予该领域“最有价值专家”(MVP)称号。
课程介绍
过去几年,以 Docker、Kubernetes 为代表的容器技术已发展为一项通用技术,BAT、滴滴、京东、头条等大厂,都争相把容器和 K8S 项目作为技术重心,试图“放长线钓大鱼”。
但容器技术本身偏向运维,namespace 资源隔离、cgroups 资源限制等概念,对开发者来说,理解起来比较困难。尤其在实施 K8S 落地时,总有一些问题被反复提及,比如:
- 为什么容器里只能跑“一个进程”?
- 之前一直用的某个 JVM 参数,在容器里怎么不好使了?
- 为什么 Kubernetes 不能固定 IP 地址?容器网络连不通,该如何 Debug?
- K8S 中 StatefulSet 和 Operator 到底什么区别?PV 和 PVC 又该怎么用?
这些问题的答案和原理并不复杂,但很难一两句话解释清楚。因为容器技术涉及操作系统、网络、存储、调度、分布式原理等方方面面的知识,是个名副其实的全栈技术。
而其技术体系里那些“牵一发而动全身”的主线,比如 Linux 进程模型对容器本身的重要意义,“控制器”模式对整个 K8S 项目提纲挈领的作用等等,不会详细展现在 Docker 或 Kubernetes 官方文档中,但它们才是掌握容器技术体系的精髓所在,这也是张磊的《深入剖析 Kubernetes》专栏的核心内容。
张磊花费数月时间,经过多次改版,构建出如今的知识框架,适合所有初学者和进阶容器技术的伙伴,帮你逐层理清容器背后的技术本质与设计思想,并结合对其核心特性的剖析与实践,加深你对容器技术的理解。
本专栏共包括如下四大模块:
1. “白话”容器技术基础:用饶有趣味的解说,梳理容器技术生态的发展脉络,讲述容器技术的来龙去脉与实现原理,让你知其然,并且知其所以然。
2. Kubernetes集群的搭建与实践:以浅显易懂的语言,讲述Kubernetes集群背后的原理,并从0开始搭建一套Kubernetes集群,带你领略Kubernetes集群的“一键安装”。
3. 容器编排与Kubernetes核心特性剖析:这个模块从分布式系统设计的视角出发,归纳出这些特性中体现出来的普遍方法,然后再逐一阐述Kubernetes项目关于编排、调度和作业管理的各项核心特性。
4. Kubernetes开源社区与生态:磊哥会带你思考如何同团队一起平衡内外部需求,逐渐成为社区中不可或缺的一员。
专栏上线两年多,口碑一直不错,希望也能帮你在技术实践中发挥出 Kubernetes 最大的价值。
课程目录
适合人群
- 具备一定服务端基础知识,对容器感兴趣的互联网从业者;
- 想要进阶容器技术的软件开发人员;
- 希望在容器时代大展拳脚的运维工程师和架构师;
- 希望了解和学习容器技术背后原理的技术管理者、技术销售和市场从业者。


