shenyi
资深校友
资深校友
  • UID1
  • 粉丝45
  • 关注0
  • 发帖数901
阅读:3133回复:2

k8s apiserver源码级学习和魔改

楼主#
更多 发布于:2023-03-27 01:55
  目前我们对k8s相关课程开了一个专门的源码课程专栏,供中级学员深入和进阶。  戳这里看专栏  。


   k8s是当今最流行的容器编排工具没有之一,而  API Server则是其架构中最为重要的组件也没有之一。 k8s集群中所有的API调用都会被处理和响应。为了成为一名Kubernetes专家,你必须要深入理解API Server的源码。


本课程分三章,我们将会带你深度解读Kubernetes API Server的源码,包括:
第一章(热身): 在本机直接启动,并深入一些之前没讲过的配置和代码编写。
第二章: 对apiserver 的核心概念、源码结构,进行讲解。一边讲一边改。 (纯讲 有个毛用)
第三章: 魔改项目开发 (内容待定,主要用于k8s测试环境、虚拟控制面等角度的开发)
 

第二章:apiserver入口研究
第6讲:找入口手法、服务启动的默认配置
今天说一下如何在k8s apiserver源码中找到入口,看源码的一些套路

第7讲:简化代码启动服务(1):手工填充配置
接下来我们尝试扒k8s部分源码,后面进行手动启动

第8讲:简化代码启动服务(2): 粗暴启动
今天我们去除复杂的k8i apiserver多余代码。直接粗暴启动

第9讲:简化代码启动服务(3): 去除权限认证、简单封装 试听
我们去掉之前的权限认证,赤裸裸启动

第10讲:添加自己的路由(1) 基本套路和初步代码
之前我们学过crd、聚合API。有没有想过直接改源码加入自定义内置资源呢?

第11讲:添加路由(2):改源码、增加自己的内置k8s资源
今天我们实现内置资源的添加

第12讲:添加路由(3) :直接进入底层、加入任意路由
今天要演示的是直接修改k8s apiserver底层,加入你想要加入的任意路由


第13讲:apiserver是怎么读取etcd数据的(手调)
这是之前一个同学的提问。我们直接手撸模拟,彻底知道原理


第14讲:从最底层角度模拟apiserver读取etcd数据(手调)

上节课我们只是表层模拟,并没有实际的作用。今天我们深入底层来模拟下

第15讲:list watch中的watch原理和代码模拟
本课时内容来自面试题,今天我们录个课时加深下印象


第16讲:sa账号权限判断原理(1) 扒源码改造

我们花几课时来讲一下sa账号权限判断原理,先从扒源码开始,并修改

第17讲:sa账号 (2) 手写代码实现sa的token生成
今天来个"刺激的",手写代码实现sa账号的token生成

第18讲:sa账号 (3) 手工认证token、BUG修正
上节课是生成,这节课是手工认证。直接扒了k8s源码实现


第19讲:rbac手调(1) 基本代码结构
本课时我们进入k8s rabc的源码学习,先从源码结构开始

每周更新1-2课时




第一章:热身、复习章
第1讲:开张课、直接干、本地启动apiserver 试听
今天是一个开张课,没啥好废话的。直接就是干,我们先使用k8s1.24源码,直接在本地笔记本电脑上启动apiserver

第2讲:不使用RBAC鉴权、拦截用户权限请求
今天我们讲的是权限配置,使用webhook模式放行所有权限请求

第3讲:client-go请求本地apiserver、default这个sa账户从哪来
我们的假k8s apiserver运行后,我们使用client-go来请求他。并详细解释默认sa到底从什么地方来

第4讲:复习课:k8s存在Etcd中的数据结构 试听
简单了解下即可

第5讲:api server使用的web框架:go-restful入门
api server使用的框架,光速入个门。不要纠结,后面我们魔改时需要用到它

会讲故事的程序员
shenyi
资深校友
资深校友
  • UID1
  • 粉丝45
  • 关注0
  • 发帖数901
沙发#
发布于:2023-04-07 03:53
开始更新
会讲故事的程序员
shenyi
资深校友
资深校友
  • UID1
  • 粉丝45
  • 关注0
  • 发帖数901
板凳#
发布于:2023-07-28 02:28
更至第19讲。
会讲故事的程序员
游客

返回顶部