| 作者 |
| 魏新宇 郭跃军陈耿 |
| 丛书名 |
| 云计算与虚拟化技术丛书 |
| 出版社 |
| 机械工业出版社 |
| ISBN |
| 9781911201745 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 ---------------------------OpenShift在企业中的实践:PaaS DevOps 微服务--------------------------- 本书从企业数字化转型入手,介绍企业如何通过OpenShift构建PaaS平台、实现DevOps、实现微服务治理和微服务的高级管理。 全书共分为四大部分: *部分PaaS能力建设。即本书的PaaS三部曲”,包含第2-4章的内容,分别是:基于OpenShift构建企业级PaaS、OpenShift在企业中的开发和运维实践、OpenShift在公有云上的实践。 第二部分DevOps能力建设。即本书的DevOps两部曲”,包含第5-6章的内容,分别为:在OpenShift上实现DevOps、DevOps在企业中的实践。 第三部分微服务能力建设。即本书微服务三部曲”,包含第7-9章的内容,分别为:微服务介绍及Spring Cloud在OpenShift上落地、Istio架构介绍与安装部署、基于OpenShift和Istio实现微服务落地。 第四部分微服务高级管理。包含本书第10章的内容。介绍基于OpenShft和红帽其他解决方案微服务的高级管理(API管理、分布式集成和流程自动化),并*终实现企业业务中台的建设。 ---------------------------开源容器云OpenShift:构建基于Kubernetes的企业应用云平台--------------------------- 本书介绍的OpenShift是基于Docker和Kubernetes构建的开源的容器云,是为帮助企业、组织搭建及管理基于容器的应用平台产生的解决方案。通过OpenShift,企业可以快速地搭建稳定、安全、高效的容器应用平台。本书深入浅出地介绍如何搭建OpenShift容器云平台,并在这个平台上进行应用的开发和部署。探讨在OpenShift上如何满足软件研发常见的需求,如持续集成和交付,微服务化、数据持久化等。同时,探讨OpenShift的软件定义网络、高可用、配额控制等与运维息息相关的话题。 |
| 目录 |
---------------------------OpenShift在企业中的实践:PaaS DevOps 微服务--------------------------- 赞誉 推荐序 前言 致谢 第 1 章 通过 OpenShift 实现企业的数字化转型 1.1 企业进行数字化转型的必要性 1.2 企业数字化转型之 PaaS 1.3 企业数字化转型之 DevOps 1.3.1 从瀑布式开发到敏捷开发 1.3.2 从敏捷开发到 DevOps 1.4 企业数字化转型之微服务 1.4.1 微服务架构简介 1.4.2 微服务架构的主要类型 1.4.3 企业实施微服务架构的收益和原则 1.5 PaaS、DevOps 与微服务的关系 1.6 企业数字化转型的实现 1.6.1 企业业务中台的建设 1.6.2 企业数字化转型步骤 1.7 本章小结 第 2 章 基于 OpenShift 构建企业级PaaS 平台 2.1 OpenShift 与 Kubernetes 的关系 2.1.1 OpenShift 发展简史 2.1.2 OpenShift 对 Kubernetes 的增强 2.1.3 OpenShift 对 Kubernetes生态的延伸 2.2 OpenShift 的架构介绍与规划 2.2.1 OpenShift 的逻辑架构 2.2.2 OpenShift 的技术架构 2.2.3 OpenShift 的组件架构 2.2.4 OpenShift 的部署架构 2.3 OpenShift 部署架构参考 2.4 OpenShift 安装与部署 2.4.1 OpenShift3 的私有云部署 2.4.2 OpenShift4.1 的私有云部署 2.5 本章小结 第 3 章 OpenShift 在企业中的开发和运维实践 3.1 OpenShift 在企业中面向的对象 3.2 OpenShift 在企业中的开发实践 3.2.1 应用向 OpenShift 容器化迁移方法 3.2.2 基于 Fabric8 在 OpenShift 上发布应用 3.2.3 OpenShift API 的调用 3.2.4 在 OpenShift 上部署有状态应用 3.3 OpenShift 在企业中的运维实践 3.3.1 OpenShift 运维指导 3.3.2 OpenShift 安全实践 3.3.3 OpenShift 性能优化 3.3.4 OpenShift 监控系统与改造 3.3.5 OpenShift 日志系统与改造 3.3.6 OpenShift 备份恢复与容灾 3.4 本章小结 第 4 章 OpenShift 在公有云上的实践 4.1 OpenShift 在公有云和私有云上的区别 4.2 OpenShift 在公有云上的架构模型 4.2.1 单个 PaaS 共享架构模型 4.2.2 公有云服务自维护架构模型 4.2.3 控制节点托管架构模型 4.2.4 公有云租户独享 PaaS 架构模型 4.3 OpenShift 在公有云上的部署方式 4.4 OpenShift 在 AWS 上的实践 4.4.1 AWS 服务简介 4.4.2 OpenShift3 在 AWS 上的实践 4.4.3 OpenShift4 在 AWS 上的实践 4.4.4 AWS 上的 Service Broker 4.5 OpenShift 在阿里云上的实践 4.6 本章小结 第 5 章 在 OpenShift 上实现DevOps 5.1 DevOps 的适用场景 5.2 DevOps 的实现路径 5.2.1 组织与角色 5.2.2 平台与工具 5.2.3 流程与规范 5.2.4 文化与持续改进 5.2.5 总结 5.3 基于 OpenShift 实现 CI/CD 的几种方式 5.3.1 使用自定义的 S2I 模板 5.3.2 自定义模板实现 Binary部署 5.3.3 在源码外构建 Pipeline 5.3.4 在源码内构建 Pipeline 5.3.5 OpenShift 中 Jenkins 的工作方式选择 5.4 在 OpenShift 上实现持续交付 5.4.1 OpenShift 上的持续交付工具介绍 5.4.2 持续交付的实现 5.4.3 可以优化的部分 5.5 Ansible 实现混合云中的DevOps 5.5.1 Ansible 介绍 5.5.2 Ansible 基本使用场景 5.5.3 Ansible 在 DevOps 中的应用 5.6 本章小结 第 6 章 DevOps 在企业中的实践 6.1 成功实践 DevOps 的关键要素 6.1.1 定义全景视图和目标 6.1.2 标准化的流程和组织 6.1.3 建立 DevOps 基石:自动化 6.1.4 协同工作的文化 6.2 某大型客户 DevOps 案例分析 6.2.1 客户现状及项目背景 6.2.2 DevOps 落地实践 6.2.3 实践收益 6.3 本章小结 第 7 章 微服务介绍及 Spring Cloud在 OpenShift 上的落地 7.1 企业应用的发展 7.1.1 Jakarta EE 介绍 7.1.2 Jakarta EE 应用架构 7.1.3 Web Services 的大量使用 7.1.4 现代应用客户端开发方式 7.1.5 Web Services 的两种类型 7.1.6 企业应用发展的未来 7.2 微服务介绍 7.2.1 微服务方法论与设计原则 7.2.2 MicroProfile微服务框架 7.2.3 Spring Cloud 微服务框架 7.2.4 Istio微服务框架 7.2.5 微服务架构的选择 7.3 企业对微服务治理的需求 7.4 Spring Cloud 在 OpenShift 上的落地 7.4.1 Spring Cloud 在 OpenShift上实现的不同 7.4.2 Spring Cloud 在 OpenShift上的实现 7.5 本章小结 第 8 章 Istio架构介绍与安装部署 8.1 Istio的技术架构 8.1.1 两个平面的定义 8.1.2 控制平面 8.1.3 数据平面 8.1.4 Sidecar 的注入 8.2 在 OpenShift 上部署Istio 8.2.1 基于 OpenShift 的Istio与社区版本Istio的区别 8.2.2 在 OpenShift 上安装Istio 8.3 Istio的工具集简介 8.3.1 Istio的工具集:Grafana 8.3.2 Istio的工具集:Prometheus 8.3.3 Istio的工具集:Kiali 8.3.4 Istio的工具集:Jaeger 8.4 在Istio中部署Bookinfo微服务 8.4.1 Bookinfo微服务架构 8.4.2 在 OpenShift 中部署Bookinfo 8.4.3 Bookinfo微服务效果展示 8.5 Bookinfo微服务源码分析 8.5.1 Productpage微服务的源码 8.5.2 Reviews 微服务的源码 8.5.3 源码中Mongodb和Mysql的配置 8.5.4 Ratings 微服务的源码 8.5.5 Bookinfo访问效果展示 8.6 本章小结 第 9 章 基于 OpenShift 和Istio实现微服务落地 9.1 Istio的基本功能 9.1.1 Istio路由基本概念 9.1.2 基于目标端的灰度 / 蓝绿发布 9.1.3 微服务的灰度上线 9.1.4 微服务的限流 9.1.5 微服务的熔断 9.1.6 微服务的黑名单 9.2 对 OpenShift 上Istio的重要说明 9.2.1 OpenShift 上Istio入口访问方式的选择 9.2.2 OpenShift Router 和IstioIngessgateway的联系与区别 9.2.3 Istio配置生效的方式和选择 9.3 企业应用向Istio迁移 9.3.1 使用本地构建方式将应用迁移到Istio的步骤 9.3.2 三层微服务源码分析 9.3.3 三层微服务向Istio中迁移展示 9.4 Istio纳管微服务 9.4.1 纳管场景重要说明 9.4.2 三层微服务配置路由管理 9.4.3 三层微服务配置限流和熔断 9.4.4 三层微服务配置超时和重试 9.4.5 三层微服务配置错误注入 9.4.6 三层微服务配置黑白名单 9.4.7 三层微服务配置验证与授权 9.5 Istio生产使用建议 9.5.1 Istio的性能指标 9.5.2 Istio的调优参考 9.5.3 Istio的运维建议 9.6 基于 OpenShift 实现的企业微服务治理需求 9.7 本章小结 第 10 章 微服务的高级管理 10.1 微服务的 API 管理 10.1.1 API 经济的由来 10.1.2 API 经济的实现 10.1.3 API 网关与 API 管理的区别 10.2 微服务的 API 管理方案 10.2.1 红帽 API 管理方案的市场地位 10.2.2 红帽 3Scale 的技术架构与实现效果 10.2.3 红帽 3Scale 对容器化应用的管理 10.2.4 红帽 3Scale 与Istio的集成 10.3 微服务的分布式集成 10.3.1 分布式集成方案 10.3.2 基于 OpenShift 和 Camel 的微服务集成 10.4 微服务的流程自动化 10.4.1 流程与规则 10.4.2 红帽的微服务流程自动化方案 10.4.3 RHPAM 与微服务的集成案例环境准备 10.4.4 RHPAM 与微服务的集成实验流程验证 10.5 业务中台的技术实现 10.6 本章小结 附录 OpenShift 投资回报率分析 ---------------------------开源容器云OpenShift:构建基于Kubernetes的企业应用云平台--------------------------- 序言 前言 致谢 基础篇 第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 |