图0-1 未来企业的IT基础设施架构 / VII
图0-2 传统操作系统与云原生操作系统 / VIII
图0-3 Kubernetes集群与《SRE Google运维解密》/ VIII
图0-4 网站后端技术演进史 / X
图0-5 Kubernetes学习难度 / XI
图0-6 学习Kubernetes的三个步骤 / XI
图0-7 深入理解集群控制器原理 / XIII
图1-1 阿里云Kubernetes集群分层结构 / 003
图1-2 阿里云专有版Kubernetes集群组成原理 / 004
图1-3 阿里云托管版Kubernetes集群组成原理 / 006
图1-4 阿里云Serverless版Kubernetes集群组成原理 / 007
图1-5 Kubernetes集群单机系统层结构 / 008
图1-6 专有版集群系统层架构 / 009
图1-7 托管版集群系统层架构 / 010
图1-8 Serverless版集群系统层架构 / 011
图1-9 阿里云Kubernetes集群监控系统 / 012
图1-10 阿里云Kubernetes集群日志系统 / 013
图1-11 阿里云Kubernetes集群DNS系统 / 014
图1-12 阿里云Server Kubernetes集群DNS系统 / 015
图2-1 Kubernetes简易架构图 / 017
图2-2 一台简易的冰箱(只画出了部分组件)/ 018
图2-3 统一入口之后的冰箱系统 / 018
图2-4 增加了控制器的冰箱系统 / 019
图2-5 增加了控制器管理器之后的冰箱系统 / 020
图2-6 增加了Shared Informer模块之后的冰箱系统 / 021
图2-7 增加了List Watcher之后的冰箱系统 / 022
图2-8 用HTTP分块编码机制实现List Watcher / 022
图2-9 服务控制器系统 / 024
图2-10 路由控制器系统 / 025
图3-1 阿里云Kubernetes集群网络大图 / 028
图3-2 理解阿里云Kubernetes集群网络的思路 / 028
图3-3 初始阶段集群网络架构 / 029
图3-4 集群创建阶段网络架构 / 030
图3-5 节点增加阶段网络架构 / 031
图3-6 容器部署阶段网络架构 / 033
图3-7 集群通信原理架构 / 034
图4-1 集群节点增加原理 / 037
图4-2 节点初始化过程 / 038
图4-3 集群节点注册机制 / 039
图4-4 集群扩容过程 / 040
图4-5 集群自动伸缩过程 / 041
图4-6 集群节点减少原理 / 042
图4-7 阿里云容器集群多样性 / 042
图4-8 阿里云容器集群节点池 / 043
图5-1 数据中心 / 044
图5-2 Kubernetes与单机操作系统 / 045
图5-3 Kubernetes及其管理入口 / 047
图5-4 证书与证书之间的关系 / 049
图5-5 Kubernetes集群证书实现 / 049
图5-6 Kubernetes集群和集群节点 / 053
图6-1 Kubernetes服务的本质 / 061
图6-2 集群节点实现负载均衡 / 062
图6-3 服务本质上是边车模式 / 062
图6-4 节点和服务关系图 / 063
图6-5 Kubernetes服务框架图 / 064
图6-6 有杂志过滤功能的水管 / 065
图6-7 有杂志过滤和加热功能的水管 / 065
图6-8 过滤器框架 / 066
图6-9 Netfilter框架图 / 067
图6-10 Kubernetes集群节点网络全貌 / 068
图6-11 Netfilter是典型的过滤器框架 / 069
图6-12 用自定义链实现服务的反向代理 / 070
图7-1 阿里云Kubernetes集群监控方案 / 073
图7-2 Ingress接入层控制台界面 / 074
图7-3 应用实时监控系统 / 075
图7-4 架构感知监控 / 075
图7-5 阿里云Kubernetes集群弹性方案 / 077
图7-6 集群弹性方案示例 / 079
图8-1 存取网盘数据 / 081
图8-2 私有镜像拉取 / 081
图8-3 OAuth 2.0协议 / 082
图8-4 OAuth 2.0协议的四种变化 / 083
图8-5 鉴权和资源服务器拆分 / 084
图8-6 Docker鉴权服务器的实现 / 085
图8-7 私有镜像拉取基本方式 / 091
图8-8 私有镜像拉取进阶方式 / 092
图8-9 阿里云ACR credential helper组件实现 / 094
图9-1 阿里云日志服务特性 / 096
图9-2 阿里云Kubernetes日志采集方案 / 097
图9-3 日志服务与Kubernetes集成 / 100
图9-4 阿里云Kubernetes集群日志服务控制器实现 / 101
图10-1 以静态方式使用存储 / 107
图10-2 以动态方式使用存储 / 108
图10-3 集群存储插件 / 109
图10-4 集群存储CSI架构 / 110
图10-5 管控组件容器化部署 / 112
图10-6 Rook与Kubernetes的交互关系 / 113
图11-1 七层路由典型示例 / 115
图11-2 基于Nginx实现的Ingress / 118
图11-3 部署多套Ingress控制器 / 120
图11-4 四层网络获取客户端IP地址 / 121
图11-5 七层网络获取客户端IP地址 / 122
图11-6 Local模式网络转发 / 123
图11-7 Cluster模式网络转发 / 123
图12-1 运维中心的组成 / 127
图12-2 集群原地升级 / 131
图12-3 集群替代升级 / 132
图12-4 集群升级状态机 / 133
图12-5 集群升级过程 / 134
图13-1 节点就绪状态异常 / 141
图13-2 集群简易架构图 / 141
图13-3 集群节点异常报错 / 142
图13-4 PLEG实现架构图 / 142
图13-5 Docker的组成 / 143
图13-6 线程等待mutex状态 / 144
图13-7 线程远程调用containerd / 145
图13-8 线程启动容器进程 / 146
图13-9 使用追踪机制分析runC / 146
图13-10 D-Bus在进程通信中的作用 / 147
图13-11 D-Bus通信连接 / 147
图13-12 Systemd主线程调用栈 / 148
图13-13 D-Bus总线报错 / 149
图13-14 D-Bus监控数据 / 149
图13-15 Systemd可疑信息输出 / 150
图13-16 Systemd不相关报错 / 150
图13-17 Systemd消息处理函数 / 152
图13-18 cookie溢出 / 152
图14-1 节点状态异常 / 155
图14-2 节点状态机 / 156
图14-3 节点状态事件的上报 / 156
图14-4 relist操作流程 / 157
图14-5 Terway架构图 / 162
图14-6 Terway进程堆积状态 / 162
图15-1 集群命名空间控制器 / 167
图15-2 命名空间与资源的关系 / 171
图15-3 API分组和版本 / 172
图15-4 API Server的扩展机制 / 174
图15-5 集群网络概览 / 176
图15-6 云服务器与角色授权 / 178
图15-7 授权策略更改 / 178
图15-8 问题相关组件关系 / 179
图16-1 节点的通信 / 182
图16-2 容器组的通信 / 183
图16-3 访问镜像仓库报错 / 187
图16-4 DNS解析失败 / 188
图17-1 Kubelet健康检查机制 / 191
图17-2 服务网格局部视角 / 192
图17-3 服务网格全局视角 / 193
图17-4 代理与代理生命周期管理 / 194
图17-5 代理就绪检查机制的实现 / 195
图17-6 控制面和数据面 / 197
图17-7 阿里云服务网格 / 199
图18-1 多级证书签发关系 / 202
图18-2 Citadel证书体系 / 203