首页
学习
活动
专区
工具
TVP
发布

TA码字

专栏成员
94
文章
101985
阅读量
22
订阅数
K8s源码分析(26)-Queue组件和DeltaFIFO组件
上一篇文章里,我们主要介绍了和对象存储相关的组件 Store 接口以及它的实现结构体 cache,本质上说该接口和它的实现是对以前文章中介绍的 ThreadSafeStore 接口和它具体实现的更高级抽象,即 ThreadSafeStore 接口的操作需要针对资源对象以及对象的 key, 而 Store 接口有能力获取资源对象的 key, 所以该接口只针对资源对象操作。当然,两种组件针对资源对象的操作在底层上都是并发安全的。本篇文章中我们主要来介绍 Queue 和 DeltaFIFO 组件 ,也是资源对象存储组件。
TA码字
2022-10-30
3320
K8s源码分析(25)-Store组件和Indexer组件
上一篇文章里,我们主要介绍了和对象存储相关的组件 ThreadSafeStore 接口以及它的实现结构体 threadSafeMap,本质上来说该接口是并发安全的资源对象存储数据结构。在本篇文章里我们主要来介绍 Store 和 Indexer ,它们同样也是资源对象存储组件。
TA码字
2022-10-30
3670
K8s源码分析(24)-ThreadSafeStore组件
上一篇文章里,我们主要介绍了和资源索引相关的一系列对象,其中包括了 indexer 对象,index 对象,以及 indices 对象等等。在本篇文章里我们主要来介绍和对象存储相关的组件 ThreadSafeStore 接口以及其实现。
TA码字
2022-10-30
2360
K8s源码分析(23)-indexer及index和indices组件
上一篇文章里,我们主要介绍了 kubernetes 世界中的 clientset 对象,它的主要作用是用来获取所有资源操作对象的工厂,所以从本质上来说,clientset 就是资源操作对象工厂的工厂。本篇文章里我们主要来介绍和在 client go 组件中和索引相关的一系列对象,其中包括了 indexer,index,以及 indices。
TA码字
2022-10-30
5330
K8s源码分析(22)-client go组件之clientset
上一篇文章里,我们主要介绍了不同组还有版本下的资源操作对象,以及资源操作对象工厂和工厂的实例化。该工厂是对于某一组下某一个版本资源操作对象的工厂,那么对于这些工厂对象是如何获取到的呢,kubernetes 提供了 clientset 这个对象用来获取所有的工厂,换句话来说,clientset 就是资源操作对象工厂的工厂。本篇文章里我们主要来介绍这个对象。
TA码字
2022-10-30
5680
K8s源码分析(21)-client go组件之资源操作对象
上一篇文章里,我们主要介绍了 client go 这个基础组件相关的 request 和 result 对象,这两个对象主要用来发送资源操作的请求,以及处理相关的响应。众所周知, kubernetes 中的资源是分 group/version 的,本篇文章里我们主要来介绍对于不同组以及版本的资源操作对象。
TA码字
2022-10-30
3030
K8s源码分析(20)-client go组件之request和result
上一篇文章里,我们主要介绍了 kubernetes 世界中 client go 这个基础组件,它的主要职责是负责与 API server 进行通讯交互。其中负责资源调度的 kube-scheduler 组件,负责资源管理的 controller manager 组件,以及负责 pod 生命周期的 kublet 组件,负责网络管理的 kube-proxy 组件都会依赖于这个组件。而该组件在通讯的时候又依赖于 request 对象,并且得到相应的 result 对象,在本篇文章里我们主要来介绍 request 和 result 对象。
TA码字
2022-10-30
2700
K8s源码分析(19)-client go组件之RESTClient
上一篇文章里,我们主要介绍了 kubernetes 中资源 API 的注册过程,包括核心资源组和非核心资源组,以及中间是如何利用 go-restful 这个 web 框架来映射成标准的 restful API。在后面的文章里我们主要介绍 client go 这个组件,该组件主要是会负责和 kubernetes API server 进行通讯,完成对各种资源的增删改查,list and watch 等系列操作。例如负责资源调度的 kube-scheduler 组件,负责资源管理的 controller manager 组件,负责 pod 生命周期管理的 kublet 组件,负责网络管理的 kube-proxy 组件,它们与 API server 的通讯完全依赖于 client go 这个组件,所以该组件是基础中的基础。本篇文章我们主要该组件中的 RESTClient。
TA码字
2022-05-30
7920
K8s源码分析(18)-资源API的注册
上篇文章里,我们主要介绍了 kubernetes 中资源 API 的数据结构对象实例 APIGroupInfo 的创建,包括对于核心组资源和非核心组资源该结构的创建过程,本篇文章我们主要介绍资源 API 的注册过程。
TA码字
2022-05-30
5080
K8s源码分析(17)-资源API数据结构的创建
在上一篇文章里,我们主要介绍了 kubernetes 中资源 API 的具体数据结构,其中包括结构体 APIGroupInfo 代表了某一个组中所有版本资源的 API 信息具体数据结构,结构体 APIGroupVersion 代表了某一个组中的某一个版本里所有资源的 API 信息的具体数据结构,APIInstaller 结构体用来辅助资源 API 的注册。在本篇文章里我们主要来介绍结构体 APIGroupInfo 的创建。
TA码字
2022-05-30
6650
K8s源码分析(16)-资源的API数据结构
上一篇文章里,我们主要介绍了 kubernetes 中资源服务类接口的实现,包括操作策略类接口以及其它的类型的具体实现。但是不论如何, 在 kubernetes 定义中所有的组以及组内各个版本的资源都是通过 REST API 来向外暴露提供操作的,在本篇文章中我们主要介绍 kubernetes 资源 API 的数据结构。
TA码字
2022-02-25
5150
K8s源码分析(15)-资源的服务层策略接口实现
上一篇文章中,我们主要介绍了 kubernetes 中资源增删改查类接口的实现。在本篇文章里, 我们继续来介绍服务类接口的实现,包括操作策略类接口以及其它的类型实现。
TA码字
2022-02-25
5260
K8s源码分析(14)-资源的服务层接口实现
上一篇文章中,我们主要介绍了 kubernetes 中资源的服务层接口定义,包括增删改查类接口,以及操作的策略类接口。在本篇文章里, 我们主要来介绍资源增删改查类接口的实现。
TA码字
2022-02-25
4490
K8s源码分析(13)-资源的服务层接口定义
上一篇文章中,我们主要介绍了 kubernetes 资源的数据访问层, 包括接口以及相关的 etcd3 数据访问层实现,支持 dry run 的数据访问层实现。在本篇文章里, 我们主要来介绍资源的服务层接口。
TA码字
2022-02-25
4270
从技术角度聊聊一码通
最近西安疫情特别严重,前一阵子还出现了一码通崩溃的事件,网络上对此也有各种各样的评论和说法。对于各种言论和说法我们没有权力去评头论足,但是可以从技术的角度聊一聊,如果是我们接到了这样的需求,应该来如何设计这个系统。使得它可以在关键时刻经得住考验,为防疫工作提供方便做出贡献。
TA码字
2021-12-30
8840
Log4j2 RCE 漏洞之续集
经过一周时间的 log4j2 RCE 事件的发酵,事情也变也越来越复杂和有趣,就连 log4j 官方紧急发布了 2.15.0 版本之后没有过多久,又发声明说 2.15.0 版本也没有完全解决问题,然后进而继续发布了 2.16.0 版本。刚刚熬夜费劲升级了 2.15.0 版本的小伙伴们是不是心中一万个小羊驼奔过。然而在网络上也有各种文章和博客进行激烈的讨论,例如高版本的 JDK 也可以避免,开启 formatMsgNolookups 的方案,还有log4j1 可以幸免于难等等各种说法。在这里笔者针对这些讨论详细介绍一下,JDK 高版本是否可以避免,开启 formatMsgNolookups 的方案是否可行,log4j1 是否真的可以幸免于难。
TA码字
2021-12-24
7340
Log4j2 RCE 漏洞复现步骤以及根因
相信大家最近一定被 log4j2 的远程代码执行漏洞所刷屏了,各个互联网厂商,开源组织,还有相关企业都瑟瑟发抖,相关研发人员也都是加班加点紧急修复和改正。笔者也看了一些相关文章,感觉不少都是刷屏,刷阅读量,甚至是做相关广告的,详细介绍的少之又少。这里写一篇文章,详细介绍 log4j2 RCE 漏洞复现步骤以及根因,纯粹是以学习为目的。log4j2 RCE 漏洞总体来说是通过 JNDI 注入来完成的,具体的有 RMI 协议的方式和 LDAP 协议等不同方式,这里以 RMI 方式为例子做详细复现步骤和根因分析(不了解 JNDI/RMI/LDAP 等相关概念的同学请自 Google)。
TA码字
2021-12-18
8500
K8s源码分析(12)-资源的数据访问层
上一篇文章中,我们主要介绍了在 kubernetes 中不同版本的资源是如何注册到 schema 对象之中,包括内部版本资源,所有外部版本资源。以及资源的 model 类型的注册,资源的初始化函数(即默认值函数)的注册,资源的 label 转换函数的注册,和内外部版本相互转换函数的注册。在本篇文章里, 我们主要来介绍资源的数据访问层。
TA码字
2021-12-07
6290
K8s源码分析(11)-资源到schema的注册
上一篇文章的内容中,我们主要进行介绍了 kubernetes schema 这个重要概念。从数据结构角度上看,其中包括了它是如何来维护 group/version/kind 和资源 model 的对应关系,资源 model 和默认值函数的对应关系,不同资源版本之间相互转化函数的对应关系等等。从实现接口角度看, schema 实现了一系列接口,从而具备了创建资源对象,给资源对象赋默认值,识别资源对象类型,完成资源对象本版之间的转换,完成资源的 label 标签转化等功能。在本篇文章里, 我们主要介绍不同版本的资源到 schema 对象中的注册。
TA码字
2021-11-30
1.7K1
K8s源码分析(10)-资源的schema
上一篇文章中,我们主要去介绍了 codec 是如何完成 decode 和 encode 操作的,即对象的序列化和反序列化的过程。 在 decode 操作的核心过程中, 首先会将对象从请求中反序列化,然后在转化为目标版本(一般是内部版本),然后在进行处理。encode 操作的过程中, 首先将对象(一般为内部版本对象)转化为目标版本,然后再序列化到响应数据流中。
TA码字
2021-11-18
1.3K0
点击加载更多
社区活动
AI代码助手快速上手训练营
鹅厂大牛带你玩转AI智能结对编程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档