互联网
类型
6.3
豆瓣评分
可以朗读
语音朗读
300千字
字数
2020-06-01
发行日期
展开全部
主编推荐语
从源码层面剖析Kubernetes,从架构到源码,细致入微,全面详尽。
内容简介
本书主要分析了Kubernetes核心功能的实现原理,是一本帮助读者了解Kubernetes架构设计及内部原理实现的书。
由于Kubernetes代码量较大,源码不容易理解,所以本书梳理相关知识点,帮助读者快速学习。
本书共分为8章,第1章简要介绍了Kubernetes架构的核心组件,以及每个核心组件在架构中的作用;第2章主要介绍了Kubernetes构建过程中的源码实现;第3章主要介绍了Kubernetes的核心数据结构定义及围绕资源展开的核心功能;第4章主要介绍了kubectl命令行交互工具的实现机制;第5章主要介绍了client-go编程式交互工具的实现机制;第6章主要介绍了Etcd存储的核心实现;第7章主要介绍了kube-apischmerver组件的核心实现;第8章主要介绍了kube-scheduler组件的核心实现。
目录
- 版权信息
- 内容简介
- 前言
- 联系作者
- 本书涉及的链接说明
- 读者服务
- 第1章 Kubernetes架构
- 1.1 Kubernetes的发展历史
- 1.2 Kubernetes架构图
- 1.3 Kubernetes各组件的功能
- 1.3.1 kubectl
- 1.3.2 client-go
- 1.3.3 kube-apischmerver
- 1.3.4 kube-controller-manager
- 1.3.5 kube-scheduler
- 1.3.6 kubelet
- 1.3.7 kube-proxy
- 1.4 Kubernetes Project Layout设计
- 第2章 Kubernetes构建过程
- 2.1 构建方式
- 2.2 本地环境构建
- 2.2.1 一切都始于Makefile
- 2.2.2 本地构建过程
- 2.3 容器环境构建
- 2.4 Bazel环境构建
- 2.4.1 使用Bazel构建和测试Kubernetes源码
- 2.4.2 Bazel的工作原理
- 2.5 代码生成器
- 2.5.1 Tags
- 2.5.2 deepcopy-gen代码生成器
- 2.5.3 defaulter-gen代码生成器
- 2.5.4 conversion-gen代码生成器
- 2.5.5 openapi-gen代码生成器
- 2.5.6 go-bindata代码生成器
- 2.6 代码生成过程
- 2.7 gengo代码生成核心实现
- 2.7.1 代码生成逻辑与编译器原理
- 2.7.2 收集Go包信息
- 2.7.3 代码解析
- 2.7.4 类型系统
- 2.7.5 代码生成
- 第3章 Kubernetes核心数据结构
- 3.1 Group、Version、Resource核心数据结构
- 3.2 ResourceList
- 3.3 Group
- 3.4 Version
- 3.5 Resource
- 3.5.1 资源外部版本与内部版本
- 3.5.2 资源代码定义
- 3.5.3 将资源注册到资源注册表中
- 3.5.4 资源首选版本
- 3.5.5 资源操作方法
- 3.5.6 资源与命名空间
- 3.5.7 自定义资源
- 3.5.8 资源对象描述文件定义
- 3.6 Kubernetes内置资源全图
- 3.7 runtime.Object类型基石
- 3.8 Unstructured数据
- 3.9 Scheme资源注册表
- 3.9.1 Scheme资源注册表数据结构
- 3.9.2 资源注册表注册方法
- 3.9.3 资源注册表查询方法
- 3.10 Codec编解码器
- 3.10.1 Codec编解码实例化
- 3.10.2 jsonSerializer与yamlSerializer序列化器
- 3.10.3 protobufSerializer序列化器
- 3.11 Converter资源版本转换器
- 3.11.1 Converter转换器数据结构
- 3.11.2 Converter注册转换函数
- 3.11.3 Converter资源版本转换原理
- 第4章 kubectl命令行交互
- 4.1 kubectl命令行参数详解
- 4.2 Cobra命令行参数解析
- 4.3 创建资源对象的过程
- 4.3.1 编写资源对象描述文件
- 4.3.2 实例化Factory接口
- 4.3.3 Builder构建资源对象
- 4.3.4 Visitor多层匿名函数嵌套
- 第5章 client-go编程式交互
- 5.1 client-go源码结构
- 5.2 Client客户端对象
- 5.2.1 kubeconfig配置管理
- 5.2.2 RESTClient客户端
- 5.2.3 ClientSet客户端
- 5.2.4 DynamicClient客户端
- 5.2.5 DiscoveryClient客户端
- 5.3 Informer机制
- 5.3.1 Informer机制架构设计
- 5.3.2 Reflector
- 5.3.3 DeltaFIFO
- 5.3.4 Indexer
- 5.4 WorkQueue
- 5.4.1 FIFO队列
- 5.4.2 延迟队列
- 5.4.3 限速队列
- 5.5 EventBroadcaster事件管理器
- 5.6 代码生成器
- 5.6.1 client-gen代码生成器
- 5.6.2 lister-gen代码生成器
- 5.6.3 informer-gen代码生成器
- 5.7 其他客户端
- 第6章 Etcd存储核心实现
- 6.1 Etcd存储架构设计
- 6.2 RESTStorage存储服务通用接口
- 6.3 RegistryStore存储服务通用操作
- 6.4 Storage.Interface通用存储接口
- 6.5 CacherStorage缓存层
- 6.5.1 CacherStorage缓存层设计
- 6.5.2 ResourceVersion资源版本号
- 6.5.3 watchCache缓存滑动窗口
- 6.6 UnderlyingStorage底层存储对象
- 6.7 Codec编解码数据
- 6.8 Strategy预处理
- 6.8.1 创建资源对象时的预处理操作
- 6.8.2 更新资源对象时的预处理操作
- 6.8.3 删除资源对象时的预处理操作
- 6.8.4 导出资源对象时的预处理操作
- 第7章 kube-apischmerver核心实现
- 7.1 热身概念
- 7.1.1 go-restful核心原理
- 7.1.2 一次HTTP请求的完整生命周期
- 7.1.3 OpenAPI/Swagger核心原理
- 7.1.4 HTTPS核心原理
- 7.1.5 gRPC核心原理
- 7.1.6 go-to-protobuf代码生成器
- 7.2 kube-apischmerver命令行参数详解
- 7.3 kube-apischmerver架构设计详解
- 7.4 kube-apischmerver启动流程
- 7.4.1 资源注册
- 7.4.2 Cobra命令行参数解析
- 7.4.3 创建APIServer通用配置
- 7.4.4 创建APIExtensionsServer
- 7.4.5 创建KubeAPIServer
- 7.4.6 创建AggregatorServer
- 7.4.7 创建GenericAPIServer
- 7.4.8 启动HTTP服务
- 7.4.9 启动HTTPS服务
- 7.5 权限控制
- 7.6 认证
- 7.6.1 BasicAuth认证
- 7.6.2 ClientCA认证
- 7.6.3 TokenAuth认证
- 7.6.4 BootstrapToken认证
- 7.6.5 RequestHeader认证
- 7.6.6 WebhookTokenAuth认证
- 7.6.7 Anonymous认证
- 7.6.8 OIDC认证
- 7.6.9 ServiceAccountAuth认证
- 7.7 授权
- 7.7.1 AlwaysAllow授权
- 7.7.2 AlwaysDeny授权
- 7.7.3 ABAC授权
- 7.7.4 Webhook授权
- 7.7.5 RBAC授权
- 7.7.6 Node授权
- 7.8 准入控制器
- 7.8.1 AlwaysPullImages准入控制器
- 7.8.2 PodNodeSelector准入控制器
- 7.9 进程信号处理机制
- 7.9.1 常驻进程实现
- 7.9.2 进程的优雅关闭
- 7.9.3 向systemd报告进程状态
- 第8章 kube-scheduler核心实现
- 8.1 kube-scheduler命令行参数详解
- 8.2 kube-scheduler架构设计详解
- 8.3 kube-scheduler组件的启动流程
- 8.3.1 内置调度算法的注册
- 8.3.2 Cobra命令行参数解析
- 8.3.3 实例化Scheduler对象
- 8.3.4 运行EventBroadcaster事件管理器
- 8.3.5 运行HTTP或HTTPS服务
- 8.3.6 运行Informer同步资源
- 8.3.7 领导者选举实例化
- 8.3.8 运行sched.Run调度器
- 8.4 优先级与抢占机制
- 8.5 亲和性调度
- 8.5.1 NodeAffinity
- 8.5.2 PodAffinity
- 8.5.3 PodAntiAffinity
- 8.6 内置调度算法
- 8.6.1 预选调度算法
- 8.6.2 优选调度算法
- 8.7 调度器核心实现
- 8.7.1 调度器运行流程
- 8.7.2 调度过程
- 8.7.3 Preempt抢占机制
- 8.7.4 bind绑定机制
- 8.8 领导者选举机制
- 8.8.1 资源锁
- 8.8.2 领导者选举过程
展开全部
出版方
电子工业出版社
电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。