书籍作者:陈耿 | ISBN:9787111569510 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:2846 |
创建日期:2021-02-14 | 发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
本书介绍的OpenShift是基于Docker和Kubernetes构建的开源的容器云,是为帮助企业、组织搭建及管理基于容器的应用平台产生的解决方案。通过OpenShift,企业可以快速地搭建稳定、安全、高效的容器应用平台。本书深入浅出地介绍如何搭建OpenShift容器云平台,并在这个平台上进行应用的开发和部署。探讨在OpenShift上如何满足软件研发常见的需求,如持续集成和交付,微服务化、数据持久化等。同时,探讨OpenShift的软件定义网络、高可用、配额控制等与运维息息相关的话题。
陈耿,Red Hat高级技术顾问,认证架构师。Red Hat中国OpenShift团队的技术专家。专注于PaaS及DevOps领域相关工作。从2001年接触Linux起便是开源社区的忠实粉丝。陈耿的爱好是旅游和摄影,他的背包和摄像机已经陪伴他走过超过20个国家和地区。
Red Hat官方技术专家出品,来自中国的OpenShift社区专著
社区心作,诚意推荐!
Preface?前言云起之时开源有道我仍然记得,在2000年年初,国内软件开发领域最热门的操作系统、语言、开发工具、数据库等基本上都是大型商业公司的产品。那时Linux已经存在,但是还不算主流。在我所工作的网络中心中,大部分服务器使用的是WindowsServer或者SunSolaris操作系统。市场上需求最火爆的开发平台是VisualC++、VisualBasic和已经基本消失不见的Delphi。然而17年后的今天,当再次审视当前所处的环境时,我们会惊讶地发现,开源社区的产品已然出现在各个领域:从操作系统、开发工具、编程语言,到中间件、数据库,再到虚拟化、基础架构云、应用平台云等。可以说当前的时代是名副其实的开源的时代,企业可以通过开源社区的创新构建一个完全开源的企业架构堆栈。
经过前几年云计算变革的推进,OpenStack目前已经成为了企业构建私有基础架构云的一个主流选择。当前,我们正处于容器变革的过程中。在我看来,容器在未来将会成为云计算一种重要的应用交付和部署格式,越来越多的应用会以容器的方式交付和部署在庞大的云计算集群中。在这种情况下,企业必须有一个如OpenStack一般健壮的平台肩负起大规模容器集群的部署、编排和管理等方面的任务。
作为RedHat的一份子,我有幸在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来满足各个方面的需求。
本书的亮点来自RedHat资深技术顾问、认证架构师的一线经验和原创心得。
不照搬或翻译官方文档堆砌文字,不空泛地讲理念。
精心设计章节编排,语言通俗易懂,内容循序渐进,帮助你掌握容器云的理念。
丰富的动手示例让你了解背后的技术细节并掌握实际的操作。
兼顾开发和运维的不同关注点,探讨容器云如何助力企业IT。
需要注意的是,本书并不是OpenShift的产品手册,也不打算成为一本大而全的功能手册,所以不会枚举OpenShift的所有功能。如果你是要查找OpenShift某个功能的详细参数列表,OpenShift文档是你绝对的不二选择。本书的目的是通过循序渐进的方式,让你了
序言
前言
致谢
基础篇
第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