Kubernetes源码剖析与实战

Kubernetes源码剖析与实战 / 透彻掌握 K8s,赋能业务开发

孔令飞 前腾讯云专家工程师

  • 课程介绍
  1. 在线阅读:开篇词|如何从源码视角深度学习Kubernetes?

    Kubernetes 是云原生的基石,也是基建领域的基石。

  2. 加餐|探索Kubernetes源码学习方法与学习价值

    Kubernetes 作为企业云原生的基石,是企业必备的技术栈。

  3. 01|究竟什么是云原生?

    云原生包含了一系列的技术体系、方法论和云原生应用。

  4. 02|云原生中有哪些核心技术栈?(上)

    这些技术栈,在你今后的研发生涯中,也会持续不断地应用到。

  5. 03|云原生中有哪些核心技术栈?(下)

    这节课我们来深入学习云原生另外 5 个技术栈。

  6. 04|为什么要学习云原生技术及开发?

    云原生时代诞生出了大量的新理念、新技术、新的开源项目,可以帮助我们拓展技术边界。

  7. 05|如何学习云原生技术?

    学习云原生技术,既要有广度,又要有深度。

  8. 06|如何高效阅读Kubernetes源码?

    如何阅读 Kubernetes 源码?阅读源码分为三个阶段。

  9. 07|如何给Kubernetes社区贡献源码?

    如果你想给 Kubernetes 贡献源码,需要遵照 Kubernetes 的源码贡献流程。

  10. 08|Kubernetes架构及核心组件介绍

    在本节课中,则会对 Kubernetes 的架构和核心组件进行更详细的讲解。

  11. 09|Kubernetes核心概念和资源介绍

    本节课,将会详细介绍 Kubernetes 中的核心资源和核心概念,让你对 Kubernetes 有更全面的了解。

  12. 10|通过Pod创建流程来了解Kubernetes

    从运行层面介绍 Kubernetes 的运行机制,带你了解 Kubernetes 的工作原理。

  13. 11|Kubernetes代码仓库介绍

    看看 Kubernetes 是怎么“排兵布阵”的,让你更轻松地看懂 Kubernetes 源码。

  14. 12 | Kubernetes集群部署方法有哪些及如何选择?

    带你快速搭建出满足需求的 Kubernetes 集群。

  15. 13 | 如何配置和创建一个Kind集群?

    因为在学习本课程的过程中,需要频繁地创建、删除用于开发、测试的 Kind 集群。所以,本节课,我们详细介绍下 Kind,带你熟练掌握 Kind 工具,方便以后的学习。

  16. 14|如何在Kubernetes集群中部署Web服务?

    得益于 Kubernetes 强大的功能,越来越多的软件选择在 Kubernetes 上部署,这几乎已经成为事实上的标准。这节课,我们一起学习怎么将 OneX 项目部署在 Kubernetes 中。

  17. 15|通过Kubernetes应用构建模型来看如何构建应用?

    Kubernetes 中有很多组件,每个组件的功能都很复杂且不同。Kubernetes是如何构建这么复杂的应用的?这些组件的应用构建方式是否一致?Kubernetes 又是如何保持一致性的?这一节,我们从应用的启动框架中找到答案。

  18. 16 | 剖析Kubernetes应用构建模型

    在 v1.10.0~v1.32.3 版本中,Kuberenetes 应用处在一个稳定的状态。那么,稳定之后的 Kubernetes 应用构建模型是什么样的?有什么值得我们学习的地方?本节课,我们一起来看看。

  19. 17 | Kubernetes如何设计REST资源?

    kube-apiserver 是 Kubernetes 最核心、实现最复杂的组件,其他组件也都依赖它运行。这节课,我就结合 RESTful API 服务器的开发流程为你讲解 kube-apiserver 具体是如何设计 REST 资源的。

  20. 18|Kubernetes如何定义标准化资源对象?

    Kubernetes 拥有如此庞大的代码量,仍然能够快速迭代和维护,其核心原因之一就是功能设计的标准化,包括 REST 资源对象的设计。本节课,我们来看下 Kubernetes 如何定义标准化的资源对象。

  21. 19|Kubernetes资源对象实现源码剖析

    在Kubernetes文章、书籍或者课程中,你可能经常接触到资源对象、对象、对象属性、资源元数据这些概念,它们因为定义相近经常会被混淆。这节课我们就来系统梳理下,并重点剖析 Kubernetes资源对象的实现源码。

  22. 20 | 请求路径构建(上):如何设置RESTful API接口路径?

    kube-apiserver本质上是一个Web服务器,对外提供标准化的RESTful API接口。RESTful API接口由请求方法、请求路径和请求参数构成。想要深入理解kube-apiserver的核心实现,就需要掌握构建RESTful API接口的三要素。

  23. 21 | 请求路径构建(下):如何根据资源对象构建请求路径?

    Kubernetes在构建REST请求路径时,依赖于3个资源核心概念:Group、Version、Kind。这节课就详细介绍下Kubernetes中的资源核心概念,以及Kubernetes是如何基于这些核心概念来构建REST请求路径的。

  24. 22|Kubernetes支持哪些RESTful API接口?

    Kubernetes的RESTful API不仅支持常规的CRUD操作,还扩展了状态更新、批量操作和实时监听等高级接口。

  25. 23|如何使用go-restful开发一个Web服务器?

    Kubernetes的整个REST路由都是基于 go-restful包来构建的,这节课我们就来详细介绍下go-restful Web 框架的核心概念及使用方法。

  26. 24|Kubernetes路由构建源码剖析

    本节课将为你详细介绍 kube-apiserver 构建路由的流程和细节知识。

  27. 25|Kubernetes HTTP请求处理流程详解

    本节课详细介绍路由函数的实现,借此你可以明白 kube-apiserver 具体是如何处理请求的。

  28. 26|Kubernetes HTTP请求逻辑核心功能点详解

    本节通过 Deployment 资源的创建请求为例,拆解了 kube-apiserver 从接收 HTTP 请求到数据最终落盘 etcd 的完整链路。

  29. 27|Kubernetes如何进行请求参数校验?

    Kubernetes 中有大量的 RESTful API 接口,在请求这些接口的时候,要进行请求参数校验。

  30. 28|Kubernetes如何设置默认值?

    上一节课,我介绍了如何校验请求参数。本节课,我再来介绍下如何给参数设置默认值。

  31. 29|Kubernetes默认值设置函数如何生成?

    这节课我们一起来了解Kubernetes中默认值设置函数的生成过程。

  32. 30|Kubernetes API的版本兼容性机制详解

    Kubernetes 如何能在快速更新迭代的同时,让企业应用所依赖的 API 版本实现平滑升级?这节课,我们就来一窥 Kubernetes 的 API 版本兼容性机制,帮助你在未来的企业应用开发中更好地处理相关工作。

  33. 31|Kubernetes中如何向稳定版本添加不稳定的功能?

    在实际企业开发中,我们经常需要往一个稳定的 API 版本中添加一个可能不稳定的功能。本节课,我们就来看下 Kubernetes 中是如何向稳定版本添加不稳定功能的。

  34. 32|Kubernetes版本转换源码剖析

    Kubernetes是如何处理多API版本带来的复杂度问题的呢?本节课,我们就来看下Kubernetes各种类型的版本之间是如何进行相互转换的。

  35. 33|kube-controller-mananger框架核心原理及源码剖析

    课程的前半部分,我详细介绍了kube-apiserver中的核心内容。接下来将介绍声明式编程中另外一个核心角色:控制器kube-controller-manager。

  36. 34|kube-controller-mananger控制器插件源码剖析

    本节课我将通过一个相对简单的具体控制器,为你展示控制器内部的源码结构及执行方式。

  37. 35|kube-scheduler框架核心原理及源码剖析

    剖析 kube-scheduler 源码,深入学习 Kubernetes 的调度原理和实现。

  38. 36|kube-scheduler调度器源码剖析(上)

    我将借助两节课的时间,带你深入探讨 kube-scheduler 的调度原理。

  39. 37|kube-scheduler调度器源码剖析(下)

    调度队列管理、调度 Pod 流程是 kube-scheduler 的动态部分,是调度器的最核心逻辑。

  40. 38|扩展能力:Kubernetes提供了哪些扩展机制?

    为了满足各大公司多样化的业务需求,Kubernetes 提供了极其强大的扩展能力。这节课,我们先来聊聊Kubernetes 提供了哪些扩展机制。

  41. 39|扩展能力:横向层、客户端层、API层扩展机制详解

    上一节课,我概括介绍了 Kubernetes 提供的扩展机制。本节课,我来详细介绍 Kubernetes 在横向层、客户端层、API 层所提供的扩展机制。

  42. 40|扩展能力:控制面层、基础设施层扩展机制详解

    本节课,我继续讲解 Kubernetes 扩展能力部分中的控制面层、基础设施层。

  43. 41|组件配置:Kubernetes组件配置详解

    本节课,我们来详细介绍下 Kubernetes 社区在配置其自有组件时,遇到的一些问题、期望、思路和具体实现。学习 Kubernetes 配置组件的背景、方式和实现,也可以为我们配置企业应用的组件提供参考。

  44. 42|组件配置:Kubernetes组件配置开发实战

    上一节课,我介绍了Kubernetes在配置内置组件时遇到的痛点及期望,以及为了解决这些痛点而开发的组件配置功能的一些实现方式。本节课,我们再来介绍如何编写代码,让一个组件支持通过配置文件的方式来配置。

  45. 43|Feature Gates(上):Kubernetes中的Feature Gates设计

    为了让应用进程内感知到是否开启此功能,或者此功能的配置是什么,Kubernetes 提供了一种灵活、强大的重要机制——Feature Gates。这节课,我们就来详细聊一聊。

  46. 44|Feature Gates(下):Kubernetes中的Feature Gates开发实战

    这节课,我们将通过一个实战示例为你展示了Feature Gates的具体的定义方法,并在代码中使用这个功能门控,为你介绍它的使用方式。

  47. 45|Leader Election:Kubernetes Leader Election原理解析

    Kubernetes使用了Leader Election(领导者选举)机制,来确保多副本实例同时只有一个实例在处理资源。这节课,我们就来聊聊它的原理。

  48. 46|Leader Election:在Kubernetes中使用Leader Election的场景

    本节课,我们来看 Kubernetes 中使用 Leader Election 的场景:让你对 Kubernetes 有更多深入理解,并且知道如何在一个大型项目中使用 Leader Election。

  49. 47|Leader Election:基于Lease的Leader Election源码剖析

    本节课将为你详细介绍如何在自己的项目中使用 Kubernetes 的 Leader Election 能力开发竞态资源处理组件,并结合实战示例与剖析源码,讲解基于 Lease 资源的 Leader Election 具体实现。

  50. 48|通过API接口的定义流程学习Kubernetes API Server

    这节课我们以“向 Kubernetes 主线代码中新增 Deployment 资源”为范例,把 API Server 处理一个内置资源所涉及的全部机制拆解成五大步骤。

  51. 49|动手实现一个Kubernetes Operator

    在 Kubernetes 编程中,开发控制器的方式有 3 种。

  52. 50|Leader Election开发实战

    如何使用 Kubernetes 的 client-go 中的 leaderelection 包实现有状态服务的多副本选主。

课程介绍

你将获得 云原生技术栈核心概念解读 手把手带你部署一个 K8s 集群 Kubernetes 核心组件源码设计及实现 Kubernetes 核心功能实现解析及实战 讲师介绍 课程介绍 Kubernetes...

你将获得

  • 云原生技术栈核心概念解读
  • 手把手带你部署一个 K8s 集群
  • Kubernetes 核心组件源码设计及实现
  • Kubernetes 核心功能实现解析及实战

讲师介绍


课程介绍

Kubernetes 目前已然成为云原生应用的事实标准,越来越多的企业也正在将其应用采用原生化的方式部署,有些应用可能还会与 Kubernetes 强耦合,例如:应用可能会调用 Kubernetes API 接口执行一些监控、自运维相关的操作;有些应用还需要编写 Kubernetes Operator 来对应用进行生命周期管理。而到了 AI 时代,应用部署的标准仍然是云原生部署,即部署在 Kubernetes 集群中。

这就使得,从 2018 年到现在,甚至在可以预见的未来,Kubernetes 仍然是基建领域的基石,甚至有很多产品都离不开 Kubernetes 的支持,例如:DevOps、机器学习平台、容器服务、FaaS、离线任务、定时任务等等。

作为开发者,如果能够深入掌握 Kubernetes,包括其功能、实现原理和实现方式,可以让我们以很强的竞争力,参与到以 Kubernetes 为基石的云原生开发岗位中。当然,也包括目前火热的 AI Infra 相关岗位。如果简历上有熟悉 Kubernetes 源码等内容,也会大大提高简历的竞争力。

因此,这门课程我们邀请到孔令飞老师,他会基于自己在该领域多年的经验,帮助你从开发视角更透彻地掌握 Kubernetes,一起深入源码细节,剖析 Kubernetes 的实现方式与核心原理。最终,会通过项目实战的方式,带你掌握 Kubernetes 的编程技术,赋能业务开发,从而实现个人职业竞争力的提升及延伸!


课程目录


订阅须知