|
Java电子书:Kubernetes源码剖析 格式 pdf 电子书 PDF 电子书 Java吧 java8.com
8 v& g) y% Z4 D3 @
. o6 B) ?' l* C! u& e1 y' d8 j/ k& ]1 o! U& ]& G
编号:mudaima-P0267【Java吧 java8.com】. [1 e% v) |6 D" j
; I$ ]* G4 g6 K5 z2 J5 }' T
N/ E$ W& u% E1 V
( C, G4 J% ?3 F
Java电子书目录:第1章 Kubernetes架构 1
& e( e& w! k0 b$ l1.1 Kubernetes的发展历史 1
/ H: H" f* ?) G0 o* a C1.2 Kubernetes架构图 26 E! y/ E; q5 M% F! E9 K" g
1.3 Kubernetes各组件的功能 41 @" T! T5 x- i
1.3.1 kubectl 5
5 T& i3 t* W, r" m9 _( u1.3.2 client-go 5
+ G/ K, O8 \ @1.3.3 kube-apiserver 5. R) d I8 Y. z% K, J& m
1.3.4 kube-controller-manager 6
. E% L, `) W. j* B, {6 e% ?1.3.5 kube-scheduler 79 f' [9 p6 X7 g5 {) H |4 K" f( v
1.3.6 kubelet 7& f/ U) o; c& f) G% @! G3 p3 Z, D
1.3.7 kube-proxy 8
; ~* B7 C0 P( \, ], ]+ s1.4 Kubernetes Project Layout设计 91 Y& T( v/ N6 K
第2章 Kubernetes构建过程 131 [" h# ?' s+ t, Q0 u
2.1 构建方式 13
; K3 z+ K o/ {. q) p/ E: b2.2 本地环境构建 156 a/ j, _) X& \! o5 o
2.2.1 一切都始于Makefile 162 F! ~* _" ^3 O# _3 W- x7 x# F
2.2.2 本地构建过程 17
% [/ ?5 x% b9 h3 ^$ U- R2.3 容器环境构建 185 A! ?* x9 ]! u
2.4 Bazel环境构建 220 l9 J' `* n# G
2.4.1 使用Bazel构建和测试Kubernetes源码 230 _) I* z z$ T& D2 X* o+ @& P
2.4.2 Bazel的工作原理 25
9 z4 m8 A- [7 |) g- u1 P6 r# t2.5 代码生成器 26
, g$ M4 l3 S# J& g' P. u" g2.5.1 Tags 27
3 I$ A6 j* H. }) I2.5.2 deepcopy-gen代码生成器 29
4 Y$ K4 p, ?: {, T8 n( R2.5.3 defaulter-gen代码生成器 303 S" l" i+ A% ?- p8 c( C$ x
2.5.4 conversion-gen代码生成器 32$ `$ x* O9 z/ _
2.5.5 openapi-gen代码生成器 34
, }* v, | n& L x2.5.6 go-bindata代码生成器 36
2 J: T, C# T w: o2.6 代码生成过程 37: ]$ b' | n6 n' I2 W
2.7 gengo代码生成核心实现 40
' C/ x2 G$ H( p2 F6 H2.7.1 代码生成逻辑与编译器原理 41 D( r' X- \$ r7 V: p6 ]
2.7.2 收集Go包信息 42
9 M! D1 U7 x: P* s2.7.3 代码解析 45
1 n( T! e+ f, j$ v7 T5 D$ x2.7.4 类型系统 48
3 X" k8 P0 H$ f2.7.5 代码生成 51
" I- U) C2 t+ S7 f第3章 Kubernetes核心数据结构 57. p, O* u. m& o6 D/ O
3.1 Group、Version、Resource核心数据结构 57* [+ K, [2 e4 K( l
3.2 ResourceList 59
( ^# K2 n0 Y) x3.3 Group 62" S! E1 A$ Q0 Q9 q; a2 R3 ` U
3.4 Version 63
9 ^7 u, X6 \5 `5 p3.5 Resource 65% p: D. u" T3 ~* P3 M( v
3.5.1 资源外部版本与内部版本 66% Y; c x* f/ y' |4 C
3.5.2 资源代码定义 68
* G# t8 ^. t! `! e* |# H1 O3.5.3 将资源注册到资源注册表中 71
/ G( V+ p0 h! |. Q$ i3.5.4 资源版本 71
- D/ F) z- C% K: n# b5 u- `3.5.5 资源操作方法 72# o- c& U% P, a3 y6 G1 }
3.5.6 资源与命名空间 75. X- X! ~* v$ w. k( y6 K2 u: t
3.5.7 自定义资源 77- W" Z& \+ ?7 q3 E
3.5.8 资源对象描述文件定义 78
8 L; L1 f; q) V {6 s2 y0 b3.6 Kubernetes内置资源全图 79# b# ~0 l! `" ~8 t" L
3.7 runtime.Object类型基石 83
% ~" w( _! ~. ^ z8 R, W3.8 Unstructured数据 85
9 ~0 x# f% x. P. J z8 {3.9 Scheme资源注册表 87: v' O% f0 U# ~: P
3.9.1 Scheme资源注册表数据结构 87
" `2 ~1 e9 ^* R) r: w3.9.2 资源注册表注册方法 91
7 o% U; ~+ @8 }' y. d$ `! W! v6 g+ [% B3.9.3 资源注册表查询方法 929 r( g. u6 X4 T$ E1 H$ Y# d
3.10 Codec编解码器 92
+ k8 F; S$ Q$ K2 p! F3.10.1 Codec编解码实例化 94( w2 o8 W5 s0 x+ |! n, {- Q( D5 [
3.10.2 jsonSerializer与yamlSerializer序列化器 95' R3 j# V9 N D. n8 @& F. A/ }
3.10.3 protobufSerializer序列化器 98
9 _" X* D5 P1 r; l% o: c- A* o3.11 Converter资源版本转换器 100" T5 @- }% O- H0 y. p
3.11.1 Converter转换器数据结构 101
% l `8 {/ o& {9 `0 y' ~& i3.11.2 Converter注册转换函数 1021 |4 P+ _3 J; G
3.11.3 Converter资源版本转换原理 104
0 Y: s9 B8 X) Z W& |第4章 kubectl命令行交互 111
8 s: w& `% k) C; k. \4 s7 o+ q* c4.1 kubectl命令行参数详解 111 x3 _/ ^6 l4 k6 l7 s
4.2 Cobra命令行参数解析 114
* r" x' L1 C, R2 L$ ~- M: F4.3 创建资源对象的过程 119' |& t2 b1 z' M! J
4.3.1 编写资源对象描述文件 120* {4 w! x: X, L& {
4.3.2 实例化Factory接口 1203 F& g7 ?( n p7 p+ m3 W+ G! Q, G: h
4.3.3 Builder构建资源对象 121
2 E4 t+ e( u( G( H; b4.3.4 Visitor多层匿名函数嵌套 122! `/ t4 [: E( }$ i- ?
第5章 client-go编程式交互 1283 j* l! U7 ~3 g9 P ^
5.1 client-go源码结构 1284 q9 e, P* t0 I% l' q% S N5 f5 U
5.2 Client客户端对象 129
' ]% h4 N+ p8 I- W" i0 B; s4 F' M4 C5.2.1 kubeconfig配置管理 130
l% r V/ O7 O s! e8 f5.2.2 RESTClient客户端 134
% \' {; h* N }& a* w5.2.3 ClientSet客户端 137
6 p; @9 B4 J% \& C4 G, e* h% H5.2.4 DynamicClient客户端 139
! f0 R; P$ z4 `2 f5.2.5 DiscoveryClient客户端 141
% c% ]/ F) W! H6 g5.3 Informer机制 144
# `2 {. P4 h; F- C5.3.1 Informer机制架构设计 145+ Z5 ?4 J2 {* i. a. b' r
5.3.2 Reflector 1498 A8 E% ]% C5 S K/ H$ E8 t
5.3.3 DeltaFIFO 154
3 _, w4 n* E& i5 `( I# i5.3.4 Indexer 158
7 Y W$ I4 B) X( L. _5 y7 A; ?$ |4 X5.4 WorkQueue 162! K4 O$ H& }& Q. l
5.4.1 FIFO队列 1637 C$ V7 {. U9 n6 K; q, \6 K& N
5.4.2 延迟队列 165
2 E0 S6 t1 E R& K6 t) Y1 T$ n& L5.4.3 限速队列 1661 x+ J: s3 k0 l! A" {
5.5 EventBroadcaster事件管理器 1701 y! ~4 n1 m1 r2 f
5.6 代码生成器 176+ F8 q$ c( C8 _( ?9 j
5.6.1 client-gen代码生成器 1762 ^4 h! V; M0 Y# B! S' {! I7 A6 p& K
5.6.2 lister-gen代码生成器 1807 W. N( s- T% W' p: O" ]& n
5.6.3 informer-gen代码生成器 182
/ \) {& m8 F6 F; ~) a: {5.7 其他客户端 185
: L* c4 j9 A) ^1 R7 \) J; l( e4 g/ b第6章 Etcd存储核心实现 1874 P& y6 T- i6 Q; v! [7 v A
6.1 Etcd存储架构设计 187" z9 k1 \1 r8 R" z7 R# p4 X
6.2 RESTStorage存储服务通用接口 189
R1 L( |7 I8 G/ z6.3 RegistryStore存储服务通用操作 1906 o0 N) O' M1 ~6 m, B
6.4 Storage.Interface通用存储接口 192
# d* F8 r( u7 V8 c, {0 l6.5 CacherStorage缓存层 194
! Q1 B8 N9 z* f+ k6.5.1 CacherStorage缓存层设计 195
' v" @; F- E' ~2 t, }/ p1 O6.5.2 ResourceVersion资源版本号 199
5 I. {# k8 c4 w# h+ G# |6.5.3 watchCache缓存滑动窗口 201! }# f' d7 Q7 Y* S2 f# Q
6.6 UnderlyingStorage底层存储对象 204+ A; K1 t& p" h6 ^7 {4 H
6.7 Codec编解码数据 206' G2 s) s5 T" x0 {4 R- y
6.8 Strategy预处理 209, d- q7 [% u/ }! x* N, i
6.8.1 创建资源对象时的预处理操作 209/ @, O( x$ J1 y8 Y5 o$ _: L" a
6.8.2 更新资源对象时的预处理操作 211
1 b5 ^& l+ A2 P, m% a; {6.8.3 删除资源对象时的预处理操作 212
' R6 E; E+ a$ b3 K6.8.4 导出资源对象时的预处理操作 2133 x5 @4 X( T1 q
第7章 kube-apiserver核心实现 2142 g9 t# B" h8 m& p8 {, K7 O
7.1 热身概念 2154 f0 R( N+ Z9 j# r* H: S' R; r
7.1.1 go-restful核心原理 215( q5 i' s# u* c# A" I6 w6 ]* u g
7.1.2 一次HTTP请求的完整生命周期 218
" b% T) s4 y' S- A( S; o% c" Q7.1.3 OpenAPI/Swagger核心原理 219" f+ ~: o3 R$ c4 P- L' f) Y
7.1.4 HTTPS核心原理 222
! Y4 G' f$ F1 p7.1.5 gRPC核心原理 224
- W' F& f8 [: l7 H" N" E7.1.6 go-to-protobuf代码生成器 2252 \# g5 {- H) x) ~: K2 I
7.2 kube-apiserver命令行参数详解 231" R- \9 X& z6 ^# |5 `
7.3 kube-apiserver架构设计详解 243; d$ H5 s/ h5 T, @$ w
7.4 kube-apiserver启动流程 244
( d% E- Z" G5 u: y0 v7 \$ C7.4.1 资源注册 245
: n& N* Y7 b& C" R% o7.4.2 Cobra命令行参数解析 248
/ \+ n" c- S% f; m" d1 j+ C* y$ k7.4.3 创建APIServer通用配置 249
( I* ~, _$ ^9 m) w4 g$ L7.4.4 创建APIExtensionsServer 257
/ D# F1 g+ e& {6 `7.4.5 创建KubeAPIServer 261
/ N1 E5 |; P4 z- k, {$ w& T7.4.6 创建AggregatorServer 266" B, M. \5 x0 J8 \* v4 {9 G% h- P
7.4.7 创建GenericAPIServer 269
! j3 v( D2 H+ h4 F* k4 R7 s# n: w7.4.8 启动HTTP服务 270( m0 a" q# X: T: B! t4 o6 l' K/ j7 P
7.4.9 启动HTTPS服务 272 }' }$ T- W* \4 y; r& B! y2 t
7.5 权限控制 272
# a3 ?" t* k! b4 @5 \ g4 g7.6 认证 273% y4 E' O1 Q6 i
7.6.1 BasicAuth认证 276
2 j. _4 V2 l% E: H ^3 U/ f7.6.2 ClientCA认证 277
1 p, I7 X) T' r+ u1 m/ E7.6.3 TokenAuth认证 2783 s# e8 A, l+ d
7.6.4 BootstrapToken认证 279
* ]( Q9 w, u: |* N. W& J7.6.5 RequestHeader认证 281, D* k6 g F& p4 K$ H; c, n/ H7 p
7.6.6 WebhookTokenAuth认证 2826 i: q0 \" v; @4 y6 m% t, h
7.6.7 Anonymous认证 2849 ?: z9 R; J* c/ ?3 M0 y4 }# F
7.6.8 OIDC认证 285
7 V7 Y5 q- z" {9 R" w" p0 E7.6.9 ServiceAccountAuth认证 288- K& |) W2 D( I# |) S
7.7 授权 291
5 b+ Q4 {0 r) z4 V5 d7.7.1 AlwaysAllow授权 295- a/ l7 }# {/ X$ e D, `0 R
7.7.2 AlwaysDeny授权 2968 C! T7 j8 V' \9 ~( A, X8 R5 y
7.7.3 ABAC授权 297
5 i- G7 C0 X k; `. P+ K) C7.7.4 Webhook授权 2988 l P1 O3 b7 L5 {9 e1 ~+ ^
7.7.5 RBAC授权 3006 t/ }) f; L1 z# V) H/ v4 G
7.7.6 Node授权 309
. [ f- v1 t$ \* M5 ?7.8 准入控制器 310
6 ?+ y# C( p m3 g( O7.8.1 AlwaysPullImages准入控制器 315
( y0 [0 e% x- _0 R* d# O7.8.2 PodNodeSelector准入控制器 316
" x$ k7 y8 V0 p$ Z2 V8 Q7.9 进程信号处理机制 3189 k8 U4 ?6 J4 W
7.9.1 常驻进程实现 318
+ T4 O0 a2 | {3 f1 M1 N0 ?; M4 j! Y& ?7.9.2 进程的优雅关闭 3190 v7 b3 S9 Q. s" ]. y) h2 Z/ O1 w
7.9.3 向systemd报告进程状态 320 L9 B6 q0 s( L; m9 K- L
第8章 kube-scheduler核心实现 321
" f1 R1 @9 w L7 {8.1 kube-scheduler命令行参数详解 321, a& n: `4 S' p) M4 ^- ~, t
8.2 kube-scheduler架构设计详解 324
[3 ?" d8 ^3 s* r8.3 kube-scheduler组件的启动流程 326
" v. S' P5 u* k- Q8 y/ t8.3.1 内置调度算法的注册 3275 a' c/ l) m: C9 b/ S3 p5 J8 P
8.3.2 Cobra命令行参数解析 328* r4 [6 U! l @5 j
8.3.3 实例化Scheduler对象 329: t ] T; ^6 o
8.3.4 运行EventBroadcaster事件管理器 331; n% |: a; d3 q! y# I: J! K
8.3.5 运行HTTP或HTTPS服务 3315 f% O) h% o! H Q3 W; Y
8.3.6 运行Informer同步资源 332
, S$ [5 Z, m1 p/ x4 T, X) @8.3.7 领导者选举实例化 332
# G- h2 e+ j2 f; H+ \* N: Q9 r7 {8.3.8 运行sched.Run调度器 333+ i0 u9 d" d6 E: Z) m; R
8.4 优先级与抢占机制 333
1 V/ E- A; a2 T/ |/ T8.5 亲和性调度 335' t4 f/ a, b* g- Y2 m2 @
8.5.1 NodeAffinity 336
, \3 s& z& W/ S: f! J# W$ U0 X8.5.2 PodAffinity 337
& A/ |* z2 i, S3 K. t8.5.3 PodAntiAffinity 338
' T2 M$ x H A8 P8.6 内置调度算法 3397 m: K2 V4 R1 P/ U( |+ N
8.6.1 预选调度算法 339
/ d7 Z0 i& Z8 ^5 ^8.6.2 优选调度算法 340$ M7 n" Y- t$ ]
8.7 调度器核心实现 342
6 }9 F+ x+ L6 {8 K8.7.1 调度器运行流程 3429 W; f. L. A% M* N: V. I7 v6 s- F
8.7.2 调度过程 343% i! h/ O& t' t2 h, E2 y
8.7.3 Preempt抢占机制 351
1 Q2 P, m- K1 \: G0 Z* P7 \8.7.4 bind绑定机制 356
# {1 k: [1 _/ c5 }# @ x# \8.8 领导者选举机制 357
. x) E) ^; d) U( f* z8.8.1 资源锁 358
" V/ @8 q, Y3 H: e* G* L8.8.2 领导者选举过程 360
; n7 m. q) \3 R, w2 I2 e: X; t) v0 D9 P1 ^* t7 y/ |5 D% G: u
百度云盘下载地址(完全免费-绝无套路):/ d- Z" N2 p( G' t7 V8 K
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|