容器云运维实战——Docker与Kubernetes集群
  • 推荐0
  • 收藏0
  • 浏览222

容器云运维实战——Docker与Kubernetes集群

黄靖钧 (作者) 

  • 书  号:978-7-121-33906-6
  • 出版日期:2019-02-25
  • 页  数:384
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 维护人:石倩
纸质版 ¥89.00

相关图书

Nginx实战:基于Lua语言的配置、开发与架构详解

王力 王力 (作者)

本书主要讲解了Nginx在反向代理和应用开发中的作用,阅读本书可以了解Nginx在互联网开发中扮演的多个角色,充分利用这些角色的各项功能有助于提升服务的整体性能...

 

奔跑吧Ansible(第2版)

(加)Lorin Hochstein ,(加)Rene Moser (作者) 陈尔冬 (译者)

Ansible是近年来急速发展的开源配置管理工具。在Ansible之前,行业中已经有很多开源配置管理工具了,特别是大名鼎鼎的Puppet,简直是配置管理工具中的...

¥119.00

Serverless架构:无服务器应用与AWS Lambda

Dr. Peter Sbarski? (作者) 覃宇 (译者)

无服务器是软件架构世界中的热门新话题,它充分利用大量的云平台服务,让开发者只需关注核心业务逻辑的实现。同时,它按需分配和使用资源的运行方式,在降低基础设施成本的...

¥108.00

智能运维:从0搭建大规模分布式AIOps系统

彭冬 朱伟 刘俊 等 (作者)

本书将全面完整地介绍智能运维的技术体系,以及大企业的智能运维实践经验,让读者更加了解运维技术的现状和发展方向,在实践中能够有所借鉴。同时,也能帮助运维工程师在一...

¥79.00

进化:运维技术变革与实践探索

赵成 (作者)

本书整体包含四大部分内容:应用运维体系建设、效率和稳定性最佳实践、云计算时代的运维实践以及运维人员的个人成长。<br>应用运维体系建设部分从运维的本质开始讲起,...

¥59.00

流式架构:Kafka与MapR Streams数据流处理

Ted Dunning ,Ellen Friedman (作者) 唐李洋 (译者)

所有连续的事件流都可以称为数据流。对连续数据流设计和构建流式数据架构,能够实现实时或近实时应用,提升整个组织的效率。本书以Apache Kafka 和MapRS...

¥39.00
本书围绕当前容器云运维的主流框架:Docker、Kubernetes详细介绍了容器云运维的实战技巧,在内容上分为三大部分:第一部分(第1~2章)介绍了在Linux系统中传统服务器运维的基础知识以及集群管理工具;第二部分(第3~7章)讲解了以Docker为主的容器引擎的基本知识与原理,并介绍了容器技术在DevOps中的实际应用场景;第三部分(第8~9章)详细讲解了基于Kubernetes的容器云集群运维技巧。全书几乎囊括了容器云主流的运维开发生态,详细讲解了基于容器云的集群运维解决方案。
本书适合容器云初学者,也适合那些对Docker有一定了解,但对容器云的运维方式不甚了解的读者。
囊括容器云的主流运维开发生态,详细讲解基于容器云的集群运维解决方案。
前 言


随着Docker 2015年的病毒式传播和2016年的迅速普及应用,云计算时代的运维方式发生了很大变化。从表面上看,20年前依靠运维工程师通过SSH远程连接服务器进行维护的“刀耕火种”时代早已不复存在了;但在过去的十几年里,传统集群运维工具欣欣向荣的背后依旧是20年前的那套远程管理方案的自动化实现,其本质不过是把重复的劳动交给计算机自动执行了。
不管是连接效率还是集群管理都不可避免地会遇到很多问题,特别是在云计算时代,数以千计的服务器集群在大中企业如同家常便饭,传统的运维手段早已黔驴技穷。而OpenStack的出现也只是给了IaaS服务商一个喘息的机会,普通企业的运维分布式集群依旧乏力。
直到虚拟化技术有了长足发展,Namespace最后一块拼图——User Namespace成功实现并加入Linux Kernel 3.8,容器虚拟化技术的翘楚——LXC终于有了与虚拟机、KVM等技术一战高下的底气。
2014年,Docker一经开源便引起了业界的轰动,这个最初基于LXC开发的容器引擎让全世界的开发者和运维者看到了新的方向,在毫秒级的应用部署优势面前,诸多企业纷纷“倒戈”容器阵营。
随着Google、亚马逊、微软、IBM等云计算巨头纷纷表态并加入OCI(Oracle调用接口),这股容器云的浪潮在2015年迅速颠覆了传统的运维方案,替代它们的是一套更智能、更全面、更灵活的自动化运维体系。
在倡导“万物皆容器”的理念下,得益于容器的轻便特性,一些边缘概念也被逐渐提上了日程:微服务、Serverless、DevOps,如今的运维已不再是简单的服务器维护,更肩负了数据、服务与人的沟通。
在如今高效的集群管理方案面前,有人不禁惊呼容器时代不再需要运维工程师了,但是待我们推开容器云世界的大门时,我们发现逝去的不过是旧的运维世界,在新的容器云世界里,我们依旧知之甚少,运维工程师还不可或缺。
本书围绕当前容器云运维的主流框架:Docker、Kubernetes详细介绍了容器云运维的实战技巧,在内容上分为三大部分:第一部分(第1~2章)介绍了在Linux系统中传统服务器运维的基础知识以及集群管理工具;第二部分(第3~7章)讲解了以Docker为主的容器引擎的基本知识与原理,并介绍了容器技术在DevOps中的实际应用场景;第三部分(第8~9章)详细讲解了基于Kubernetes的容器云集群运维技巧。
全书几乎囊括了容器云主流的运维开发生态,详细讲解了基于容器云的集群运维解决方案。全书内容不仅介绍了Docker与Kubernetes的基本的主流功能,还对其过渡性的实验功能和即将遗弃的功能做了一定的提醒,对新手而言可以减少“踩坑”的概率。
因此,本书一方面可以作为面向容器云入门甚至是Linux入门的初级教程;另一方面,随着内容的深入与扩展,本书也适合那些对Docker有一定了解,但是对容器云的运维方式不甚了解的读者。本书还介绍了不同场合下对规模较大的容器的管理方案,对初创企业或者小团队的运维人员而言,也是一本不错的进阶书籍。
书中少量图片来自网络,相关代码若需要参考均在文中留有出处。由于笔者水平有限,书中存在错误或疏漏的地方在所难免,如有任何意见或建议,欢迎发邮件至i@zuolan.me,感谢您的指正。

目录

第1章 Linux 运维基础 1
1.1 Linux基础 2
1.1.1 systemd 2
1.1.2 Shell脚本 6
1.2 自动化运维 14
1.2.1 自动化运维之Ansible 14
1.2.2 Ansible的使用 16
1.2.3 Ansible模块 23
1.2.4 playbook 27
1.3 本章小结 38
第2章 高可用的Linux集群 39
2.1 高可用集群基础 40
2.1.1 高可用衡量标准 40
2.1.2 高可用层次结构 40
2.1.3 常见的高可用方案 41
2.2 虚拟服务的实现 44
2.2.1 DNS轮询 44
2.2.2 客户端调度 45
2.2.3 应用层负载调度 46
2.2.4 IP层负载调度 46
2.3 LVS负载均衡 46
2.3.1 LVS体系结构 47
2.3.2 IP负载均衡 48
2.3.3 负载调度算法 54
2.3.4 ipvsadm工具详解 56
2.3.5 LVS集群实践 58
2.4 Nginx负载均衡 63
2.4.1 Nginx配置文件详解 63

2.4.2 Nginx负载均衡模块 68
2.5 本章小结 75
第3章 Docker容器引擎 76
3.1 容器技术 77
3.1.1 虚拟化技术 77
3.1.2 容器技术与Docker 79
3.1.3 容器技术原理 84
3.2 Docker基础 89
3.2.1 Docker架构 89
3.2.2 Docker安装 91
3.2.3 Docker命令 96
3.3 Docker镜像 97
3.3.1 认识镜像 97
3.3.2 镜像操作 99
3.3.3 Dockerfile详解 103
3.3.4 镜像仓库 118
3.4 Docker容器 121
3.4.1 认识容器 121
3.4.2 容器操作 123
3.4.3 数据卷 134
3.5 插件与存储驱动 138
3.5.1 Docker插件 138
3.5.2 存储驱动 139
3.6 容器与操作系统 140
3.6.1 为容器而打造:Container Linux(CoreOS) 140
3.6.2 定制化容器系统:RancherOS 142
3.7 本章小结 143

第4章 容器网络 144
4.1 Docker网络基础 145
4.1.1 端口映射 145
4.1.2 端口暴露 146
4.1.3 容器互联 147
4.2 Docker网络模式 152
4.2.1 none模式 152
4.2.2 container模式 154
4.2.3 host模式 155
4.2.4 bridge模式 156
4.2.5 overlay模式 157
4.3 Docker网络配置 158
4.3.1 Daemon网络参数 158
4.3.2 配置DNS 159
4.4 本章小结 159
第5章 容器编排 160
5.1 安装Docker Compose 161
5.1.1 二进制安装 161
5.1.2 使用Python pip安装 161
5.2 Compose命令基础 162
5.2.1 指定配置文件 162
5.2.2 指定项目名称 163
5.2.3 Compose环境变量 163
5.2.4 build:构建服务镜像 164
5.2.5 bundle:生成DAB包 165
5.2.6 config:检查配置语法 165
5.2.7 create:创建服务容器 166
5.2.8 down:清理项目 167
5.2.9 events:查看事件 168
5.2.10 exec:进入服务容器 168
5.2.11 kill:杀死服务容器 169
5.2.12 logs:查看服务容器日志 169
5.2.13 pause:暂停服务容器 170
5.2.14 port:查看服务容器端口状态 170
5.2.15 ps/images:查看容器与镜像 171
5.2.16 pull:拉取项目镜像 172
5.2.17 push:推送项目镜像 172
5.2.18 restart:重启服务容器 173
5.2.19 rm:删除项目容器 173
5.2.20 run:执行一次性命令 174
5.2.21 scale:设置服务容器数量 177
5.2.22 start:启动服务容器 178
5.2.23 stop:停止服务容器 178
5.2.24 top:查看进程状态 178
5.2.25 unpause:取消暂停 179
5.2.26 up:启动项目 179
5.3 Compose配置文件 183
5.3.1 配置文件基础 183
5.3.2 基本配置 184
5.3.3 网络配置 199
5.3.4 配置扩展 200
5.4 Compose实战 204
5.4.1 WordPress博客部署 204
5.4.2 Django框架部署 205
5.5 本章小结 207
第6章 Docker集群管理 208
6.1 Swarm 基础 209
6.1.1 Docker Swarm 命令 209
6.1.2 Docker Node 命令 211
6.1.3 Docker Stack 命令 213
6.1.4 Docker集群网络 214
6.2 集群进阶 223
6.2.1 Swarm:高可用的Docker集群管理工具 223
6.2.2 Shipyard:集群管理面板 225
6.2.3 Portainer:容器管理面板 227
6.3 本章小结 229
第7章 Docker生态 230
7.1 宿主管理工具:Machine 231
7.1.1 Machine的安装 231
7.1.2 宿主环境管理 231
7.2 容器编排调度 233
7.2.1 Rancher:集群管理面板 233
7.2.2 Nomad:行业领先的调度系统 235
7.2.3 DC/OS:一切皆可调度 237
7.2.4 服务发现 238
7.3 私有镜像仓库 239
7.3.1 私有仓库的部署 239
7.3.2 VMware Harbor:企业私有
仓库 250
7.3.3 SUSE Portus:镜像仓库前端
分布认证 254
7.4 Docker插件 256
7.4.1 授权插件 256
7.4.2 Flocker存储插件 257
7.4.3 网络驱动插件 257
7.5 Docker安全 259
7.5.1 Docker安全机制 259
7.5.2 Docker资源控制 261
7.5.3 Docker安全工具 264
7.6 监控与日志 265
7.6.1 cAdvisor:原生集群监控 265
7.6.2 Logspout:日志处理 266
7.6.3 Grafana:数据可视化 267
7.6.4 其他监控工具 269
7.7 基于Docker的PaaS平台 270
7.7.1 Deis:轻量级PaaS平台 270
7.7.2 Tsuru:可扩展PaaS平台 270
7.7.3 Flynn:模块化PaaS平台 271
7.8 Docker持续集成 271
7.8.1 Drone:轻量级CI工具 271
7.8.2 Travis CI:著名的CI/CD
服务商 273
7.9 其他 274
7.10 本章小结 276
第8章 Kubernetes入门 277
8.1 Kubernetes介绍 278
8.1.1 什么是Kubernetes 278
8.1.2 Kubernetes架构 278
8.1.3 Kubernetes的优势 280
8.2 Kubernetes概念 281
8.2.1 Kubernetes资源 281
8.2.2 调度中心:Master 281
8.2.3 工作节点:Node 281
8.2.4 最小调度单位:Pod 283
8.2.5 资源标签:Label 284
8.2.6 弹性伸缩:RC与RS 286
8.2.7 部署对象:Deployment 287
8.2.8 水平扩展:HPA 288
8.2.9 服务对象:Service 290
8.2.10 数据卷资源:Volume 293
8.2.11 数据持久化:Persistent
Volume 299
8.2.12 命名空间:Namespace 304
8.2.13 注释:Annotation 304
8.3 Kubernetes部署 305
8.3.1 使用Minikube安装Kubernetes 305
8.3.2 使用Kubeadm安装Kubernetes 307
8.4 Kubernetes命令行详解 309
8.4.1 基本命令(初级) 310
8.4.2 基本命令(中级) 318
8.4.3 部署命令 320
8.4.4 集群管理命令 323
8.4.5 故障排除与调试命令 326
8.4.6 高级命令 329
8.4.7 设置命令 330
8.4.8 其他命令 332
8.4.9 kubectl全局选项 334
8.5 本章小结 335
第9章 Kubernetes运维实践 336
9.1 Pod详解 337
9.1.1 Pod配置详解 337
9.1.2 Pod生命周期 340
9.1.3 共享Volume 343
9.1.4 Pod配置管理 343
9.1.5 Pod健康检查 346
9.1.6 Pod扩容和缩容 348
9.2 Service详解 349
9.2.1 Service的定义 349
9.2.2 Service的创建 350
9.2.3 集群外部访问 351
9.2.4 Ingress负载网络 353
9.3 集群进阶 355
9.3.1 资源管理 355
9.3.2 kubelet垃圾回收机制 359
9.4 监控与日志 359
9.4.1 原生监控:Heapster 359
9.4.2 星火燎原:Prometheus 360
9.4.3 王牌组合:EFK 366
9.4.4 后起之秀:Filebeat 374
9.5 本章小结 376

读者评论