云计算技术作为现代信息化的核心基石,正在重塑全球IT基础设施的构建与运维方式。本书基于系统性、实用性和前沿性三大原则,全面阐述云计算技术框架及其关键组件的实现逻辑,内容涵盖从基础架构到云原生应用的全技术栈,注重理论与工程实践的深度融合。全书共9章,构建了完整的技术知识体系:第1章从云计算基础理论出发,系统讲解其定义、演进历程、服务类型和技术架构,包括虚拟化、分布式存储的实现原理,以及开源生态对云计算发展的支撑作用等;第2章重点培养读者的Linux系统运维核心能力,覆盖网络配置、用户权限管理、容器化部署等关键技术,并针对Nginx负载均衡、服务器高可用方案提供具体操作指导;第3章深入分析数据中心核心组件,解析服务器选型、传统存储架构、RAID技术演进,以及块存储、文件存储、对象存储的典型应用场景;第4章聚焦Ceph分布式存储系统,详细说明其架构设计、数据读/写流程,并通过多节点部署、块/文件系统/对象存储配置等实验案例指导生产环境落地;第5章介绍虚拟化技术,对比全虚拟化与半虚拟化方案,并以KVM为核心演示虚拟机创建、资源管理和云平台镜像制作等全流程操作;第6章以云操作系统OpenStack为实践目标,逐层剖析认证、计算、存储、网络等核心服务,并详解VXLAN虚拟网络搭建、Ceph异构存储集成等企业级解决方案;第7~8章构建容器化技术知识体系,从Docker镜像构建与GPU加速支持,到Kubernetes集群部署(含证书管理、网络插件配置)、工作负载编排与服务暴露策略,全面覆盖生产级容器平台运维要点;第9章探讨云原生技术发展趋势,包括微服务架构、Serverless计算、服务网格等新兴模式,讨论云计算与业务创新的协同演进方向。本书配套电子课件、实验操作手册、集群部署代码模板,读者可登录“华信教育资源网”免费下载。本书可作为高等院校云计算相关课程的教材,同时可为云计算工程师、系统架构师及技术管理者提供从入门到进阶的完整学习路径。
杨民强,副教授,硕士生导师,兰州大学信息科学与工程学院,数据科学与大数据技术专业系主任,先后就职华为技术有限公司、兰州大学网络安全与信息化办公室、兰州大学信息科学与工程学院,从事大数据、云计算、人工智能等领域的工程和研究工作。指导学生获国家级、省级及校级大赛奖项近20项;获得甘肃省"挑战杯”、"互联网+”、"三创赛”等大赛优秀指导教师,兰州大学学生创新创业行动计划优秀指导教师。主持《教育部-华为智能基座课程建设<云计算与大数据处理>》项目,获得兰州大学教学成果二等奖;教育部-华为公司智能基座"云与计算先锋教师”称号;主讲课程评教结果均为优秀、多次获得授课年级评教第一名。
目 录
第1章 云计算概述 1
1.1 云计算的概念 1
1.2 云计算的历史 2
1.3 云计算的特征 3
1.4 云计算不断发展的推动力 3
1.4.1 经济因素 4
1.4.2 技术成熟度 4
1.4.3 网络带宽的提升 4
1.4.4 数据中心的演变 4
1.4.5 移动互联网的发展 4
1.4.6 大数据 5
1.5 云计算的分类 5
1.5.1 公有云 5
1.5.2 私有云 5
1.5.3 混合云 6
1.6 云计算的三种服务类型 6
1.6.1 基础设施即服务(IaaS) 6
1.6.2 平台即服务(PaaS) 7
1.6.3 软件即服务(SaaS) 8
1.7 云计算的关键技术 8
1.7.1 虚拟化(Virtualization) 8
1.7.2 容器化 9
1.7.3 分布式存储 9
1.7.4 软件定义的网络 9
1.7.5 SOA 10
1.8 开源 10
1.8.1 开源的定义和相关概念 10
1.8.2 开源的价值和意义 12
1.8.3 开源领域的三大基金会 13
1.8.4 云计算和开源 14
1.9 云计算解决方案体系结构 14
1.9.1 物理资源 14
1.9.2 水平融合 15
1.9.3 垂直融合(超融合) 17
1.9.4 数据融合 17
1.9.5 接入融合 18
1.9.6 计费管理 19
1.10 华为云 19
1.11 本章小结 21
1.12 习题 21
第2章 Linux基础 22
2.1 Linux简介 22
2.2 Linux基本操作 24
2.2.1 vi文本编辑器的使用 24
2.2.2 网络配置 26
2.2.3 SSH和SSH免密认证 28
2.2.4 主机名设置和主机名解析 29
2.2.5 时区设置和时钟同步 30
2.2.6 文件和目录基本操作 31
2.2.7 下载和压缩解压 34
2.2.8 用户和用户组,文件权限 35
2.2.9 防火墙和SELinux 37
2.2.10 更新源设置和系统更新 37
2.2.11 其他 38
2.3 Linux下软件的安装 39
2.3.1 二进制安装(Binary Code Copy and Run) 39
2.3.2 使用包管理工具安装 41
2.3.3 编译安装 44
2.3.4 使用容器运行应用 49
2.4 Linux常用软件 51
2.4.1 Nginx负载均衡 51
2.4.2 Nginx反向代理 53
2.4.3 Linux上使用VRRP实现服务器冗余 55
2.5 本章小结 57
2.6 习题 57
第3章 数据中心与存储基础 58
3.1 IT基础设施——数据中心 58
3.2 服务器 59
3.2.1 服务器的特点 59
3.2.2 服务器的分类 60
3.2.3 服务器相关技术 61
3.3 传统存储 64
3.4 数据中心网络 66
3.5 磁盘和独立磁盘冗余阵列(RAID) 69
3.5.1 磁盘 70
3.5.2 RAID 71
3.5.3 RAID数据保护 75
3.6 RAID 2.0和RAID 2.0+ 77
3.7 存储实践 80
3.8 本章小结 94
3.9 习题 94
第4章 Ceph分布式存储系统 95
4.1 Ceph简介 95
4.2 Ceph的特点 95
4.3 Ceph的架构 96
4.4 Ceph I/O算法流程 97
4.5 Ceph数据读写流程 98
4.6 Ceph应用实践 99
4.6.1 准备工作 102
4.6.2 mon节点部署 102
4.6.3 OSD部署 105
4.6.4 添加mgr服务 107
4.6.5 Ceph块存储的使用 109
4.6.6 Ceph文件系统的使用 115
4.6.7 Ceph对象存储的使用 117
4.7 本章小结 121
4.8 习题 121
第5章 虚拟化技术 122
5.1 虚拟化简介 122
5.2 虚拟化的特征和优势 123
5.3 虚拟化分类 124
5.3.1 全虚拟化 124
5.3.2 半虚拟化(又称准虚拟化) 125
5.3.3 硬件辅助虚拟化 125
5.4 商用虚拟化解决方案 129
5.4.1 Xen 129
5.4.2 VMware 129
5.4.3 Hyper-V 129
5.4.4 KVM 130
5.5 KVM虚拟化 131
5.5.1 KVM虚拟化的两个核心模块 131
5.5.2 其他与QEMU/KVM结合的组件 132
5.5.3 KVM管理工具 133
5.5.4 KVM高级其他特性 134
5.6 KVM虚拟化实践 135
5.7 本章小结 145
5.8 习题 145
第6章 云操作系统OpenStack 146
6.1 OpenStack开源云操作系统 146
6.2 OpenStack和虚拟化的关系 146
6.3 OpenStack服务介绍 147
6.4 Keystone认证服务 151
6.4.1 相关概念 152
6.4.2 认证服务流程 153
6.4.3 配置Keystone应用环境 153
6.5 Glance镜像服务 156
6.6 Placement资源管理服务 158
6.7 Nova计算服务 161
6.8 Neutron网络服务 166
6.8.1 Neutron中的基本概念 166
6.8.2 Neutron架构 167
6.8.3 Provider网络和Self-service网络 168
6.8.4 二层网络插件 169
6.8.5 Neutron Provider Network配置 170
6.8.6 创建网络和子网 178
6.9 创建实例 179
6.10 Cinder块存储服务 182
6.11 OpenStack Dashboard 188
6.12 Swift对象存储服务 191
6.13 OpenStack的其他常用技术 202
6.13.1 实例调整大小和初始化与冷热迁移 202
6.13.2 资源预留和划分 205
6.13.3 租户添加 205
6.13.4 配额管理 206
6.13.5 Neutron VXLAN Self-service网络 207
6.13.6 OpenStack对接Ceph 210
6.13.7 OpenStack计算节点虚拟机实例疏散 217
6.14 本章小结 218
6.15 习题 218
第7章 Docker容器技术 219
7.1 容器技术和Docker 219
7.2 容器技术背后的内核知识 221
7.2.1 Namespace资源隔离 222
7.2.2 Cgroup资源控制 225
7.2.3 写时复制技术 226
7.3 Docker架构 226
7.4 Docker的使用 228
7.4.1 Docker-CE安装 228
7.4.2 Docker镜像 229
7.4.3 Docker容器 231
7.4.4 镜像仓库 234
7.4.5 使用Dockerfile制作镜像 235
7.4.6 Docker Compose简介 237
7.4.7 Docker对GPU的支持 237
7.5 本章小结 239
7.6 习题 239
第8章 Kubernetes 240
8.1 Kubernetes简介 240
8.1.1 什么是Kubernetes 240
8.1.2 Docker和Kubernetes的关系 241
8.2 Kubernetes架构 242
8.3 Kubernetes集群 244
8.3.1 准备运行环境 244
8.3.2 安装容器运行时Docker CE和CRI Docker 244
8.3.3 设置Kubernetes软件仓库,安装kubeadm、kubectl和Kubelet 246
8.3.4 Kubernetes其他设置要求 247
8.3.5 初始化Master节点 249
8.3.6 工作节点加入集群 250
8.3.7 安装网络插件Calico和metrics-server 250
8.3.8 Namespace 254
8.3.9 生产环境中的Kubernetes集群 254
8.3.10 Kubernetes集群升级 255
8.3.11 使用kubeadm部署的Kubernetes证书一年期问题 256
8.4 Pod 258
8.4.1 Pod基础 258
8.4.2 Pod基本操作 259
8.4.3 静态Pod 263
8.4.4 标签Label 263
8.4.5 节点污点(Taint) 264
8.5 Kubernetes Workload 265
8.5.1 Deployment和ReplicaSet 266
8.5.2 DaemonSet 271
8.5.3 StatefulSet 272
8.5.4 Job和CronJob 274
8.6 Kubernetes Service 274
8.6.1 Service基础 274
8.6.2 集群内访问服务 276
8.6.3 向集群外暴露服务 276
8.7 Kubernetes数据持久化 282
8.8 Kubernetes探针(Probe) 286
8.9 Kubernetes管理 286
8.9.1 网络安全管理 286
8.9.2 用户授权管理 287
8.9.3 资源限制——ResourceQuota 291
8.9.4 资源限制——LimitRange 293
8.9.5 利用容器中的Resource进行资源限制 294
8.10 Kubernetes包管理工具Helm 295
8.11 KubeSphere Dashboard 296
8.11.1 Rancher 296
8.11.2 KubeSphere 298
8.12 本章小结 299
8.13 习题 299
第9章 云原生应用 300
9.1 云原生简介 300
9.2 微服务 301
9.3 DevOps 303
9.4 容器化 304
9.5 Serverless(无服务) 305
9.6 Service Mesh(服务网格) 306
9.7 本章小结 308