基于Kubernetes的容器云平台实战
内容介绍
从PaaS平台建设和运维的角度去理解、分析和解决问题,囊括了Docker入门、Kubernetes技术架构及核心原理、网络及存储方案、行业实践指南、PaaS生态链以及发展趋势等方面的内容,图文并茂、内容丰富、由浅入深、讲解全面,具有很强的可借鉴性。
目录
- 第1章 Docker简介 1
- 1.1 什么是Docker 1
- 1.2 为什么要用Docker 3
- 1.3 Docker基本概念 4
- 1.3.1 镜像 4
- 1.3.2 容器 6
- 1.3.3 镜像仓库 8
- 1.4 Docker架构及原理 8
- 1.4.1 Docker架构 8
- 1.4.2 Docker原理 11
- 1.4.3 容器网络 15
- 1.4.4 容器存储 16
- 1.5 Docker安装 16
- 1.5.1 手动安装模式 17
- 1.5.2 Ubuntu中自动化安装Docker 18
- 1.5.3 CentOS中自动化安装Docker 19
- 第2章 容器引擎 21
- 2.1 容器引擎实现原理 22
- 2.2 容器生命周期管理 29
- 2.3 容器状态管理 33
- 2.4 访问运行状态容器 35
- 2.5 访问容器内容 36
- 第3章 镜像管理 37
- 3.1 Dockerfile及镜像制作 37
- 3.1.1 Dockerfile的作用 37
- 3.1.2 Dockerfile文件构成 37
- 3.1.3 常用命令集 38
- 3.1.4 构建镜像 38
- 3.2 镜像基本操作 38
- 3.2.1 从镜像仓库下载镜像 38
- 3.2.2 将本地镜像上传到镜像仓库 39
- 3.2.3 查看本地镜像 39
- 3.2.4 导出和导入本地镜像 40
- 3.2.5 构建镜像 41
- 3.2.6 修改本地镜像标识 42
- 3.2.7 删除本地镜像 42
- 3.3 Dockerfile优化 42
- 3.3.1 Dockerfile检查项 42
- 3.3.2 Dockerfile优化实例 43
- 3.3.3 检查及优化工具 44
- 3.4 操作系统基础镜像制作 44
- 3.4.1 操作系统版本选择 45
- 3.4.2 操作系统参数调整 45
- 3.4.3 确定基础rpm包范围 45
- 3.4.4 确定常用命令范围 46
- 3.4.5 操作系统镜像制作过程 48
- 3.4.6 系统资源限制配置说明 49
- 3.5 容器镜像安全加固 49
- 3.5.1 容器安全加固规范 49
- 3.5.2 安全检查工具 51
- 第4章 镜像仓库管理 52
- 4.1 Docker Registry 52
- 4.1.1 Docker Hub 52
- 4.1.2 第三方公共仓库 53
- 4.1.3 建立私有镜像仓库 53
- 4.2 Harbor 54
- 4.2.1 Harbor架构 55
- 4.2.2 Harbor的镜像同步机制 56
- 4.2.3 Harbor用户认证 56
- 4.2.4 Harbor容器镜像安全扫描 57
- 4.2.5 Harbor部署实战 57
- 第5章 Docker相关部署实践 59
- 5.1 MySQL Docker部署实践 59
- 5.1.1 MySQL简介 59
- 5.1.2 MySQL为什么要容器化部署 60
- 5.1.3 MySQL容器化操作实践 60
- 5.2 Docker支持GPU实践 62
- 5.2.1 GPU简介 62
- 5.2.2 CPU与GPU的对比 63
- 5.2.3 通过nvidia-docker使用GPU 63
- 第6章 Kubernetes简介 65
- 6.1 PaaS简介 65
- 6.1.1 传统PaaS系统 65
- 6.1.2 基于Docker的新型PaaS平台 67
- 6.2 为什么需要Kubernetes 69
- 6.3 Kubernetes的由来 69
- 6.3.1 Kubernetes的特点 69
- 6.3.2 Kubernetes的历史 70
- 6.4 Kubernetes核心概念 71
- 第7章 Kubernetes架构和部署 73
- 7.1 Kubernetes架构及组件 73
- 7.1.1 Master节点 73
- 7.1.2 Node节点 75
- 7.1.3 调度控制原理 76
- 7.1.4 集群功能模块间的通信 76
- 7.1.5 Kubernetes高可用方案 77
- 7.2 Kubernetes部署方案总结 77
- 第8章 Pod相关核心技术 81
- 8.1 Pod 81
- 8.1.1 Pod定义文件详解 81
- 8.1.2 基本操作 83
- 8.1.3 Pod与容器 85
- 8.1.4 镜像 86
- 8.1.5 其他设置 86
- 8.1.6 Pod调度 89
- 8.1.7 Pod生命周期 90
- 8.2 Label 92
- 8.3 Replication Controller和Replica Set 93
- 8.3.1 RC定义文件详解 93
- 8.3.2 RC与Pod的关联——Label 95
- 8.3.3 弹性伸缩 97
- 8.3.4 滚动升级 98
- 8.3.5 新一代副本控制器Replica Set 100
- 8.4 Horizontal Pod Autoscaler 101
- 8.5 Deployment 102
- 8.6 Job 105
- 8.7 StatefulSet 106
- 8.7.1 使用StatefulSet 106
- 8.7.2 扩容/缩容StatefulSet 108
- 8.8 ConfigMap 110
- 8.9 健康检查 112
- 8.9.1 流程健康检查 112
- 8.9.2 应用健康检查 112
- 第9章 Kubernetes Service 114
- 9.1 容器及Pod间通信 115
- 9.2 kube-proxy 117
- 9.3 DNS服务发现机制 118
- 9.4 Headless服务 119
- 9.5 Kubernetes服务 120
- 9.5.1 ClusterIP 122
- 9.5.2 NodePort 123
- 9.5.3 LoadBalancer 125
- 9.5.4 Ingress 125
- 9.6 网络策略 127
- 9.7 完整的Kubernetes服务发布实践 128
- 9.7.1 各Kubernetes集群
- LoadBalancer服务发布 130
- 9.7.2 Ingress服务发布 132
- 9.7.3 服务发现 133
- 第10章 Kubernetes网络 134
- 10.1 单主机Docker网络通信 134
- 10.1.1 Host模式 135
- 10.1.2 Container模式 135
- 10.1.3 None模式 136
- 10.1.4 Bridge模式 136
- 10.1.5 基础网络模型的优缺点分析 137
- 10.2 跨主机Docker网络通信 137
- 10.2.1 Flannel网络方案 139
- 10.2.2 Calico网络方案 140
- 10.2.3 利用Kuryr整合OpenStack与Kubernetes网络 143
- 10.2.4 网络方案对比分析 144
- 第11章 Kubernetes存储 145
- 11.1 存储使用场景 145
- 11.2 文件存储的几种形式 146
- 11.3 Flex Volume存储管理方案 148
- 11.3.1 为什么需要灵活存储组件 148
- 11.3.2 如何实现灵活存储组件 148
- 11.4 标准化容器存储接口CSI 149
- 第12章 安全及多租户配额管理 150
- 12.1 API服务器认证 151