新書推薦:
《
如何打造成功的商业赛事
》
售價:NT$
407.0
《
万千教育学前·透视学前儿童的发展:解析幼儿教师常问的那些问题
》
售價:NT$
265.0
《
慈悲与玫瑰
》
售價:NT$
398.0
《
启蒙的辩证:哲学的片简(法兰克福学派哲学经典,批判理论重要文本)
》
售價:NT$
347.0
《
心跳重置
》
售價:NT$
269.0
《
云中记
》
售價:NT$
347.0
《
中国古代妇女生活(中国古代生活丛书)
》
售價:NT$
214.0
《
你的认知正在阻碍你
》
售價:NT$
296.0
|
編輯推薦: |
本书几乎囊括了容器云主流的运维开发生态,详细讲解了基于容器云的集群运维解决方案。不仅介绍了Docker 与Kubernetes 的基本的主流功能,还对其过渡性的实验功能和即将遗弃的功能做了一定的提醒,对新手而言可以减少踩坑的概率。本书在内容 上分为三大部分:
*部分(第1~2章)讲解在Linux 下传统服务器运维的基础知识,以及集群管理工具;
第二部分(第3~7章)讲解以Docker 为主的容器引擎的基本知识与原理,并介绍了容器技术在DevOps 中的实际应用场景;
第三部分(第8~9章)讲解基于Kubernetes 的容器云集群运维技巧。
|
內容簡介: |
本书围绕当前容器云运维的主流框架:Docker、Kubernetes详细介绍了容器云运维的实战技巧,在内容上分为三大部分:*部分(第1~2章)介绍了在Linux系统中传统服务器运维的基础知识以及集群管理工具;第二部分(第3~7章)讲解了以Docker为主的容器引擎的基本知识与原理,并介绍了容器技术在DevOps中的实际应用场景;第三部分(第8~9章)详细讲解了基于Kubernetes的容器云集群运维技巧。全书几乎囊括了容器云主流的运维开发生态,详细讲解了基于容器云的集群运维解决方案。本书适合容器云初学者,也适合那些对Docker有一定了解,但对容器云的运维方式不甚了解的读者。
|
關於作者: |
黄靖钧,95 后,全栈开发者,长期以来一直使用容器技术作为应用部署方案,在 Docker 容器实战方面经验丰富。曾参与多个 PaaS 与 CaaS (容器即服务)项目开发,现从事 Serverless 与 SDN 等领域的研究。
|
目錄:
|
第1章Linux 运维基础1
1.1Linux基础2
1.1.1systemd2
1.1.2Shell脚本6
1.2自动化运维14
1.2.1自动化运维之Ansible14
1.2.2Ansible的使用16
1.2.3Ansible模块23
1.2.4playbook27
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.1DNS轮询44
2.2.2客户端调度45
2.2.3应用层负载调度46
2.2.4IP层负载调度46
2.3 LVS负载均衡46
2.3.1LVS体系结构47
2.3.2IP负载均衡48
2.3.3负载调度算法54
2.3.4ipvsadm工具详解56
2.3.5LVS集群实践58
2.4 Nginx负载均衡63
2.4.1Nginx配置文件详解63
2.4.2Nginx负载均衡模块68
2.5 本章小结75
第3章Docker容器引擎76
3.1 容器技术77
3.1.1虚拟化技术77
3.1.2容器技术与Docker79
3.1.3容器技术原理84
3.2 Docker基础89
3.2.1Docker架构89
3.2.2Docker安装91
3.2.3Docker命令96
3.3 Docker镜像97
3.3.1认识镜像97
3.3.2镜像操作99
3.3.3Dockerfile详解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.1Docker插件138
3.5.2存储驱动139
3.6 容器与操作系统140
3.6.1为容器而打造:Container Linux(CoreOS)140
3.6.2定制化容器系统:RancherOS142
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.1none模式152
4.2.2container模式154
4.2.3host模式155
4.2.4bridge模式156
4.2.5overlay模式157
4.3 Docker网络配置158
4.3.1Daemon网络参数158
4.3.2配置DNS159
4.4 本章小结159
第5章容器编排160
5.1 安装Docker Compose161
5.1.1二进制安装161
5.1.2使用Python pip安装161
5.2 Compose命令基础162
5.2.1指定配置文件162
5.2.2指定项目名称163
5.2.3Compose环境变量163
5.2.4build:构建服务镜像164
5.2.5bundle:生成DAB包165
5.2.6config:检查配置语法165
5.2.7create:创建服务容器166
5.2.8down:清理项目167
5.2.9events:查看事件168
5.2.10exec:进入服务容器168
5.2.11kill:杀死服务容器169
5.2.12logs:查看服务容器日志169
5.2.13pause:暂停服务容器170
5.2.14port:查看服务容器端口状态170
5.2.15psimages:查看容器与镜像171
5.2.16pull:拉取项目镜像172
5.2.17push:推送项目镜像172
5.2.18restart:重启服务容器173
5.2.19rm:删除项目容器173
5.2.20run:执行一次性命令174
5.2.21scale:设置服务容器数量177
5.2.22start:启动服务容器178
5.2.23stop:停止服务容器178
5.2.24top:查看进程状态178
5.2.25unpause:取消暂停179
5.2.26up:启动项目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.1WordPress博客部署204
5.4.2Django框架部署205
5.5 本章小结207
第6章Docker集群管理208
6.1 Swarm 基础209
6.1.1Docker Swarm 命令209
6.1.2Docker Node 命令211
6.1.3Docker Stack 命令213
6.1.4Docker集群网络214
6.2 集群进阶223
6.2.1Swarm:高可用的Docker集群管理工具223
6.2.2Shipyard:集群管理面板225
6.2.3Portainer:容器管理面板227
6.3 本章小结229
第7章Docker生态230
7.1 宿主管理工具:Machine231
7.1.1Machine的安装231
7.1.2宿主环境管理231
7.2 容器编排调度233
7.2.1Rancher:集群管理面板233
7.2.2Nomad:行业领先的调度系统235
7.2.3DCOS:一切皆可调度237
7.2.4服务发现238
7.3 私有镜像仓库239
7.3.1私有仓库的部署239
7.3.2VMware Harbor:企业私有
仓库250
7.3.3SUSE Portus:镜像仓库前端
分布认证254
7.4 Docker插件256
7.4.1授权插件256
7.4.2Flocker存储插件257
7.4.3网络驱动插件257
7.5 Docker安全259
7.5.1Docker安全机制259
7.5.2Docker资源控制261
7.5.3Docker安全工具264
7.6 监控与日志265
7.6.1cAdvisor:原生集群监控265
7.6.2Logspout:日志处理266
7.6.3Grafana:数据可视化267
7.6.4其他监控工具269
7.7 基于Docker的PaaS平台270
7.7.1Deis:轻量级PaaS平台270
7.7.2Tsuru:可扩展PaaS平台270
7.7.3Flynn:模块化PaaS平台271
7.8 Docker持续集成271
7.8.1Drone:轻量级CI工具271
7.8.2Travis CI:著名的CICD
服务商273
7.9 其他274
7.10 本章小结276
第8章Kubernetes入门277
8.1 Kubernetes介绍278
8.1.1什么是Kubernetes278
8.1.2Kubernetes架构278
8.1.3Kubernetes的优势280
8.2 Kubernetes概念281
8.2.1Kubernetes资源281
8.2.2调度中心:Master281
8.2.3工作节点:Node281
8.2.4最小调度单位:Pod283
8.2.5资源标签:Label284
8.2.6弹性伸缩:RC与RS286
8.2.7部署对象:Deployment287
8.2.8水平扩展:HPA288
8.2.9服务对象:Service290
8.2.10数据卷资源:Volume293
8.2.11数据持久化:Persistent
Volume299
8.2.12命名空间:Namespace304
8.2.13注释:Annotation304
8.3 Kubernetes部署305
8.3.1使用Minikube安装Kubernetes305
8.3.2使用Kubeadm安装Kubernetes307
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.9kubectl全局选项334
8.5 本章小结335
第9章Kubernetes运维实践336
9.1 Pod详解337
9.1.1Pod配置详解337
9.1.2Pod生命周期340
9.1.3共享Volume343
9.1.4Pod配置管理343
9.1.5Pod健康检查346
9.1.6Pod扩容和缩容348
9.2 Service详解349
9.2.1Service的定义349
9.2.2Service的创建350
9.2.3集群外部访问351
9.2.4Ingress负载网络353
9.3 集群进阶355
9.3.1资源管理355
9.3.2kubelet垃圾回收机制359
9.4 监控与日志359
9.4.1原生监控:Heapster359
9.4.2星火燎原:Prometheus360
9.4.3王牌组合:EFK366
9.4.4后起之秀:Filebeat374
9.5 本章小结376
|
內容試閱:
|
前 言
随着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,感谢您的指正。
|
|