自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 收藏
  • 关注

原创 K8s源码分析(26)-Queue组件和DeltaFIFO组件

上一篇文章里,我们主要介绍了和对象存储相关的组件 Store 接口以及它的实现结构体 cache,本质上说该接口和它的实现是对以前文章中介绍的 ThreadSafeStore 接口和它具体实现的更高级抽象,即 ThreadSafeStore 接口的操作需要针对资源对象以及对象的 key, 而 Store 接口有能力获取资源对象的 key, 所以该接口只针对资源对象操作。当然,两种组件针对资源对象的...

2022-09-25 15:46:11 362

原创 K8s源码分析(25)-Store组件和Indexer组件

上一篇文章里,我们主要介绍了和对象存储相关的组件 ThreadSafeStore 接口以及它的实现结构体 threadSafeMap,本质上来说该接口是并发安全的资源对象存储数据结构。在本篇文章里我们主要来介绍Store和 Indexer ,它们同样也是资源对象存储组件。Store接口Store 是接口,图解和源码如下://k8s.io/client-go/tools/cache/store...

2022-08-27 00:20:49 297

原创 K8s源码分析(24)-ThreadSafeStore组件

上一篇文章里,我们主要介绍了和资源索引相关的一系列对象,其中包括了 indexer 对象,index 对象,以及 indices 对象等等。在本篇文章里我们主要来介绍和对象存储相关的组件 ThreadSafeStore 接口以及其实现。ThreadSafeStore接口ThreadSafeStore 是接口,图解和源码如下://k8s.io/client-go/tool...

2022-07-29 20:30:04 251

原创 K8s源码分析(23)-indexer及index和indices组件

上一篇文章里,我们主要介绍了 kubernetes 世界中的 clientset 对象,它的主要作用是用来获取所有资源操作对象的工厂,所以从本质上来说,clientset 就是资源操作对象工厂的工厂。本篇文章里我们主要来介绍和在 client go 组件中和索引相关的一系列对象,其中包括了 indexer,index,以及 indices。IndexFunc 和 Inde...

2022-07-09 09:40:32 458

原创 K8s源码分析(22)-client go组件之clientset

上一篇文章里,我们主要介绍了不同组还有版本下的资源操作对象,以及资源操作对象工厂和工厂的实例化。该工厂是对于某一组下某一个版本资源操作对象的工厂,那么对于这些工厂对象是如何获取到的呢,kubernetes 提供了 clientset 这个对象用来获取所有的工厂,换句话来说,clientset就是资源操作对象工厂的工厂。本篇文章里我们主要来介绍这个对象。资源操作对象工厂的...

2022-07-01 21:00:50 284

原创 K8s源码分析(21)-client go组件之资源操作对象

上一篇文章里,我们主要介绍了client go这个基础组件相关的request和 result 对象,这两个对象主要用来发送资源操作的请求,以及处理相关的响应。众所周知, kubernetes 中的资源是分 group/version 的,本篇文章里我们主要来介绍对于不同组以及版本的资源操作对象。资源操作对象层级kubernetes 资源对象是区分组和版本的,对于...

2022-06-17 23:40:21 416

原创 K8s源码分析(20)-client go组件之request和result

上一篇文章里,我们主要介绍了 kubernetes 世界中 client go 这个基础组件,它的主要职责是负责与 API server 进行通讯交互。其中负责资源调度的 kube-scheduler 组件,负责资源管理的 controller manager 组件,以及负责 pod 生命周期的 kublet 组件,负责网络管理的 kube-proxy 组件都会依赖于这个...

2022-06-03 21:30:58 301

原创 K8s源码分析(19)-client go组件之RESTClient

上一篇文章里,我们主要介绍了 kubernetes 中资源 API 的注册过程,包括核心资源组和非核心资源组,以及中间是如何利用 go-restful 这个 web 框架来映射成标准的 restful API。在后面的文章里我们主要介绍 client go 这个组件,该组件主要是会负责和 kubernetes API server 进行通讯,完成对各种资源的增删改查,li...

2022-05-21 08:00:28 510

原创 K8s源码分析(18)-资源API的注册

上篇文章里,我们主要介绍了kubernetes 中资源API 的数据结构对象实例APIGroupInfo 的创建,包括对于核心组资源和非核心组资源该结构的创建过程,本篇文章我们主要介绍资源 API 的注册过程。端到端看资源 API 的注册过程可以如下图解:1.对于核心资源组来说, 我们会创建在上篇文章中介绍的 LegacyRESTStorageProvider 结构...

2022-05-13 23:35:00 315

原创 K8s源码分析(17)-资源API数据结构的创建

在上一篇文章里,我们主要介绍了kubernetes 中资源 API 的具体数据结构,其中包括结构体APIGroupInfo 代表了某一个组中所有版本资源的 API信息具体数据结构,结构体APIGroupVersion代表了某一个组中的某一个版本里所有资源的 API信息的具体数据结构,APIInstaller结构体用来辅助资源 API 的注册。在本篇文章里我们...

2022-05-07 08:00:00 277

原创 K8s源码分析(16)-资源的API数据结构

上一篇文章里,我们主要介绍了kubernetes 中资源服务类接口的实现,包括操作策略类接口以及其它的类型的具体实现。但是不论如何,在 kubernetes 定义中所有的组以及组内各个...

2022-02-12 08:00:00 374

原创 K8s源码分析(15)-资源的服务层策略接口实现

上一篇文章中,我们主要介绍了 kubernetes 中资源增删改查类接口的实现。在本篇文章里, 我们继续来介绍服务类接口的实现,包括操作策略类接口以及其它的类型实现。这里我们以常见的资源...

2022-02-06 08:00:00 566

原创 K8s源码分析(14)-资源的服务层接口实现

上一篇文章中,我们主要介绍了kubernetes 中资源的服务层接口定义,包括增删改查类接口,以及操作的策略类接口。在本篇文章里, 我们主要来介绍资源增删改查类接口的实现。对于增删改查类...

2022-01-21 20:40:00 1917

原创 K8s源码分析(13)-资源的服务层接口定义

上一篇文章中,我们主要介绍了kubernetes资源的数据访问层, 包括接口以及相关的 etcd3 数据访问层实现,支持 dry run 的数据访问层实现。在本篇文章里, 我们主要来介...

2022-01-08 08:00:00 241

原创 Log4j2 RCE 漏洞之续集

经过一周时间的 log4j2 RCE 事件的发酵,事情也变也越来越复杂和有趣,就连 log4j 官方紧急发布了 2.15.0版本之后没有过多久,又发声明说2.15.0版本也没有完全解...

2021-12-18 08:00:00 209

原创 Log4j2 RCE 漏洞复现步骤以及根因

相信大家最近一定被log4j2的远程代码执行漏洞所刷屏了,各个互联网厂商,开源组织,还有相关企业都瑟瑟发抖,相关研发人员也都是加班加点紧急修复和改正。笔者也看了一些相关文章,感觉不少都...

2021-12-12 05:46:00 6775

原创 K8s源码分析(12)-资源的数据访问层

上一篇文章中,我们主要介绍了在 kubernetes 中不同版本的资源是如何注册到 schema 对象之中,包括内部版本资源,所有外部版本资源。以及资源的model 类型的注册,资源的初...

2021-12-04 08:00:00 195

原创 K8s源码分析(11)-资源到schema的注册

上一篇文章的内容中,我们主要进行介绍了 kubernetes schema 这个重要概念。从数据结构角度上看,其中包括了它是如何来维护 group/version/kind 和资源 mod...

2021-11-27 08:00:00 535

原创 K8s源码分析(10)-资源的schema

上一篇文章中,我们主要去介绍了 codec 是如何完成 decode 和 encode 操作的,即对象的序列化和反序列化的过程。在decode 操作的核心过程中, 首先会将对象从请求中...

2021-11-13 08:00:00 598

原创 K8s源码分析(9)-codec的decode和encode操作

上一篇文章中,我们主要去介绍了codec 和 codec factory 对象的创建过程,包括利用支持各种不同协议格式(json, yaml,prtotbuf)的 serializer...

2021-11-06 08:00:00 432

原创 K8s源码分析(8)-codec和codec factory的创建

上一篇文章,我们主要介绍了 codec 组件和 codec factory 组件,这两个组件主要实现了内部版本和其他版本之间转化的序列化以及反序列化。包括了这两个组件实现的关键接口,以及这...

2021-10-23 08:00:00 296

原创 K8s源码分析(7)-序列化的codec和codec factory

上一篇文章,主要以 serializer.json.Serializer 组件做为例子,介绍了对于json 协议格式资源的序列化。其中包括了该组件是如何利用 decode 操作去从请求中...

2021-10-09 08:00:00 280

原创 K8s源码分析(6)-Resource Content 序列化

在上一篇文章中我们主要介绍了对 kubernetes 世界中的不同resource 的序列化,其中包括了 kubernetes 对于常用的不同格式 (json, yaml, protob...

2021-09-25 08:00:00 230

原创 K8s源码分析(5)-Resource Meta 序列化

在上一篇文章中我们主要介绍了 kubernetes 中的所有 resource 的基本定义 model,总结起来就是所有的 resource 都会通过继承的方式来继承typemeta...

2021-09-18 08:00:00 245

原创 K8s源码分析(4)-Resource Model

在上一篇文章中我们主要介绍了 kubernetes 世界中的各种resource 的 version,其中包括了资源的内部 internal version 和外部非 internal ...

2021-09-11 08:00:00 199

原创 K8s源码分析(3)-Resource Version

在上一篇文章中我们主要介绍了 kubernetes 中的 resource meta,以及相关的定义,在这里我们主要介绍kubernetesresource 的 version。众所周...

2021-09-04 08:00:00 586

原创 K8s源码分析(2)-Resource Meta

在上一篇文章中我们主要介绍 kubernetes 中的 resource 以及 API,包括基于 namespace 和是否为核心组的不同维度来区分 resource。在 kuberten...

2021-08-28 08:00:00 197

原创 Kubernetes 源码分析(1)-Resource和API

本文是一个系列文章,以学习为目的,对 kubernetes 源码进行分析,意在可以更好的去理解 kuberbetes 基本原理。本系列文章中使用的版本为主分支(https://github...

2021-08-21 08:00:00 461

原创 Tomcat NIO(20)-异步任务运行

在上一篇文章中我们主要介绍 tomcat nio 中异步的开启,主要包括以下的总结:开启异步的时候不会执行 start 事件函数的,因为此时构造的异步上下文对象的源码中并没有设置事件监听...

2021-01-30 14:00:00 167

原创 Tomcat NIO(19)-开启异步

在上一篇文章中我们主要介绍 tomcat nio 中的服务端事件 SSE,在这里我们主要介绍 tomcat 中的异步。对于异步处理来说,主要包括异步的开启,异步的执行,异步的结束,异步的...

2021-01-09 08:00:00 172

原创 Tomcat NIO(18)-服务端事件SSE

在上一篇文章中我们主要介绍 tomcat nio 中的流式上传文件,其本质是直接拿到上传文件的网络输入流,然后在应用程序中读取并操作。避免了以磁盘作为中转,从而提高了效率。这里我们主要介...

2020-12-26 08:00:00 503 1

原创 Tomcat NIO(17)-流式上传文件

在上一篇文章中我们主要介绍 tomcat nio 中对文件上传的原生支持,其本质是通过调用消费 servlet inputstream 相关 API ,先把文件上传到 tomcat 的工...

2020-12-19 08:00:00 211 1

原创 Tomcat NIO(16)-文件上传

在上一篇文章中我们主要介绍了 tomcat nio 中的长连接,包括长连接开启和关闭的条件,每个长连接可以复用的请求数目等等,在这里我们介绍 tomcat 对文件上传的支持。对于 htt...

2020-12-05 08:00:00 176

原创 Tomcat NIO(15)-长连接

在上一篇文章里我们主要介绍了 tomcat nio 中 blockpoller线程的阻塞与唤醒,当 tomcat io 线程读取请求实体数据不可读或者写入响应数据不可写的时候,就会注...

2020-11-29 08:00:00 369

原创 Tomcat NIO(14)-BlockPoller线程的阻塞与唤醒

上一篇文章我们主要介绍了 tomcat NIO 之中的 blockpoller线程,包括启动blockpoller 线程,添加事件到队列,对原始 socket 注册事件和blo...

2020-11-15 08:00:00 636

原创 Tomcat NIO(13)-BlockPoller

在上一篇文章里我们主要介绍了 tomcat NIO 中响应数据的写入,在这里我们主要介绍 BlockPoller线程。tomcat NIO 架构中会有一个 BlockPoller 线程...

2020-11-07 08:00:00 813

原创 Tomcat NIO(12)-响应数据写入

在上一篇文章里我们主要介绍了 tomcat 中请求数据的读取,这里主要介绍对于响应数据的写入。响应数据写入的流程上图中的 CoyoteOutputStream 实例对象就是 Servle...

2020-11-01 08:00:00 375 1

原创 Tomcat NIO(11)-请求数据读取

在上一篇文章里我们主要介绍了 tomcatio线程中涉及到的主要核心类,包括AbstractProcessorLight,Http11Processor,CoyoteAdapter...

2020-10-17 08:00:00 428

原创 Tomcat NIO(9)-IO线程-Overall流程和关键类

在上一篇文章里我们主要介绍了 tomcat NIO 中 poller线程的阻塞与唤醒,根据以前文章当 poller 线程监测到连接有数据可读事件的时候,会把原始 socket 的包装对...

2020-09-20 08:00:00 375

原创 Tomcat NIO(8)-Poller线程的阻塞与唤醒

在上一篇文章里我们主要介绍了 tomcat NIO 中的poller线程,包括启动 poller 线程,添加事件到事件队列,对原始 socket 注册事件和 poller 线程的核...

2020-09-05 08:30:00 693

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除