深入剖析Kubernetes

深入剖析Kubernetes / Kubernetes原来可以如此简单

张磊 Kubernetes社区资深成员与项目维护者
  • 课程目录
  • 课程介绍
  • 在线阅读:开篇词 | 打通“容器技术”的任督二脉

    我希望通过对容器与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的相关知识,你都掌握了吗?

    学习的知识和技能有多少转化成自己的了?一起来测一测。

57讲

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 最大的价值。


课程目录


适合人群

  • 具备一定服务端基础知识,对容器感兴趣的互联网从业者;
  • 想要进阶容器技术的软件开发人员;
  • 希望在容器时代大展拳脚的运维工程师和架构师;
  • 希望了解和学习容器技术背后原理的技术管理者、技术销售和市场从业者。

特别放送

免费领取福利



限时活动推荐


订阅须知

随机推荐

轻上西梅饮膳食纤维植物果蔬汁益生菌元风味饮料好不好,推荐购入...

朗适RS100可以入手吗?深度剖析功能特点!

朗适RS100实际效果怎样?专业达人评测分享!

SANWA SUPPLYMA-ERG9好不好,入手推荐?最新口碑评测反馈?

狮王小狮王儿童氟防蛀牙膏 20g评价怎么样?网友评测点评分享?

滋源 无患子控油洗头水 200ml实用性高,购买推荐吗?测评大揭秘...