首页>参考读物>计算机科学与技术>计算机网络

开源容器云OpenShift:构建基于Kubernetes的企业应用云平台
作者 : 陈耿 著
出版日期 : 2017-06-15
ISBN : 978-7-111-56951-0
定价 : 69.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 267
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

容器是当前IT业界的一个热门话题,因为容器以及围绕其展开的生态系统正在改变云计算的面貌。目前,许多用户已经不再处于讨论“要不要使用容器”的阶段,而是进入到了讨论“如何用好容器”的阶段。容器技术有许多优点,在许多应用场景中有着巨大的潜力。但是用好容器技术可能比容器技术本身更为复杂。在许多人的眼里,容器就是Docker。然而现实是要在一个企业或组织里大规模地使用容器,除了容器引擎,我们还是需要考虑容器编排、调度、安全、应用部署、构建、高可用、网络、存储等方方面面的问题。企业必须要有一套整体的解决方案来应对这些挑战。
本书介绍的OpenShift是基于Docker和Kubernetes构建的开源的容器云,是为帮助企业和组织搭建和管理基于容器的应用平云而生的解决方案。通过OpenShift,企业可以快速地搭建稳定、安全、高效的容器应用平台。在这个平台上:
?企业可以构建企业内部的容器应用市场,为开发人员快速地提供应用开发所依赖的中间件、数据库等服务。
?通过自动化的流程,开发人员可以快速地进行应用的构建、容器化及部署。
-?通过OpenShift,用户可以贯通从应用开发到测试、再到上线的全流程,开发、测试和运维等不同的角色可以在一个平台上进行协作。
?OpenShift可以提高应用从研发到上线的效率和速度,缩短产品上市的时间,可以有效地帮助企业推进DevOps,实现生产效率的提升。
本书将通过深入浅出的方式向您一步步地介绍如何搭建OpenShift容器云平台,并在这个平台上进行应用的开发和部署。我们将探讨在OpenShift上如何满足软件研发常见的需求,如持续集成和交付、微服务化、数据持久化等。同时,我们也将探讨OpenShift的软件定义网络、高可用、配额控制等与运维息息相关的话题。本书会以开发和运维两个视角来审视构建和应用企业容器云的注意事项。

图书前言

云起之时开源有道
我仍然记得,在2000年年初,国内软件开发领域最热门的操作系统、语言、开发工具、数据库等基本上都是大型商业公司的产品。那时Linux已经存在,但是还不算主流。在我所工作的网络中心中,大部分服务器使用的是Windows Server或者Sun Solaris操作系统。市场上需求最火爆的开发平台是Visual C++、Visual Basic和已经基本消失不见的Delphi。然而17年后的今天,当再次审视当前所处的环境时,我们会惊讶地发现,开源社区的产品已然出现在各个领域:从操作系统、开发工具、编程语言,到中间件、数据库,再到虚拟化、基础架构云、应用平台云等。可以说当前的时代是名副其实的开源的时代,企业可以通过开源社区的创新构建一个完全开源的企业架构堆栈。
经过前几年云计算变革的推进,OpenStack目前已经成为了企业构建私有基础架构云的一个主流选择。当前,我们正处于容器变革的过程中。在我看来,容器在未来将会成为云计算一种重要的应用交付和部署格式,越来越多的应用会以容器的方式交付和部署在庞大的云计算集群中。在这种情况下,企业必须有一个如OpenStack一般健壮的平台肩负起大规模容器集群的部署、编排和管理等方面的任务。
作为Red Hat的一份子,我有幸在OpenShift容器云早期出现时就关注和负责相关的项目。我见证了OpenShift这个项目的发展,并为之取得的成绩感到骄傲。OpenShift作为一个容器云,它提供了众多契合企业大规模容器集群场景的功能,满足了企业在构建容器云方面的各种需求。在许多实际的项目中,我惊讶于OpenShift灵活的架构总能以某种方式解决用户所面对的问题。
作为一名开源社区的忠实粉丝,我为OpenShift项目取得的成绩感到骄傲,也对OpenShift这个平台充满了信心。因此,我希望通过书籍这个媒介让更多的人了解OpenShift,体验到OpenShift带来的价值。
本书主要内容
容器是当前IT业界的一个热门话题,因为容器以及围绕其展开的生态系统正在改变云计算的面貌。目前,许多用户已经不再处于讨论“要不要使用容器”的阶段,而是进入讨论“如何用好容器”的阶段。容器技术有许多优点,在许多应用场景中有着巨大的潜力,但是用好容器技术可能比容器技术本身更为复杂。在许多人的眼里,容器就是Docker。然而现实是,要在一个企业或组织里大规模地使用容器,除了容器引擎,我们还需要考虑容器编排、调度、安全、应用部署、构建、高可用、网络、存储等方方面面的问题。企业必须有一套整体的解决方案来应对这些挑战。
本书介绍的OpenShift是基于Docker和Kubernetes构建的开源的容器云,是为帮助企业、组织搭建及管理基于容器的应用平台而产生的解决方案。通过OpenShift,企业可以快速搭建稳定、安全、高效的容器应用平台。在这个平台上:
可以构建企业内部的容器应用市场,为开发人员快速提供应用开发所依赖的中间件、数据库等服务。
通过自动化的流程,开发人员可以快速进行应用的构建、容器化及部署。
通过OpenShift,用户可以贯通从应用开发到测试,再到上线的全流程,开发、测试和运维等不同的角色可以在一个平台上进行协作。
OpenShift可以提高应用从研发到上线的效率和速度,缩短产品上市的时间,可以有效地帮助企业推进DevOps,提升生产效率。
本书将通过深入浅出的方式一步步介绍如何通过OpenShift容器云构建企业容器云平台,并在这个平台上进行应用的开发和部署。我们将探讨在OpenShift上如何满足软件研发常见的需求,如持续集成和交付、微服务化、数据持久化等。同时,我们也将探讨OpenShift的软件定义网络、高可用、配额控制等与运维息息相关的话题。本书会从开发和运维两个视角来审视构建和应用企业容器云的注意事项。
全书分为基础篇、开发篇及运维篇。
基础篇(第1~4章)介绍容器云、企业容器云建设及OpenShift容器云的情况,帮助读者快速了解相关领域的知识。
开发篇(第5~9章)重点讲解如何使用OpenShift容器云满足应用研发重点关注的需求,如持续集成、微服务、数据持久化等话题,让读者了解如何通过容器云平台提升应用研发的效率。
运维篇(第10~14章)介绍OpenShift容器云对运维需求的支持情况,涉及网络、安全、权限及二次开发等运维关注的话题。
希望通过本书让读者完整地了解构建企业容器云平台涉及的各个方面,以及如何使用OpenShift来满足各个方面的需求。
本书的亮点
来自Red Hat资深技术顾问、认证架构师的一线经验和原创心得。
不照搬或翻译官方文档堆砌文字,不空泛地讲理念。
精心设计章节编排,语言通俗易懂,内容循序渐进,帮助你掌握容器云的理念。
丰富的动手示例让你了解背后的技术细节并掌握实际的操作。
兼顾开发和运维的不同关注点,探讨容器云如何助力企业IT。
需要注意的是,本书并不是OpenShift的产品手册,也不打算成为一本大而全的功能手册,所以不会枚举OpenShift的所有功能。如果你是要查找OpenShift某个功能的详细参数列表,OpenShift文档是你绝对的不二选择。本书的目的是通过循序渐进的方式,让你了解如何使用OpenShift构建一个企业的容器云,了解如何使用OpenShift解决在企业中碰到的关于开发、运维及DevOps的问题。
本书读者对象
本书适合作为从事云计算和容器技术的架构师、企业IT经理、研发工程师和运维工程师的参考资料,也适合作为希望了解云计算、容器技术的教师、学生及技术爱好者的学习指南。
如何阅读本书
如果你是初次接触OpenShift,建议按顺序从头开始阅读本书,系统地了解和掌握OpenShift容器云的相关知识。对于比较熟悉OpenShift及Kubernetes的读者,可以按需要直接从某一个特定主题的章节开始阅读。本书收录了许多实用的配置和代码示例,并附录了排错指南以方便读者查阅参考,解决实际项目中遇到的问题。
本书勘误
由于水平有限,书中难免有纰漏与谬误。如你发现了本书的不正之处,烦请不吝与笔者联系并指正(nicosoftware@msn.com)。让我们一同完善此书,并推动OpenShift社区不断进步。
祝你在探索OpenShift和容器云的旅程中旅途愉快,收获满满。

上架指导

计算机/云计算

图书序言

2016年中第一次听到陈耿(作者)要写一本关于OpenShift的书籍,我感到非常感动。Red Hat中国的核心价值观之一,就是“以创业者的心态打工”。本书是作者牺牲工余陪伴家人的时间,倾注心血之作。著书是一个漫长而艰辛的旅程。我曾在一次简短的谈话中鼓励作者:古人云“君子立德,立功,立言”。著一本书的意义,不仅仅是传道解惑,也是对自己所感所悟的总结。感谢作者以顽强的毅力和巨大的热情,以OpenShift这一领先的开源容器应用云(PaaS)解决方案为依托,将自己在PaaS、容器技术、微服务、DevOps等领域的所学、所悟、所得悉心整理,无私奉献给各位读者朋友;也感谢作者盛情邀我为该书作序,我深感荣幸。
以云计算、大数据、物联网和人工智能为代表的科技浪潮,不仅推动整个IT业界持续繁荣发展,而且正在改变着整个世界。数据和信息已成为未来十年最重要的财富与核心竞争力;分享经济将颠覆越来越多的传统行业,加速创新。而在所有这些“黑科技”幕后的核心推动力,正是开放源代码革命带来的开源社区、开源项目和以“开放、合作、分享、共赢”为核心价值观的开源文化。开源已不再仅是一种软件工程方法,更是一种新经济的强有力的推手。在国家大力推动“双创”的大好局面下,开源技术在国内的应用得到了空前繁荣,典型例子莫如OpenStack。当前全球最大的OpenStack开发者社区在中国。棱镜门之后,国家把信息化安全提到了战略高度。基于开源技术的迭代创新,也是我们发展国产软件业的必由之路。基于Docker和Kubernetes构建的OpenShift项目,提供了一站式的企业级应用云(PaaS)和容器编排管理解决方案,为开发人员提供编程语言、框架、中间件以及云平台领域的更多选择,使开发人员可以构建、测试、运行和管理他们的应用,从而重新定义了PaaS市场。通过阅读本书,读者可以从一个开源项目入手,熟悉PaaS及相关领域所有相关核心技术与理念,在了解云、掌握云的旅程中达到事半功倍的效果。
本书不仅是一本全面描述开源容器云OpenShift的技术原理与应用实践的“红宝书”,也是一本开源文化的布道书。在开源技术没有盛行的年代,技术都封闭控制在少数的IT大厂手中,外部人很难接触到核心原理。开源运动彻底打破了这些壁垒,为有志于在IT业打拼的年轻一代,提供一个开放、平等、公平竞争的舞台,助其一展自己的所学与聪明才智。作者在书中也涉猎了开源社区参与、学习与回馈的方法。本书不仅仅是技术的传道解惑,还可以达到开源启迪的效果,再次感谢作者的分享和贡献。

Red Hat大中华区渠道业务总监
前大中华区技术总监
刘长春(C.C. Liu)

作者简介

陈耿 著:
陈耿,Red Hat资深技术顾问,认证架构师。Red Hat中国OpenShift团队的技术专家。专注于PaaS及DevOps领域相关工作,从2001年接触Linux起便是开源社区的忠实粉丝。爱好是旅游和摄影,他的背包和摄像机已经陪伴他走过超过20个国家和地区。

图书目录

序言
前言
致谢
基础篇
第1章 开源容器云概述 2
1.1 容器时代的IT 2
1.2 开源容器云 3
1.3 OpenShift 4
1.4 Docker、Kubernetes与OpenShift 6
1.4.1 容器引擎 6
1.4.2 容器编排 6
1.4.3 容器应用云 7
1.5 OpenShift社区版与企业版 8
第2章 初探OpenShift容器云 10
2.1 启动OpenShift Origin 10
2.1.1 准备主机 11
2.1.2 准备操作系统 11
2.1.3 操作系统配置 11
2.1.4 安装Docker 12
2.1.5 下载OpenShift Origin安装包 13
2.1.6 安装及启动OpenShift Origin 13
2.1.7 登录OpenShift Origin控制台 14
2.2 运行第一个容器应用 14
2.2.1 创建项目 14
2.2.2 部署Docker镜像 15
2.2.3 访问容器应用 18
2.2.4 一些疑问 19
2.3 完善OpenShift集群 19
2.3.1 命令行工具 19
2.3.2 以集群管理员登录 21
2.3.3 添加Router 22
2.3.4 添加Registry 23
2.3.5 添加Image Stream 24
2.3.6 添加Template 25
2.4 部署应用 27
2.5 本章小结 32
第3章 OpenShift架构探秘 33
3.1 架构概览 33
3.1.1 基础架构层 34
3.1.2 容器引擎层 34
3.1.3 容器编排层 34
3.1.4 PaaS服务层 35
3.1.5 界面及工具层 35
3.2 核心组件详解 35
3.2.1 Master节点 36
3.2.2 Node节点 37
3.2.3 Project与Namespace 38
3.2.4 Pod 38
3.2.5 Service 40
3.2.6 Router与Route 41
3.2.7 Persistent Storage 42
3.2.8 Registry 42
3.2.9 Source to Image 43
3.2.10 开发及管理工具集 44
3.3 核心流程详解 44
3.3.1 应用构建 44
3.3.2 应用部署 45
3.3.3 请求处理 45
3.3.4 应用更新 46
3.4 本章小结 46
第4章 OpenShift企业部署 47
4.1 部署架构 47
4.1.1 多环境单集群 47
4.1.2 多环境多集群 48
4.1.3 多个数据中心 48
4.2 高级安装模式 49
4.2.1 主机准备 50
4.2.2 安装前预配置 50
4.2.3 执行安装 53
4.2.4 安装后配置 54
4.3 离线安装 57
4.4 集群高可用 58
4.4.1 主控节点的高可用 58
4.4.2 计算节点的高可用 59
4.4.3 组件的高可用 59
4.4.4 应用的高可用 60
4.5 本章小结 60
开发篇
第5章 容器应用的构建与部署自动化 62
5.1 一个Java应用的容器化之旅 62
5.2 OpenShift构建与部署自动化 64
5.2.1 快速构建部署一个应用 65
5.2.2 镜像构建:Build Config与Build 69
5.2.3 镜像部署:Deployment Config与Deploy 72
5.2.4 服务连通:Service与Route 76
5.3 弹性伸缩 77
5.3.1 Replication Controller 77
5.3.2 扩展容器实例 77
5.3.3 状态自恢复 78
5.4 应用更新发布 78
5.4.1 触发更新构建 78
5.4.2 更新部署 80
5.5 本章小结 80
第6章 持续集成与部署 81
6.1 部署Jenkins服务 81
6.2 触发项目构建 83
6.2.1 创建Jenkins项目 84
6.2.2 添加构建步骤 84
6.2.3 触发构建 85
6.3 构建部署流水线 85
6.3.1 创建开发测试环境项目 85
6.3.2 创建集成测试环境项目 86
6.3.3 创建生产环境项目 87
6.3.4 配置访问权限 87
6.3.5 创建集成测试环境部署配置 87
6.3.6 创建生产环境部署配置 88
6.3.7 创建DEV构建配置 88
6.3.8 创建SIT构建配置 89
6.3.9 创建RELEASE构建配置 90
6.3.10 配置流水线 92
6.4 流水线可视化 93
6.4.1 安装流水线插件 93
6.4.2 创建流水线视图 93
6.5 OpenShift流水线 95
6.5.1 部署Jenkins实例 95
6.5.2 部署示例应用 95
6.5.3 查看流水线定义 96
6.5.4 触发流水线构建 97
6.5.5 修改流水线配置 99
6.6 本章小结 100
第7章 应用的微服务化 101
7.1 容器与微服务 101
7.1.1 微服务概述 101
7.1.2 微服务与容器 101
7.2 微服务容器化 102
7.2.1 基于现有的构建系统容器化微服务 103
7.2.2 基于S2I容器化微服务 103
7.3 服务部署 105
7.3.1 单个微服务的部署 105
7.3.2 多个微服务的部署 105
7.4 服务发现 106
7.4.1 通过Service进行服务发现 107
7.4.2 服务目录与链接 108
7.5 健康检查 108
7.5.1 Readniess与Liveness 108
7.5.2 健康检查类型 109
7.6 更新发布 110
7.6.1 滚动更新 110
7.6.2 发布回滚 112
7.6.3 灰度发布 112
7.7 服务治理 117
7.7.1 API网关 117
7.7.2 微服务框架 117
7.8 本章小结 118
第8章 应用数据持久化 119
8.1 无状态应用与有状态应用 119
8.1.1 非持久化的容器 119
8.1.2 容器数据持久化 120
8.2 持久化卷与持久化卷请求 120
8.3 持久化卷与储存 123
8.3.1 Host Path 124
8.3.2 NFS 124
8.3.3 GlusterFS 124
8.3.4 Ceph 125
8.3.5 OpenStack Cinder 126
8.4 存储资源定向匹配 127
8.4.1 创建持久化卷 127
8.4.2 标记标签 127
8.4.3 创建持久化卷请求 127
8.4.4 请求与资源定向匹配 128
8.4.5 标签选择器 128
8.5 实战:持久化的镜像仓库 129
8.5.1 检查挂载点 129
8.5.2 备份数据 130
8.5.3 创建存储 130
8.5.4 创建持久化卷 131
8.5.5 创建持久化卷请求 131
8.5.6 关联持久化卷请求 132
8.6 本章小结 133
第9章 容器云上的应用开发 134
9.1 开发工具集成 134
9.1.1 下载开发工具 135
9.1.2 下载命令行客户端 135
9.1.3 安装及配置JBoss Tools插件 135
9.2 部署应用 138
9.2.1 检出应用源代码 138
9.2.2 部署应用至OpenShift 138
9.2.3 查看日志输出 141
9.2.4 访问应用服务 142
9.3 实时发布 143
9.3.1 更新部署配置 143
9.3.2 创建Server Adapter 144
9.3.3 更新应用源代码 146
9.3.4 查看更新后的应用 146
9.4 远程调试 147
9.4.1 修改部署配置 148
9.4.2 转发远程端口 148
9.4.3 设置断点 148
9.4.4 启动远程调试 150
9.5 本章小结 150
运维篇
第10章 软件定义网络 154
10.1 软件定义网络与容器 154
10.1.1 Docker容器网络 154
10.1.2 Kubernetes容器网络 155
10.1.3 OpenShift容器网络 155
10.2 网络实现 156
10.2.1 节点主机子网 156
10.2.2 节点设备构成 156
10.2.3 网络结构组成 158
10.3 网络连通性 159
10.3.1 集群内容器间通信 159
10.3.2 集群内容器访问集群外服务 161
10.3.3 集群外应用访问集群内容器 161
10.4 网络隔离 161
10.4.1 配置多租户网络 162
10.4.2 测试网络隔离 162
10.4.3 连通隔离网络 163
10.5 定制OpenShift网络 163
10.6 本章小结 163
第11章 度量与日志管理 164
11.1 容器集群度量采集 164
11.2 部署容器集群度量采集 165
11.2.1 配置Service Account 166
11.2.2 配置证书 166
11.2.3 部署度量采集模板 166
11.2.4 更新集群配置 167
11.2.5 查看容器度量指标 168
11.2.6 进一步完善度量采集 168
11.3 度量接口 168
11.3.1 获取度量列表 170
11.3.2 获取度量数据 170
11.4 容器集群日志管理 171
11.5 部署集群日志管理组件 172
11.5.1 创建部署模板 172
11.5.2 配置Service Account 173
11.5.3 配置证书 173
11.5.4 部署日志组件模板 173
11.5.5 更新集群配置 174
11.5.6 查看容器日志 174
11.5.7 进一步完善日志管理 174
11.6 本章小结 175
第12章 安全与限制 176
12.1 容器安全 176
12.2 用户认证 177
12.2.1 令牌 177
12.2.2 Indentity Provider 178
12.2.3 用户与组管理 179
12.3 权限管理 180
12.3.1 权限对象 180
12.3.2 权限操作 181
12.3.3 自定义角色 184
12.4 Service Account 186
12.5 安全上下文 187
12.6 敏感信息管理 190
12.7 额度配置 192
12.7.1 计算资源额度 193
12.7.2 对象数量额度 194
12.7.3 额度对象的使用 195
12.8 资源限制 196
12.8.1 Limit Range对象 196
12.8.2 QoS 198
12.9 本章小结 199
第13章 集群运维管理 200
13.1 运维规范 200
13.1.1 规范的制定 200
13.1.2 规范的维护 201
13.1.3 规范的执行 201
13.2 节点管理 201
13.2.1 Cockpit 202
13.2.2 安装配置Cockpit 202
13.2.3 Cockpit与系统运维 203
13.2.4 Cockpit与集群运维 203
13.3 集群扩容 208
13.3.1 集群扩容途径 208
13.3.2 执行集群扩容 209
13.4 集群缩容 209
13.4.1 禁止参与调度 210
13.4.2 节点容器撤离 210
13.4.3 移除计算节点 211
13.5 混合云管理 211
13.5.1 混合云管理平台的价值 211
13.5.2 ManageIQ 212
13.6 本章小结 213
第14章 系统集成与定制 214
14.1 通过Web Hook集成 214
14.1.1 Generic Hook 215
14.1.2 GitHub Hook 216
14.2 通过命令行工具集成 216
14.2.1 调用权限 217
14.2.2 输出格式 217
14.2.3 调试输出 217
14.3 S2I镜像定制 218
14.3.1 准备环境 218
14.3.2 编写Dockerfile 220
14.3.3 编辑S2I脚本 221
14.3.4 执行镜像构建 222
14.3.5 导入镜像 222
14.4 部署模板定制 224
14.4.1 元信息 225
14.4.2 对象列表 226
14.4.3 模板参数 227
14.4.4 定义模板 229
14.4.5 创建模板 231
14.5 系统组件定制 231
14.5.1 组件定制 231
14.5.2 插件定制 231
14.6 RESTful编程接口 232
14.6.1 接口类型 233
14.6.2 身份验证 233
14.6.3 二次开发实例 234
14.7 系统源代码定制 237
14.8 本章小结 237
附录A 排错指南 238
后记 252

教学资源推荐
作者: 蔡开裕,朱培栋,徐明
作者: 雷渭侣
作者: (美)Emad Aboelela 著
作者: Natalia Olifer; Victor Olifer
参考读物推荐
作者: 陈金窗 沈灿 刘政委 编著
作者: 陈光剑 编著
作者: 李金榜 尹烨 刘天斯 陈纯著
作者: 余欣 著