猜你喜欢
容器即服务:从零构建企业级容器集群

容器即服务:从零构建企业级容器集群

书籍作者:林帆 ISBN:9787121332760
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:9257
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

《容器即服务:从零构建企业级容器集群》介绍了容器即服务的发展过程和主要技术,重点阐述当下主流的SwarmKit、Kubernetes、Mesos和Rancher 开源容器集群方案,并探讨了容器技术在网络、存储、监控、日志等方面的运用场景和基础知识,以及该领域在近年来的一些新的发展方向。

《容器即服务:从零构建企业级容器集群》适合一线架构师、开发者、运维人员以及技术管理者进行阅读。

作者简介

林帆,花名金戟,阿里巴巴研发效能事业部技术专家。前ThoughtWorks资深DevOps技术咨询师,2015年极客邦CNut全球容器技术大会讲师,2016年CSDN架构技术实战峰会讲师,2017年StuQ容器集群技术直播课程讲师。具有丰富的一线开发和运维经验,是国内早期的容器技术实践者和布道师。

编辑推荐
适读人群 :对容器基础技术有一定了解,希望更深入的学习容器运用、集群技术和自动化运维的技术从业人员、高校学生以及其他相关人员。

√ 全局视角透视集群与容器编排

√ 实战级企业级容器化技术落地

√ 容器架构主线与集群生态蓝图

√ 大规模部署与基础设施即交付

前言

在这个日新月异的时代,每一位站在浪尖上的技术匠人,都不得不加紧步伐,追赶不断变化的趋势。与此相应的一个现象是,当一本技术类的书籍刚刚面市,它所讲述的内容就已经开始迅速过时。

这本书从2016 年初开始筹备,由于种种原因拖沓了近两年终于完稿。在这段时间里:

SwarmKit 诞生了,原先的Swarm 技术栈光荣退役。

Kubernetes 的版本从1.0 一路更迭到1.10,增加了无数新特性。

Mesos 推出Unified Container,曾经一度被看好的Docker 集成器风光不再。

Rancher 发布2.0 版本,完全颠覆先前的用户体验设计。

Docker 自家的LinuxKit、阿里的Pouch 这些底层开源技术在不断演进。

书还没写完,最初准备的材料有一大半都已经作废。

先前笔者写作《CoreOS 实践之路》一书时,同样是一边增加新章节,一边关注书里涉及软件的变化,对已有章节进行三番五次的补充修正,到完成时,许多地方都被大段大段地重写了。此次的《容器即服务:从零构建企业级容器集群》因为涉及方面较多,加上写作时间跨度较大,以至于维护其中的内容变化更加困难,经过数次截稿日的跳票,才费劲地将书中示例涉及的大部分软件更新到2017 年中下旬的版本。

不过,本书写作的初衷并非在于介绍最新的工具。对于学习一门成熟的工具,最直接的方式莫过于阅读它的文档。但面对一个领域中众多的知识,入门者最容易迷失的地方在于缺少一条主线。本书一方面希望为容器集群及其周边的领域勾勒一幅入门的蓝图,另一方面则是点出一些在文档中没有讲清但实际很容易迷惑用户的大坑小洼,对于细节和扩展的内容则以参考链接的形式提供。

如今的容器技术正在处于百花齐放的时期,当我们讨论到容器,很多时候已不是单纯地在说某种内核虚拟化技术,而是在谈服务集群、任务调度,以及Cloud Native 和微服务。与此同时,容器平台相关的应用场景也越来越丰富,大规模容器化部署的运用逐渐从少数大型企业发展到许多中型和创业企业里。作为现代产品发布模式的重塑者,容器技术以及它所提倡的基础设施即代码交付思想,对每位一线架构师、开发者、运维人员乃至技术管理者的工作带来的影响,都不容小觑。本书截取了一些具有当下时代特征的技术剪影,提供给读者品味。

在编写内容时,本书尽量以通用的容器技术作为背景,而非限定于特定的容器产品(比如Docker)。但在一些具体的例子方面,均采用了当前最主流的Docker 容器作为讲解示例。

由于写作周期较长,加之作者个人的经验所限,书中难免存在一些阐述不当和错误的地方。本书的勘误表发布在博文视点官方网站http://www.broadview.com.cn/33276,恳请各位读者通过此页面提交勘误或发邮件到[email protected] 予以指正。

最后,感谢在过去两年中不断督促和鼓励我完成写作的张春雨以及负责了整本书编辑的吴倩雪,没有你们的努力,这本书肯定无法按时出版。感谢将我养育成材的父母以及我的爱人杨斌清,你们默默的支持使我得以静下心来认真地完成这部作品。同样感谢每一位开源代码的贡献者,正是开源推动了技术的革命,才使“旧时王谢堂前燕”,如今“飞入寻常百姓家”。我亦是一名普通的技术匠人,且当少一些浮躁,多一些沉淀,借以此书自勉。

林 帆

2017 年12 月25 日

目录

第1 部分 基础概念

第1 章 容器集群综述

1.1 虚拟化与容器

1.1.1 计算资源虚拟化

1.1.2 容器技术的本质

1.1.3 基于容器的软件交付

1.2 容器集群与分布式服务

1.2.1 微服务架构

1.2.2 容器集群生态圈

1.3 容器即服务

1.3.1 从基础设施到平台

1.3.2 数据中心操作系统

1.4 本章小结


第2 部分 解决方案

第2 章 SwarmKit 集群解决方案

2.1 开源容器集群方案

2.1.1 容器社区的“四朵金花”

2.1.2 经典Swarm、SwarmKit 和Swarm Mode

2.2 使用SwarmKit

2.2.1 SwarmKit 综述

2.2.2 创建SwarmKit 集群

2.2.3 在SwarmKit 集群上运行服务

2.2.4 SwarmKit 集群的其他功能

2.3 Docker Swarm Mode

2.3.1 Swarm Mode 综述

2.3.2 集群的创建与销毁

2.3.3 节点管理

2.3.4 服务管理

2.3.5 服务编排

2.3.6 应用栈的管理

2.3.7 外置配置和密文管理

2.4 Swarm Mode 的图形界面

2.4.1 Swarm Mode UI 现状

2.4.2 Portainer

2.5 本章小结

第3 章 Kubernetes 集群解决方案

3.1 Kubernetes 集群概述

3.1.1 Kubernetes 项目的起源

3.1.2 Kubernetes 的结构

3.1.3 基本概念

3.2 部署Kubernetes 集群

3.2.1 使用Minikube

3.2.2 使用kubeadm

3.2.3 理解Kubernetes 集群的部署过程

3.2.4 验证集群可用性

3.3 使用Kubernetes

3.3.1 通过Kubernetes 部署服务

3.3.2 服务的在线更新和回滚

3.3.3 单次任务、定时任务和全局服务

3.3.4 持久化存储.

3.3.5 配置存储

3.3.6 管理有状态的服务

3.3.7 健康检查

3.3.8 提供对外服务

3.3.9 多租户隔离和配额

3.3.10 集群的节点管理

3.4 Kubernetes 包管理工具Helm

3.4.1 Helm 简介

3.4.2 使用Helm 管理服务

3.4.3 自定义Chart

3.4.4 Chart 仓库

3.5 本章小结

第4 章 Mesos 集群解决方案

4.1 Mesos 和DC/OS 概述

4.1.1 Mesos 项目的起源

4.1.2 Mesos 的结构

4.1.3 Mesos 的内部构成

4.1.4 DC/OS 数据中心操作系统

4.2 部署Mesos 集群

4.2.1 部署ZooKeeper

4.2.2 部署Mesos

4.2.3 启动Master 节点

4.2.4 添加Agent 节点

4.2.5 Mesos 服务的启动参数

4.3 使用Marathon 管理服务

4.3.1 部署Marathon

4.3.2 添加一个应用

4.3.3 使用DC/OS 命令行工具

4.3.4 使用Docker 容器

4.3.5 使用Unified Container

4.3.6 持久化卷存储

4.3.7 Marathon-LB 负载均衡

4.3.8 Mesos-DNS 域名服务

4.3.9 服务依赖和编组

4.3.10 应用升级

4.3.11 调度约束

4.3.12 健康检查

4.4 使用Chronos

4.4.1 部署Chronos

4.4.2 定时表达式

4.4.3 创建定时任务

4.4.4 定时任务的依赖

4.5 更多的Mesos 服务框架

4.5.1 Mesos 服务框架的本质

4.5.2 编写自己的Mesos 服务框架

4.5.3 其他常见服务框架

4.6 DC/OS

4.6.1 DC/OS 简介

4.6.2 部署DC/OS

4.6.3 DC/OS 的操作

4.6.4 DC/OS 命令行工具

4.6.5 DC/OS 的应用仓库

4.7 本章小结

第5 章 Rancher 集群解决方案

5.1 Rancher 集群概述

5.1.1 Rancher 项目的起源

5.1.2 Rancher 的结构

5.1.3 相关概念

5.2 构建Rancher 集群

5.2.1 部署Server 节点

5.2.2 Server 节点的高可用部署方式

5.2.3 添加Agent 节点

5.3 Rancher 的服务管理

5.3.1 使用Rancher Web UI 创建服务

5.3.2 从容器

5.3.3 特殊类型的服务

5.3.4 使用应用商店

5.3.5 服务编排

5.3.6 服务的升级和回滚

5.4 Rancher 使用进阶

5.4.1 Rancher 的标签

5.4.2 调度选项

5.4.3 服务健康检查

5.4.4 Rancher 的元数据服务

5.4.5 Rancher 的DNS 服务

5.4.6 使用私有镜像仓库

5.4.7 Rancher 的Secret 服务

5.4.8 在应用商店添加自定义应用

5.5 Rancher 的命令行工具

5.5.1 配置Rancher 命令行工具

5.5.2 命令工具的基本使用

5.5.3 通过命令行进行服务编排

5.5.4 通过命令行进行服务升级

5.6 使用Rancher 安装Kubernetes

5.6.1 Rancher 的环境管理

5.6.2 在Rancher 中添加Kubernetes 环境

5.6.3 在Rancher 中使用Kubernetes

5.7 本章小结


第3 部分 技术周边

第6 章 容器集群的网络和存储

6.1 容器网络

6.1.1 容器网络标准

6.1.2 本地网络

6.1.3 跨节点网络

6.1.4 使用Docker 内置的Overlay 类型网络

6.1.5 构建基于Flannel 的覆盖网络

6.1.6 构建基于Calico 的BGP 路由网络

6.2 容器存储

6.2.1 容器实例和镜像的存储

6.2.2 容器卷的存储

6.2.3 容器卷存储标准

6.2.4 基于NFS 的卷存储

6.2.5 基于Ceph 的卷存储

6.2.6 使用公有云存储

6.3 本章小结

第7 章 容器服务的基础设施

7.1 集群性能监控

7.1.1 常见的开源性能监控方案

7.1.2 基于TICK Stack 的性能监控

7.1.3 TICK Stack 的部署和使用

7.1.4 基于Prometheus 的性能监控

7.1.5 Prometheus 的部署

7.1.6 Prometheus 的使用

7.2 集群日志管理

7.2.1 常见的开源日志管理方案

7.2.2 基于Elastic Stack 的日志管理

7.2.3 基于Fluentd 的日志管理

7.3 服务发现

7.3.1 常见的服务发现方案

7.3.2 Etcd

7.3.3 Consul

7.4 镜像仓库

7.4.1 容器镜像仓库概述

7.4.2 Registry

7.4.3 Harbor

7.5 本章小结

第8 章 容器技术新风向

8.1 安全的集群操作系统:Container Linux

8.1.1 Container Linux 概述

8.1.2 Container Linux 的部署

8.1.3 Container Linux 的使用

8.2 基于容器的操作系统:RancherOS

8.2.1 RancherOS 概述.

8.2.2 部署RancherOS

8.2.3 RancherOS 的使用

8.2.4 使用ros 工具管理系统

8.3 容器式的虚拟机:Hyper

8.3.1 Hyper 概述

8.3.2 部署Hyper

8.3.3 Hyper 的使用

8.4 虚拟机式的容器:LXD

8.4.1 LXD 概述

8.4.2 LXD 的安装和使用

8.4.3 服务热迁移.

8.5 容器与虚拟机的统一:Rkt

8.5.1 Rkt 概述

8.5.2 Rkt 的安装和使用

8.6 企业级定制容器:Pouch

8.6.1 Pouch 概述

8.6.2 Pouch 的开源生态

8.6.3 体验Pouch

8.7 微内核操作系统:Unikernel

8.7.1 Unikernel 概述

8.7.2 Unikernel 的发展

8.7.3 体验Unikernel

8.8 本章小结

产品特色