深入理解kuberes源码 网络技术 郑东旭 等 新华正版
¥
107.9
6.8折
¥
159
全新
库存32件
作者郑东旭 等
出版社电子工业出版社
ISBN9787121483233
出版时间2018-10
版次1
装帧平装
开本16
页数696页
字数1170千字
定价159元
货号xhwx_1203333759
上书时间2024-08-02
商品详情
- 品相描述:全新
-
正版特价新书
- 商品描述
-
目录:
章 kuberes基本架构1
1.1 kuberes发展历史1
1.2 kuberes架构2
1.3 kuberes各组件功能3
1.3.1 kubectl4
1.3.2 client-go4
1.3.3 kube-apiserver4
1.3.4 kube-controller-manager4
1.3.5 kube-scheduler5
1.3.6 kubelet5
1.3.7 kube-proxy6
1.3.8 container runtime6
1.4 kuberes project layout设计7
第2章 kuberes构建过程10
2.1 构建方式10
2.2 都始于makefile12
2.3 本地环境构建13
2.3.1 本地环境构建命令13
2.3.2 本地环境构建过程14
2.4 容器环境构建16
2.4.1 容器环境构建命令16
2.4.2 容器环境构建过程16
第3章 kuberes核心数据结构19
3.1 初识数据结构19
3.2 基本概念19
3.2.1 api的层次结构19
3.2.2 版本控制20
3.2.3 组21
3.2.4 api术语22
3.2.5 api资源组成25
3.2.6 版本化资源与未版本化资源26
3.2.7 版本与外部版本27
3.3 kuberes api的数据结构28
3.3.1 apigroup、apiversions28
3.3.2 apiresource30
3.3.3 gvk和gvr32
3.3.4 内置资源全景图33
3.4 kuberes资源定义35
3.4.1 版本定义35
3.4.2 外部版本定义36
3.5 将资源注册到scheme中36
3.5.1 资源类型注册入37
3.5.2 scheme的数据结构38
3.5.3 scheme的初始化40
3.5.4 schemebuilder资源注册41
3.5.5 资源外部版本注册43
3.5.6 资源版本注册44
3.5.7 所有资源的注册入45
3.5.8 资源注册表的查询方法47
3.5.9 资源对象的创建48
3.5.10 资源对象的转换48
3.5.11 资源对象默认值的设置49
3.5.12 资源字段的转换49
3.6 对象体系设计49
3.6.1 资源对象的基本信息49
3.6.2 对象体系类图50
3.6.3 runtime.object51
3.6.4 metav1.typemeta52
3.6.5 metav1.objectmeta52
3.6.6 unstructured53
3.7 runtime.codec资源编/解码55
3.7.1 编/解码数据结构56
3.7.2 codecfactory实例化57
3.7.3 codec编/解码实现类60
3.7.4 json.serializer编/解码64
3.7.5 protobuf.serializer编/解码65
3.7.6 unstructuredjsonscheme实现类67
3.7.7 negotiatedserializer67
3.7.8 parametercodec69
3.7.9 runtime包下的codec相关函数71
3.7.10 codec核心调用链路72
3.7.11 codec的使用方式74
3.8 converter资源版本转换器75
3.8.1 converter的数据结构76
3.8.2 converter转换函数的注册77
3.8.3 converter的初始化77
3.8.4 converter资源版本转换的实现78
3.9 使用restmapper管理gvr和gvk映79
3.9.1 restmapper的数据结构80
3.9.2 restmapper实现类81
3.9.3 defaultrestmapper默认实现类82
3.9.4 priorityrestmapper优先级映83
3.9.5 deferreddiscoveryrestmapper实现类84
3.9.6 restmapper的使用85
3.9.7 restmapping的数据结构及典型用法85
第4章 kuberes核心资源对象87
4.1 初识kuberes资源对象87
4.2 metav1.objectmeta属元数据88
4.2.1 name88
4.2.2 generatename89
4.2.3 annotation89
4.2.4 generation89
4.2.5 resourceversion90
4.2.6 ownerreference91
4.2.7 finalizers92
4.2.8 managedfields94
4.3 pod资源对象99
4.3.1 podspec字段详解100
4.3.2 container字段详解110
4.3.3 pod创建流程114
4.3.4 pause容器及创建流程115
4.3.5 podspec生成容器参数122
4.3.6 容器的通用创建流程124
4.3.7 资源配额与cgroup126
4.3.8 qos与驱逐顺序131
4.3.9 静态pod135
4.3.10 健康检查137
4.3.11 pod的140
4.3.12 原地升级144
4.4 工作负载资源146
4.4.1 deployment146
4.4.2 replicaset153
4.4.3 statefulset156
4.4.4 daemonset160
4.4.5 job163
4.4.6 cronjob166
4.5 发现和负载均衡资源169
4.5.1 service169
4.5.2 ingress175
4.5.3 endpoints177
4.5.4 endpointslice178
4.5.5 workpolicy182
4.6 配置和存储资源185
4.6.1 卷185
4.6.2 pv与pvc186
4.6.3 storageclass191
4.7 自定义资源194
4.7.1 概述194
4.7.2 operator196
4.7.3 controller-runtime197
4.7.4 kubebuilder198
第5章 client-go编程式交互200
5.1 初识client-go200
5.2 客户端200
5.2.1 kubeconfig配置管理201
5.2.2 restclient客户端204
5.2.3 clientset客户端207
5.2.4 dynamicclient客户端210
5.2.5 discoveryclient发现客户端212
5.3 informer机制214
5.3.1 informer使用示例214
5.3.2 informer架构216
5.3.3 reflector数据同步217
5.3.4 deltafifo作队列223
5.3.5 indexer资源缓存226
5.3.6 processor资源处理230
5.3.7 workqueue工作队列233
5.4 常用工具类240
5.4.1 事件管理机制240
5.4.2 leader选举机制247
第6章 kubectl命令式交互256
6.1 初识kubectl256
6.2 kubectl执行流程256
6.2.1 初始化命令对象257
6.2.2 补全命令参数257
6.2.3 校验命令参数258
6.2.4 执行命令输出结果258
6.3 kubectl缓存机制263
6.3.1 缓存数据结构264
6.3.2 缓存机制详解265
6.3.3 缓存使用场景269
6.4 kubectl变更比对策略272
6.4.1 变更比对策略介绍272
6.4.2 服务端应用和客户端应用272
6.4.3 策略比对器和json比对器274
6.4.4 双路合并和三路合并275
6.5 kubectl扩展命令277
6.5.1 扩展命令介绍277
6.5.2 扩展命令实现277
6.5.3 扩展命令管理器krew278
第7章 etcd存储核心实现280
7.1 初识etcd存储280
7.2 etcd存储架构设计280
7.3 reststorage资源存储接282
7.4 genericregistry.store通用作封装283
7.4.1 标准存储实现283
7.4.2 版本检测284
7.4.3 通用钩子函数284
7.4.4 dryrun实现287
7.5 storage.interface通用存储接288
7.6 cacher storage缓存层290
7.6.1 cacher storage缓存架构291
7.6.2 resourceversion资源版本号295
7.6.3 watchcache缓存滑动窗297
7.7 underlying storage底层存储对象300
7.8 codec数据编/解码301
7.9 strategy预处理304
7.9.1 create strategy预处理304
7.9.2 update strategy预处理307
7.9.3 delete strategy预处理308
第8章 kube-apiserver核心实现310
8.1 初识kube-apiserver310
8.2 网络通信框架311
8.2.1 go-restful框架311
8.2.2 protobuf序列化314
8.3 kube-apiserver架构设计319
8.4 kube-apiserver启动流程321
8.4.1 scheme资源注册322
8.4.2 cobra命令行参数解析324
8.4.3 创建api server通用配置325
8.4.4 创建apiextensionsserver336
8.4.5 创建kubeapiserver345
8.4.6 创建aggregatorserver353
8.4.7 genericapiserver初始化360
8.4.8 准备和启动s服务362
8.5 请求处理流程367
8.6 权限控制体系368
8.7 认证369
8.7.1 requestheader认证370
8.7.2 clientca认证372
8.7.3 tokenauth认证373
8.7.4 serviceaccountauth认证374
8.7.5 bootstraptoken认证377
8.7.6 oidc认证379
8.7.7 webhooktokenauth认证381
8.7.8 anonymous认证383
8.8 授权383
8.8.1 alwaysallow授权386
8.8.2 alwaysdeny授权387
8.8.3 abac授权388
8.8.4 webhook授权389
8.8.5 rbac授权391
8.8.6 node授权396
8.9 准入控制器397
8.9.1 内置插件介绍398
8.9.2 实现401
8.9.3 mutatingadmissionwebhook准入控制器404
8.9.4 validatingadmissionwebhook准入控制器411
8.10 信号处理机制416
8.10.1 常驻进程实现416
8.10.2 进程的优雅关闭417
8.10.3 向systemd报告进程419
8.11 list-watch的实现420
8.11.1 长连接通信协议420
8.11.2 list-watch的核心425
第9章 kube-scheduler核心实现430
9.1 初识kube-scheduler430
9.1.1 kube-scheduler调度模型430
9.1.2 kube-scheduler架构431
9.1.3 kube-scheduler事件驱动434
9.2 kube-scheduler启动流程437
9.2.1 cobra命令行参数解析438
9.2.2 实例化scheduler对象439
9.2.3 运行eventbroadcaster事件管理器442
9.2.4 运行s server442
9.2.5 运行informer同步资源443
9.2.6 执行leader选举444
9.2.7 运行调度器445
9.3 scheduling framework445
9.3.1 诞生背景445
9.3.2 核心架构446
9.4 调度器运行流程452
9.4.1 整体运行流程452
9.4.2 scheduling cycle454
9.4.3 bin cycle462
9.5 优先级与占机制464
9.5.1 pod优先级465
9.5.2 pod驱逐占机制466
9.6 内置调度插件介绍473
0章 kube-controller-manager核心实现475
10.1 初识kube-controller-manager475
10.2 架构设计详解477
10.2.1 控制器模型477
10.2.2 控制器执行478
10.3 启动流程479
10.3.1 cobra命令行参数解析480
10.3.2 运行eventbroadcaster事件处理器481
10.3.3 运行s服务481
10.3.4 执行leader选举482
10.3.5 启动控制器主循环482
10.4 replicaset控制器484
10.4.1 控制器初始化485
10.4.2 主要执行逻辑485
10.4.3 慢启动创建pod487
10.4.4 排序并删除多余的pod487
10.4.5 expectation机制488
10.5 deployment控制器492
10.5.1 控制器初始化492
10.5.2 主要执行逻辑492
10.5.3 调谐pod的数量495
10.5.4 更新策略495
10.5.5 版本回滚496
10.6 daemonset控制器497
10.6.1 控制器初始化498
10.6.2 主要执行逻辑498
10.6.3 调谐pod的数量500
10.6.4 更新策略501
10.7 statefulset控制器503
10.7.1 控制器初始化503
10.7.2 主要执行逻辑503
10.7.3 调谐pod的数量504
10.7.4 更新策略507
10.8 job控制器508
10.8.1 控制器初始化508
10.8.2 主要执行逻辑508
10.8.3 调谐pod的数量511
10.9 cronjob控制器512
10.9.1 控制器初始化513
10.9.2 主要执行逻辑513
10.9.3 计算job的启动时间515
10.9.4 job并行策略518
10.10 endpoint控制器519
10.10.1 控制器初始化519
10.10.2 主要执行逻辑520
10.10.3 subsets属的计算523
10.11 endpointslice控制器524
10.11.1 控制器初始化524
10.11.2 主要执行逻辑525
10.11.3 endpointslice控制器的计算与填充527
10.12 garbagecollector控制器531
10.12.1 控制器初始化532
10.12.2 主要执行逻辑533
10.12.3 更新资源对象依赖关系图534
10.12.4 孤儿删除537
10.12.5 级联删除537
10.13 nodelifecycle控制器539
10.13.1 控制器初始化539
10.13.2 主要执行逻辑541
10.13.3 添加noschedule效果的taint543
10.13.4 node健康检测544
10.13.5 使用noexecute taint驱逐node上的pod546
10.13.6 直接驱逐node上的pod547
10.14 其他控制器548
10.14.1 namespace控制器548
10.14.2 serviceaccount控制器550
10.14.3 podgc控制器550
10.14.4 sa token控制器551
10.14.5 resourcequota控制器552
1章 kube-proxy核心实现553
11.1 初识kube-proxy553
11.2 service资源553
11.3 架构设计详解554
11.4 kube-proxy初始化过程555
11.4.1 生成iptables、ipvs、kernel、ip set接556
11.4.2 判断是否支持ipvs代理模式558
11.4.3 获取宿主节点的hostname559
11.4.4 生成kubeclient和eventclient559
11.4.5 获取宿主节点的ip地址560
11.4.6 确定代理模式560
11.4.7 确定本地数据包判定方法560
11.4.8 确定ip协议栈561
11.4.9 生成proer结构体562
11.5 iptables代理模式的执行过程562
11.5.1 统计stale service和stale endpoints563
11.5.2 创建基础iptables链和规则564
11.5.3 初始化iptables内容缓冲区566
11.5.4 配置kube-trouting链跳转规则567
11.5.5 配置kube-mark-masq链跳转规则567
11.5.6 统计宿主节点ip地址568
11.5.7 为每个service port配置iptables链和规则568
11.5.8 配置kube-nodeports链跳转规则576
11.5.9 配置kube-forward链跳转规则577
11.5.10 将iptables缓冲区内容刷新到宿主机577
11.5.11 清理残留的udp conntrack记录577
11.6 ipvs代理模式的执行过程578
11.6.1 统计stale service和stale endpoints579
11.6.2 初始化iptables内容缓冲区580
11.6.3 创建基础iptables链和规则580
11.6.4 创建dummy网卡583
11.6.5 创建ip set583
11.6.6 统计宿主节点的ip地址585
11.6.7 为每个service port配置规则585
11.6.8 更新各个ip set的内容590
11.6.9 创建匹配ip set的iptables规则591
11.6.10 将iptables缓冲区内容刷新到宿主机593
11.6.11 清理冗余的service地址594
11.6.12 清理残留的udp conntrack记录595
2章 kubelet核心实现596
12.1 初识kubelet596
12.2 kubelet架构设计596
12.3 kubelet启动流程601
12.3.1 cobra命令行参数解析601
12.3.2 运行环境检测与设置603
12.3.3 kubelet对象实例化605
12.3.4 启动kubelet主服务606
12.3.5 启动 server服务和grpc server服务
12.4 pod生命周期管理612
12.4.1 cri613
12.4.2 pod启动流程616
12.4.3
— 没有更多了 —
以下为对购买帮助不大的评价