附录A 本书插图索引

图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