阅读:3133回复:2
k8s apiserver源码级学习和魔改
目前我们对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使用的框架,光速入个门。不要纠结,后面我们魔改时需要用到它 |
|
|