陈晓宇,北航硕士毕业,多年互联网以及能源和金融行业云平台的设计和研发,现任宜信基础研发部容器平台架构师,CSDN博客专家,并参与多个云计算开源软件的代码贡献。参与kubernetes用户大会并担任讲师。曾发表多篇关于容器云相关blogflannel系列:https://blog.csdn.net/u010278923/article/details/70597548kubernetes存储系列https://blog.csdn.net/u010278923/article/details/78908905Kubernetes监控:https://blog.csdn.net/u010278923/article/details/78894652Kubernetes源码分析https://blog.csdn.net/u010278923/article/details/78707645还有harbor等多个相关系列文章
第1章 云计算概览 1
1.1 云计算的定义 1
1.2 云计算的发展 2
1.3 云计算的分类 3
1.3.1 IaaS 3
1.3.2 PaaS 3
1.3.3 SaaS 4
1.3.4 私有云 5
1.3.5 公有云 6
1.3.6 混合云 6
1.4 云计算架构 7
1.4.1 部署架构 7
1.4.2 架构设计 8
1.5 云计算中的关键技术 9
1.5.1 异构资源管理 9
1.5.2 虚拟化 9
1.5.3 资源调度 10
1.5.4 自定义网络 11
1.5.5 安全与高可用 12
1.6 云计算的优势 12
1.7 云计算面临的风险和挑战 13
1.8 AWS 13
1.8.1 IAM 14
1.8.2 EC2 14
1.8.3 AMI 14
1.8.4 EBS 16
1.8.5 VPC 16
1.8.6 S3 16
1.9 相关概念 17
1.9.1 并行计算 17
1.9.2 网格计算 19
1.9.3 边缘计算 20
第2章 虚拟化与IaaS 23
2.1 虚拟化定义 23
2.2 虚拟化优势 25
2.3 IaaS 26
2.3.1 资源管理 26
2.3.2 监控和告警 28
2.3.3 用户权限 28
2.3.4 安全管理 28
2.3.5 计量与计费 29
第3章 计算虚拟化 30
3.1 CPU虚拟化 31
3.2 内存虚拟化 32
3.3 常用计算虚拟化软件 35
3.3.1 VMware 35
3.3.2 Xen 37
3.3.3 Hyper-V 38
3.3.4 KVM 38
3.4 Libvirt 39
3.5 KVM相关介绍 40
3.5.1 KVM安装 40
3.5.2 KVM虚拟机启动 41
3.5.3 KVM运维 49
3.5.4 KMV迁移 59
3.5.5 KVM克隆 60
3.5.6 KEM优化 60
3.6 镜像格式转换 60
3.6.1 ova转raw 60
3.6.2 raw转qcow2 61
3.7 初始化虚拟机神器cloud-init 61
3.7.1 基本概念 62
3.7.2 cloud-int原理 63
第4章 存储虚拟化 64
4.1 存储虚拟化定义 64
4.2 存储虚拟化演进 64
4.3 存储基础知识拾遗 66
4.3.1 存储介质 66
4.3.2 RAID 69
4.3.3 存储总线 70
4.3.4 iSCSI协议 72
4.3.5 文件系统 73
4.4 存储分类 74
4.4.1 块存储 75
4.4.2 文件存储 75
4.4.3 对象存储 76
4.5 分布式存储架构 77
4.6 开源存储 78
4.6.1 Ceph 78
4.6.2 Minio 85
4.7 华为FusionStorage 89
4.8 其他存储系统 91
第5章 网络虚拟化 93
5.1 网络虚拟化定义 93
5.2 网络虚拟化的优势 94
5.3 网络基础拾遗 95
5.3.1 网络分层 95
5.3.2 Linux收发包流程 96
5.3.3 VLAN 97
5.4 数据中心网络架构 98
5.5 隧道技术 100
5.6 虚拟网络设备 103
5.6.1 TAP/TUN设备 103
5.6.2 veth 106
5.6.3 Linux网桥 107
5.6.4 Open vSwitch 108
5.7 SDN 112
5.7.1 OpenFlow解析 113
5.7.2 常见的SDN控制器 117
5.7.3 SDN和网络虚拟化 120
5.7.4 SDN的未来 120
第6章 OpenStack 121
6.1 OpenStack简介 121
6.2 Devstack启动 122
6.3 整体架构 123
6.3.1 Horizon 124
6.3.2 Keystone 125
6.3.3 Nova 128
6.3.4 Cinder 130
6.3.5 Neutron 131
6.3.6 Glance 135
6.3.7 Swift 135
6.4 CloudStack 139
第7章 Docker容器 143
7.1 容器的定义 143
7.2 容器和虚拟机的区别 144
7.3 Docker是什么 148
7.4 Docker的优势 149
7.4.1 环境一致性 149
7.4.2 资源隔离和限制 151
7.4.3 快速部署 151
7.5 Docker镜像 151
7.6 Docker 为什么火起来了 152
7.7 Docker安装部署 152
7.7.1 Docker在Linux上的部署 153
7.7.2 Docker在Windows上的部署 154
7.7.3 Docker在MAC上的部署 155
7.8 Docker常用命令 155
7.9 Dockerfile 162
7.10 Docker进阶 168
7.10.1 Direct-lvm 168
7.10.2 高级命令 168
7.10.3 Docker注意事项 172
7.10.4 Docker接口调用 175
7.10.5 Docker的网络方案 177
7.10.6 Docker安全 179
7.11 Docker架构和源码分析 179
7.11.1 Docker 架构分析 179
7.11.2 runc源码分析 183
7.11.3 镜像构建源码分析 189
7.12 Pouch 195
7.13 Kata containers 196
7.14 Go语言 197
第8章 Docker实现原理 199
8.1 cgroup 199
8.1.1 CPU 199
8.1.2 内存 204
8.1.3 磁盘 206
8.1.4 PID 207
8.2 namespace 208
8.2.1 PID namespace 209
8.2.2 Network namespace 211
8.2.3 UTS namespace 215
8.2.4 IPC namespace 216
8.2.5 Mount namespace 216
8.3 Union Filesystem 217
8.4 chroot和pivot_root 220
8.5 50行代码创建一个简单的容器 221
第9章 Kubernetes基础 224
9.1 Kubernetes概览 224
9.1.1 Kubernetes起源 224
9.1.2 Kubernetes发展 224
9.2 Yaml格式与声明式API 226
9.2.1 散列表 226
9.2.2 数组 226
9.2.3 复合结构 227
9.2.4 声明式API 227
9.3 Kubernetes资源定义 229
9.3.1 Pod 229
9.3.2 Deployment和ReplicaSet 231
9.3.3 Service和Endpoint 233
9.3.4 PVP和VC 234
9.3.5 Configmap和secret 235
9.3.6 Job 235
9.3.7 namespace 236
9.4 Kubernetes物理资源抽象 236
9.5 Kubernetes资源限制 238
9.5.1 内存 238
9.5.2 CPU 240
9.6 Kubernetes编译 241
9.7 Kubernetes安装 241
9.8 Kubernetes运维 246
9.8.1 Kubectl常用命令 246
9.8.2 Etcd监控和备份 248
9.8.3 节点维护 249
第10章 Kubernetes进阶 250
10.1 Kubernetes组件分析 250
10.1.1 Apiserver 251
10.1.2 Controller manager 253
10.1.3 Scheduler 253
10.1.4 Kubelet 255
10.1.5 Kube-proxy 256
10.2 将数据注入容器 258
10.2.1 环境变量 258
10.2.2 配置文件 259
10.3 Pod生命周期 260
10.3.1 Initcontainer 260
10.3.2 探针 261
10.3.3 PostStart和PreStop 262
10.4 Kubernetes CNI 264
10.4.1 CNI规范 264
10.4.2 Calico 269
10.4.3 Flannel 271
10.4.4 Bridge+vlan 279
10.4.5 容器固定IP 280
10.5 Kubernetes CRI 281
10.6 Kubernetes CSI 285
10.7 Kubernetes高级特性 290
10.7.1 CRD 290
10.7.2 动态准入控制 293
10.7.3 QoS 295
10.7.4 专用节点 298
10.8 Kubernetes源码情景分析 301
10.8.1 优先级调度 301
10.8.2 Docker镜像下载认证流程 304
10.8.3 Kubelet启动Pod 306
10.8.4 Pod回收顺序 309
10.8.5 存储回收 310
10.8.6 动态伸缩 312
10.8.7 ConfigMap子路径挂载 313
10.9 上Kubernetes,你需要三思 319
10.10 其他容器管理平台 319
10.10.1 Rancher 320
10.10.2 Mesos和Marathon 321
第11章 Kubernetes生态圈 323
11.1 Prometheus 323
11.2 KubeDNS&CoreDNS 325
11.3 Filebeat 327
11.4 Harbor 329
11.5 Dragonfly 331
第12章 PaaS平台 334
12.1 服务和应用管理 335
12.2 监控告警 335
12.3 日志管理 337
12.4 镜像管理 338
12.5 CICD 339
12.6 PaaS平台在宜信落地实践 340
12.6.1 服务编排和管理 340
12.6.2 nginx自助管理 343
12.6.3 多集群管理 344
12.6.4 网络方案 346
12.6.5 CodeFlow 346
12.6.6 日志 348
12.6.7 监控 349
12.6.8 Kubernetes实践 350
第13章 云原生应用 352
13.1 CNCF 352
13.1.1 简介 352
13.1.2 KSCP 352
13.1.3 CNCF项目 353
13.2 云原生应用规范 354
13.2.1 微服务 354
13.2.2 DevOps 359
13.2.3 容器化 361
13.2.4 云原生项目概览 362
13.3 Service Mesh 363
13.3.1 Envoy 364
13.3.2 Istio 367