●第1章雲計算概覽1
1.1雲計算的定義1
1.2雲計算的發展2
1.3雲計算的分類3
1.3.1IaaS3
1.3.2PaaS3
1.3.3SaaS4
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.8AWS13
1.8.1IAM14
1.8.2EC214
1.8.3AMI14
1.8.4EBS16
1.8.5VPC16
1.8.6S316
1.9相關概念17
1.9.1並行計算17
1.9.2網格計算19
1.9.3邊緣計算20
第2章虛擬化與IaaS23
2.1虛擬化定義23
2.2虛擬化優勢25
2.3IaaS26
2.3.1資源管理26
2.3.2監控和告警28
2.3.3用戶權限28
2.3.4安全管理28
2.3.5計量與計費29
第3章計算虛擬化30
3.1CPU虛擬化31
3.2內存虛擬化32
3.3常用計算虛擬化軟件35
3.3.1VMware35
3.3.2Xen37
3.3.3Hyper-V38
3.3.4KVM38
3.4Libvirt39
3.5KVM相關介紹40
3.5.1KVM安裝40
3.5.2KVM虛擬機啟動41
3.5.3KVM運維49
3.5.4KMV遷移59
3.5.5KVM克隆60
3.5.6KEM優化60
3.6鏡像格式轉換60
3.6.1ova轉raw60
3.6.2raw轉qcow261
3.7初始化虛擬機利器cloud-init61
3.7.1基本概念62
3.7.2cloud-int原理63
第4章存儲虛擬化64
4.1存儲虛擬化定義64
4.2存儲虛擬化演進64
4.3存儲基礎知識拾遺66
4.3.1存儲介質66
4.3.2RAID69
4.3.3存儲總線70
4.3.4iSCSI協議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.1Ceph78
4.6.2Minio85
4.7華為FusionStorage89
4.8其他存儲繫統91
第5章網絡虛擬化93
5.1網絡虛擬化定義93
5.2網絡虛擬化的優勢94
5.3網絡基礎拾遺95
5.3.1網絡分層95
5.3.2Linux收發包流程96
5.3.3VLAN97
5.4數據中心網絡架構98
5.5隧道技術100
5.6虛擬網絡設備103
5.6.1TAP/TUN設備103
5.6.2veth106
5.6.3Linux網橋107
5.6.4OpenvSwitch108
5.7SDN112
5.7.1OpenFlow解析113
5.7.2常見的SDN控制器117
5.7.3SDN和網絡虛擬化120
5.7.4SDN的未來120
第6章OpenStack121
6.1OpenStack簡介121
6.2Devstack啟動122
6.3整體架構123
6.3.1Horizon124
6.3.2Keystone125
6.3.3Nova128
6.3.4Cinder130
6.3.5Neutron131
6.3.6Glance135
6.3.7Swift135
6.4CloudStack139
第7章Docker容器143
7.1容器的定義143
7.2容器和虛擬機的區別144
7.3Docker是什麼148
7.4Docker的優勢149
7.4.1環境一致性149
7.4.2資源隔離和151
7.4.3快速部署151
7.5Docker鏡像151
7.6Docker為什麼火起來了152
7.7Docker安裝部署152
7.7.1Docker在Linux上的部署153
7.7.2Docker在Windows上的部署154
7.7.3Docker在MAC上的部署155
7.8Docker常用命令155
7.9Dockerfile162
7.10Docker進階168
7.10.1Direct-lvm168
7.10.2高級命令168
7.10.3Docker注意事項172
7.10.4Docker接口調用175
7.10.5Docker的網絡方案177
7.10.6Docker安全179
7.11Docker架構和源碼分析179
7.11.1Docker架構分析179
7.11.2runc源碼分析183
7.11.3鏡像構建源碼分析189
7.12Pouch195
7.13Katacontainers196
7.14Go語言197
第8章Docker實現原理199
8.1cgroup199
8.1.1CPU199
8.1.2內存204
8.1.3磁盤206
8.1.4PID207
8.2namespace208
8.2.1PIDnamespace209
8.2.2Networknamespace211
8.2.3UTSnamespace215
8.2.4IPCnamespace216
8.2.5Mountnamespace216
8.3UnionFilesystem217
8.4chroot和pivot_root220
8.550行代碼創建一個簡單的容器221
第9章Kubernetes基礎224
9.1Kubernetes概覽224
9.1.1Kubernetes起源224
9.1.2Kubernetes發展224
9.2Yaml格式與聲明式API226
9.2.1散列表226
9.2.2數組226
9.2.3復合結構227
9.2.4聲明式API227
9.3Kubernetes資源定義229
9.3.1Pod229
9.3.2Deployment和ReplicaSet231
9.3.3Service和Endpoint233
9.3.4PVP和VC234
9.3.5Configmap和secret235
9.3.6Job235
9.3.7namespace236
9.4Kubernetes物理資源抽像236
9.5Kubernetes資源238
9.5.1內存238
9.5.2CPU240
9.6Kubernetes編譯241
9.7Kubernetes安裝241
9.8Kubernetes運維246
9.8.1Kubectl常用命令246
9.8.2Etcd監控和備份248
9.8.3節點維護249
第10章Kubernetes進階250
10.1Kubernetes組件分析250
10.1.1Apiserver251
10.1.2Controllermanager253
10.1.3Scheduler253
10.1.4Kubelet255
10.1.5Kube-proxy256
10.2將數據注入容器258
10.2.1環境變量258
10.2.2配置文件259
10.3Pod生命周期260
10.3.1Initcontainer260
10.3.2探針261
10.3.3 tStart和PreStop262
10.4KubernetesCNI264
10.4.1CNI規範264
10.4.2Calico269
10.4.3Flannel271
10.4.4Bridge+vlan279
10.4.5容器固定IP280
10.5KubernetesCRI281
10.6KubernetesCSI285
10.7Kubernetes高級特性290
10.7.1CRD290
10.7.2動態準入控制293
10.7.3QoS295
10.7.4專用節點298
10.8Kubernetes源碼情景分析301
10.8.1優先級調度301
10.8.2Docker鏡像下載認證流程304
10.8.3Kubelet啟動Pod306
10.8.4Pod回收順序309
10.8.5存儲回收310
10.8.6動態伸縮312
10.8.7ConfigMap子路徑掛載313
10.9上Kubernetes,你需要三思319
10.10其他容器管理平臺319
10.10.1Rancher320
10.10.2Mesos和Marathon321
第11章Kubernetes生態圈323
11.1Prometheus323
11.2KubeDNS&CoreDNS325
11.3Filebeat327
11.4Harbor329
11.5Dragonfly331
第12章PaaS平臺334
12.1服務和應用管理335
12.2監控告警335
12.3日志管理337
12.4鏡像管理338
12.5CICD339
12.6PaaS平臺在宜信落地實踐340
12.6.1服務編排和管理340
12.6.2nginx自助管理343
12.6.3多集群管理344
12.6.4網絡方案346
12.6.5CodeFlow346
12.6.6日志348
12.6.7監控349
12.6.8Kubernetes實踐350
第13章雲原生應用352
13.1CNCF352
13.1.1簡介352
13.1.2KSCP352
13.1.3CNCF項目353
13.2雲原生應用規範354
13.2.1微服務354
13.2.2DevOps359
13.2.3容器化361
13.2.4雲原生項目概覽362
13.3ServiceMesh363
13.3.1Envoy364
13.3.2Istio367