作者 |
魏新宇 郭跃军 魏新宇、王洪涛、 陈耿 |
丛书名 |
云计算与虚拟化技术丛书 |
出版社 |
机械工业出版社 |
ISBN |
9782109281541 |
简要 |
简介 |
内容简介书籍计算机书籍 ---------------------------8084206 - OpenShift在企业中的实践: PaaS DevOps 微服务 第2版--------------------------- 两位云计算和微服务资深专家合著,从企业实战角度,为客户通过OpenShift实现IT转型给出具体建议和参考架构,讲述如何构建基于混合云的云原生平台。 ---------------------------8071160 - 云原生应用构建:基于OpenShift--------------------------- 这是一部从开发和运维两种视角讲解如何基于OpenShift构建云原生应用的著作。三位作者分别来自红帽和微软公司,都是OpenShift和云原生领域的布道者和领军人物,经验非常丰富。 全书一共14章,秉承全栈理念讲解了构建云原生应用需要掌握的云原生技术、OpenShift技术以及开源分布式中间件技术。 *部分:云原生篇(第1~11章) 首先,讲解了云原生和与之相关的分布式开源中间件的技术,如基于云原生的Java实现等;其次,讲解了云原生构建的6大步骤及其相关的技术和方法,如发展DevOps文化、构建分布式缓存等;*后,讲解了人工智能在容器云上的实践。 第二部分:OpenShift篇(第12~14章) 详细讲解了OpenShift 集群的规划、管理、离线安装与部署,以及OpenShift 在公有云上的*实践。 . ---------------------------5925745 - 开源容器云OpenShift:构建基于Kubernetes的企业应用云平台--------------------------- 本书介绍的OpenShift是基于Docker和Kubernetes构建的开源的容器云,是为帮助企业、组织搭建及管理基于容器的应用平台产生的解决方案。通过OpenShift,企业可以快速地搭建稳定、安全、高效的容器应用平台。本书深入浅出地介绍如何搭建OpenShift容器云平台,并在这个平台上进行应用的开发和部署。探讨在OpenShift上如何满足软件研发常见的需求,如持续集成和交付,微服务化、数据持久化等。同时,探讨OpenShift的软件定义网络、高可用、配额控制等与运维息息相关的话题。 |
目录 |
[套装书具体书目] 5925745 - 开源容器云OpenShift:构建基于Kubernetes的企业应用云平台 - 9787111569510 - 机械工业出版社 - 定价 69 8071160 - 云原生应用构建:基于OpenShift - 9787111657866 - 机械工业出版社 - 定价 99 8084206 - OpenShift在企业中的实践: PaaS DevOps 微服务 第2版 - 9787111691051 - 机械工业出版社 - 定价 139 ---------------------------8084206 - OpenShift在企业中的实践: PaaS DevOps 微服务 第2版--------------------------- 赞誉 推荐序 再版前言 致谢 作者介绍 第1章 通过OpenShift实现企业的 数字化转型1 1.1 企业进行数字化转型的必要性1 1.2 企业数字化转型之PaaS2 1.3 企业数字化转型之DevOps3 1.3.1 从瀑布式开发到敏捷开发3 1.3.2 从敏捷开发到DevOps4 1.3.3 洛克希德·马丁公司实施 DevOps的收益5 1.4 企业数字化转型之微服务6 1.4.1 微服务架构简介6 1.4.2 微服务架构的主要类型7 1.4.3 企业实施微服务架构的收益和原则7 1.5 PaaS、DevOps与微服务的关系8 1.6 企业数字化转型的实现8 1.6.1 什么是云原生应用8 1.6.2 企业数字化转型之路9 1.7 本章小结11 第2章 OpenShift技术解密及架构设计12 2.1 OpenShift与Kubernetes的关系12 2.1.1 容器发展史12 2.1.2 OpenShift发展简史14 2.1.3 OpenShift对Kubernetes的增强14 2.1.4 OpenShift对Kubernetes 生态的延伸17 2.2 OpenShift的架构介绍与规划20 2.2.1 OpenShift的逻辑架构20 2.2.2 OpenShift的技术架构21 2.2.3 OpenShift的部署架构规划54 2.3 本章小结107 第3章 基于OpenShift构建企业级PaaS平台108 3.1 OpenShift部署架构参考108 3.2 OpenShift部署与建设要点110 3.2.1 OpenShift部署方式与过程说明110 3.2.2 配置OpenShift离线镜像116 3.2.3 OpenShift离线部署示例122 3.2.4 OpenShift部署后的配置133 3.3 OpenShift的Worker节点扩容158 3.4 OpenShift集群的升级161 3.4.1 OpenShift的升级策略161 3.4.2 OpenShift的在线升级162 3.4.3 OpenShift的离线升级163 3.5 本章小结165 第4章 OpenShift在企业中的开发实践166 4.1 开发人员的关注点166 4.2 应用向OpenShift容器化迁移的方法167 4.2.1 OpenShift应用准入条件167 4.2.2 应用容器化迁移流程167 4.2.3 应用容器化方法168 4.2.4 制作容器镜像的最佳实践169 4.2.5 本地构建实现应用容器化174 4.2.6 S2I实现应用容器化179 4.3 OpenShift上应用部署实践195 4.3.1 OpenShift上多种应用部署方式对比195 4.3.2 Deployments与Deployment Config的对比199 4.3.3 自定义指标实现水平扩容200 4.4 OpenShift上部署有状态应用201 4.4.1 StatefulSet简介202 4.4.2 OpenShift部署有状态应用实践203 4.4.3 在OpenShift上统一管理虚拟机207 4.5 从零开发Operator209 4.5.1 开发Operator的要点209 4.5.2 开发一个Ansible Operator210 4.6 本章小结217 第5章 OpenShift在企业中的运维实践218 5.1 运维人员的关注点218 5.2 OpenShift运维指导218 5.3 RHCOS的架构与运维实践219 5.3.1 RHCOS修改配置的几种方法219 5.3.2 Day1配置展示:通过指定Ignition配置来设定RHCOS的配置220 5.3.3 Day2配置展示:通过MachineConfig方式修改RHCOS的配置221 5.4 OpenShift修改配置后的自动重启224 5.5 OpenShift中的证书225 5.6 OpenShift运维技巧简介228 5.7 OpenShift多网络平面的选择与配置232 5.7.1 Macvlan静态IP地址配置方法232 5.7.2 Macvlan动态分配IP地址配置方法236 5.8 OpenShift中Pod的限速238 5.9 OpenShift中项目无法被删除问题239 5.10 OpenShift集群性能优化241 5.11 OpenShift安全实践245 5.11.1 主机安全246 5.11.2 OpenShift平台安全246 5.11.3 镜像安全248 5.11.4 容器运行安全248 5.12 OpenShift监控系统与改造249 5.12.1 原生Prometheus监控249 5.12.2 OpenShift原生监控系统250 5.12.3 OpenShift原生监控系统的改造256 5.12.4 监控系统的集成260 5.13 OpenShift日志系统与改造263 5.13.1 OpenShift原生EFK介绍263 5.13.2 日志系统改造265 5.13.3 应用非标准输出日志采集276 5.14 OpenShift备份恢复与容灾280 5.14.1 备份容灾概述280 5.14.2 OpenShift备份280 5.14.3 容灾设计287 5.15 OpenShift的多集群管理289 5.16 本章小结291 第6章 OpenShift在公有云上的实践292 6.1 OpenShift在公有云和私有云上的区别292 6.2 OpenShift在公有云上的架构模型294 6.2.1 单个PaaS共享架构模型294 6.2.2 公有云服务自维护架构模型296 6.2.3 控制节点托管架构模型297 6.2.4 公有云租户独享PaaS架构模型298 6.3 OpenShift在公有云上的部署方式299 6.4 OpenShift在AWS上的实践299 6.4.1 AWS服务简介300 6.4.2 OpenShift在AWS上的实践301 6.5 OpenShift与IaaS的集成322 6.6 OpenShift实现混合云架构324 6.7 本章小结326 第7章 在OpenShift上实现DevOps327 7.1 DevOps的适用场景327 7.2 DevOps的实现路径328 7.2.1 组织与角色329 7.2.2 平台与工具330 7.2.3 流程与规范332 7.2.4 文化与持续改进334 7.2.5 总结334 7.3 基于OpenShift实现CI/CD的几种方式335 7.3.1 使用自定义的S2I模板340 7.3.2 自定义模板实现Binary部署343 7.3.3 在源码外构建Pipeline349 7.3.4 在源码内构建Pipeline352 7.3.5 Tekton实现云原生构建354 7.4 在OpenShift上实现持续交付361 7.4.1 OpenShift上的持续交付工具介绍362 7.4.2 基于Jenkins实现持续交付372 7.4.3 基于Tekton实现持续交付383 7.5 本章小结389 第8章 DevOps在企业中的实践390 8.1 成功实践DevOps的关键要素390 8.1.1 定义全景视图和目标390 8.1.2 标准化的流程和组织391 8.1.3 建立DevOps基石:自动化391 8.1.4 协同工作的文化392 8.2 某大型客户DevOps案例分析392 8.2.1 客户现状及项目背景392 8.2.2 DevOps落地实践393 8.2.3 实践收益469 8.3 本章小结470 第9章 基于OpenShift构建云原生471 9.1 什么是云原生应用471 9.2 轻量级应用服务器的选择472 9.2.1 轻量级的应用服务器472 9.2.2 如何将应用迁移到轻量级应用服务器473 9.3 云原生的应用开发框架:Quarkus475 9.3.1 传统Java的困境475 9.3.2 GraalVM的兴起476 9.3.3 云原生Java:Quarkus477 9.3.4 编译和部署一个Quarkus应用479 9.3.5 Quarkus的热加载484 9.3.6 在OpenShift中部署Quarkus应用程序486 9.3.7 为Quarkus应用添加Rest Client扩展490 9.3.8 Quarkus应用的容错能力494 9.3.9 Quarks的事务管理 497 9.3.10 Spring Boot应用向Quarkus的迁移498 9.4 云原生分布式集成:Camel-K499 9.5 云原生的捕获数据更改:Debezium503 9.5.1 Debezium项目介绍503 9.5.2 Debezium的功能展示504 9.6 云原生的业务流程自动化:Kogito509 9.7 云原生Serverless:Knative515 9.7.1 Knative简介515 9.7.2 OpenShift Serverless516 9.7.3 OpenShift Serverless的安装518 9.7.4 OpenShift Serverless的蓝绿发布520 9.7.5 OpenShift Serverless的事件触发524 9.8 本章小结526 第10章 微服务在OpenShift上的落地527 10.1 微服务介绍527 10.1.1 微服务的特点与优势527 10.1.2 微服务架构528 10.1.3 企业对微服务治理的需求529 10.2 Spring Cloud在OpenShift上的落地530 10.2.1 Spring Cloud在OpenShift上的实现与原生实现的不同530 10.2.2 Spring Cloud在OpenShift上的实现536 10.3 Istio在OpenShift上的落地551 10.3.1 Istio介绍551 10.3.2 Sidecar的注入553 10.3.3 OpenShift Service Mesh介绍556 10.4 Istio的基本功能562 10.4.1 Istio路由基本概念562 10.4.2 基于目标端的灰度/蓝绿发布566 10.4.3 微服务的灰度上线569 10.4.4 微服务的熔断572 10.4.5 微服务的黑名单574 10.5 对OpenShift上Istio的重要说明577 10.5.1 OpenShift上Istio入口访问方式的选择577 10.5.2 OpenShift Router和Istio Ingessgateway的联系与区别585 10.5.3 Istio配置生效的方式和选择586 10.6 企业应用向Istio迁移588 10.6.1 使用本地构建方式将应用迁移到Istio的步骤588 10.6.2 三层微服务向Istio中迁移展示590 10.7 Istio生产使用建议595 10.7.1 Istio的性能指标596 10.7.2 Istio的运维建议597 10.8 基于OpenShift实现的微服务总结599 10.9 本章小结601 ---------------------------8071160 - 云原生应用构建:基于OpenShift--------------------------- 序言 前言 第一部分 云原生篇 第1章 云原生应用的构建之路2 1.1 云原生应用2 1.1.1 什么是云原生应用2 1.1.2 云原生应用开发和部署的四大 原则3 1.2 云原生应用构建之路的步骤3 1.3 借助Red Hat开源解决方案实现 云原生6 1.4 本章小结8 第2章 传统Linux上构建应用包9 2.1 什么是RPM9 2.2 从源代码构建软件10 2.2.1 本机编译代码10 2.2.2 解释型代码11 2.3 给软件打补丁12 2.4 安装软件13 2.5 源代码生成tar.gz包14 2.6 RPM打包15 2.6.1 什么是SPEC文件15 2.6.2 书写SPEC文件17 2.7 构建二进制RPM包19 2.7.1 构建Source RPM和二进制 RPM19 2.7.2 检查并安装RPM包21 2.8 如何在异构环境重新编译RPM22 2.9 本章小结24 第3章 云原生Java的实现25 3.1 Java应用的发展25 3.1.1 Java EE架构25 3.1.2 Java应用的打包与JDK28 3.2 Kubernetes时代Java面临的问题33 3.3 Quarkus的架构33 3.4 验证Quarkus功能34 3.4.1 编译和部署Quarkus应用34 3.4.2 Quarkus的热加载39 3.4.3 在OpenShift中部署Quarkus 应用程序41 3.4.4 Quarkus应用添加REST Client 扩展45 3.4.5 Quarkus应用的容错能力50 3.5 Quarkus的事务管理52 3.6 本章小结53 第4章 DevOps和DevSecOps的 实现54 4.1 什么是DevOps54 4.1.1 从瀑布式开发到敏捷开发54 4.1.2 从敏捷开发到DevOps55 4.2 DevOps的技术实现56 4.3 在OpenShift上实现DevOps58 4.3.1 S2I与Jenkins结合使用实现 CI/CD59 4.3.2 常用DevOps工具介绍61 4.3.3 OpenShift 3 Jenkins Pipeline 工作流分析64 4.4 OpenShift 4.2中的OpenShift Pipeline69 4.4.1 Tekton概述69 4.4.2 安装OpenShift Pipeline71 4.4.3 验证OpenShift Pipeline73 4.5 DevSecOps在OpenShift上的实现79 4.5.1 DevSecOps的架构79 4.5.2 DevSecOps中的安全工具80 4.5.3 DevSecOps在OpenShift上的 架构80 4.5.4 DevSecOps所依赖的OpenShift 实验环境81 4.5.5 DevSecOps Pipeline分析83 4.5.6 执行DevSecOps Pipeline89 4.6 本章小结94 第5章 构建分布式消息中间件和 数据流平台95 5.1 服务之间的通信95 5.1.1 服务之间的通信方式95 5.1.2 异步通信实现97 5.1.3 消息的分类97 5.2 AMQ在OpenShift上的企业级 实现98 5.2.1 标准消息中间件规范98 5.2.2 查看AMQ的多协议支持101 5.2.3 创建持久队列101 5.2.4 AMQ的HA104 5.2.5 AMQ的Cluster105 5.2.6 AMQ在OpenShift上的部署107 5.3 Kafka在OpenShift上的实现113 5.3.1 Kafka的架构113 5.3.2 Kafka集群在OpenShift集群 上的实现方式114 5.3.3 在OpenShift上部署Kafka 集群115 5.3.4 配置Kafka外部访问121 5.3.5 配置Mirror Maker124 5.4 本章小结128 第6章 构建分布式缓存129 6.1 IT架构的演进129 6.1.1 传统IT架构129 6.1.2 分布式IT架构130 6.1.3 分布式IT架构下的缓存130 6.1.4 内存数据网格的应用场景131 6.2 内存数据网格技术实现: Infinispan131 6.2.1 Infinispan的两种部署模式132 6.2.2 Infinispan的三种配置模式133 6.2.3 Infinispan功能验证134 6.2.4 在OpenShift上实现 Infinispan138 6.3 内存数据网格技术实现:Redis141 6.3.1 Sentinel Redis一主多从141 6.3.2 Redis Cluster Redis多主 多从142 6.3.3 Redis在OpenShift上的实现143 6.4 Infinispan和Redis的对比150 6.5 本章小结150 第7章 构建业务流程自动化151 7.1 规则与流程151 7.2 企业规则的开源实现153 7.2.1 KIE的架构153 7.2.2 Drools的架构155 7.3 企业级规则自动化方案157 7.3.1 Red Hat Decision Manager 架构157 7.3.2 RHDM在OpenShift上的实现 架构158 7.4 以抵押贷款应用展示RHDM 功能161 7.4.1 在RHDM上导入抵押贷款 应用源码161 7.4.2 抵押贷款应用源码分析163 7.4.3 探索抵押贷款应用165 7.4.4 复杂规则的处理168 7.4.5 验证决策模型和表示法(DMN) 格式规则171 7.5 Red Hat流程自动化方案174 7.5.1 Red Hat Process Automation Manager架构174 7.5.2 RHPAM与微服务的集成案例 环境准备176 7.5.3 RHPAM与微服务的集成实验 流程验证185 7.6 本章小结194 第8章 云原生应用的安全195 8.1 云原生应用的认证与授权195 8.2 OpenShift的单点登录197 8.2.1 OpenShift的认证方式197 8.2.2 OpenShift与Keycloak 的集成198 8.3 实现Web应用单点登录209 8.4 云原生应用出口流量限制219 8.4.1 配置出口防火墙219 8.4.2 配置出口路由器220 8.5 本章小结224 第9章 分布式集成与API管理225 9.1 分布式集成225 9.1.1 分布式集成方案225 9.1.2 基于OpenShift 3.11和Camel的 微服务集成227 9.1.3 Camel K项目介绍251 9.2 API管理方案253 9.2.1 Red Hat 3Scale的技术架构与 实现效果253 9.2.2 Red Hat 3Scale对容器化应用的 管理255 9.3 本章小结262 第10章 云原生应用与Serverless 的结合263 10.1 无服务器架构Serverless263 10.1.1 应用架构的演进263 10.1.2 基础架构的演进264 10.1.3 Serverless的技术种类265 10.1.4 OpenWhisk的核心概念266 10.1.5 基于OpenShift集群部署 的 OpenWhisk267 10.2 Serverless与IoT的配合270 10.2.1 场景描述270 10.2.2 创建并验证第一个Action: formatInput271 10.2.3 创建并验证第二个Action: enricher274 10.2.4 将两个Action链接276 10.2.5 创建并验证第三个Action: geofence277 10.2.6 验证包含三个Action的 序列279 10.3 本章小结282 第11章 人工智能在容器云上的 实践283 11.1 Caffe2和Jupyter Notebook介绍283 11.2 在OpenShift集群中部署 Caffe2284 11.3 运行代码分析287 11.3.1 整体代码分析287 11.3.2 运行代码287 11.4 Open Data Hub的简介与展示299 11.4.1 Open Data Hub简介299 11.4.2 Open Data Hub的安装300 11.4.3 Open Data Hub的基本功能 展示306 11.5 本章小结307 第二部分 OpenShift篇 第12章 集群规划与管理310 12.1 集群规划310 12.1.1 裸金属还是虚拟机311 12.1.2 容量评估315 12.1.3 网络考量316 12.1.4 集群的部署考量319 12.1.5 拉伸集群跨数据中心 部署322 12.1.6 联邦集群322 12.2 集群管理和增强338 12.2.1 多集群管理门户338 12.2.2 集群上应用的灾难备份/ 恢复策略342 12.2.3 启动OpenShift上的硬件 加速351 12.3 本章小结363 第13章 OpenShift 4集群离线部署 详解与简化364 13.1 极简环境规划364 13.2 使用Helper节点工具辅助安装 部署365 13.3 安装配置确认和解析367 13.3.1 DNS手动配置及解析367 13.3.2 负载均衡器手动配置及解析369 13.3.3 WebServer手动配置及解析371 13.3.4 配置离线镜像仓库/还原 镜像371 13.3.5 执行安装步骤372 13.3.6 完成安装376 13.3.7 附加操作:内部镜像库设置 使用emptydir或者NFS376 13.4 本章小结377 第14章 OpenShift与公有云378 14.1 OpenShift结合公有云的收益378 14.2 OpenShift公有云部署选择380 14.2.1 基于IaaS380 14.2.2 基于PaaS385 14.3 Azure Red Hat OpenShift385 14.3.1 集群部署与伸缩387 14.3.2 自动化运维387 14.3.3 全球部署387 14.3.4 混合云架构388 14.3.5 安全与认证389 14.3.6 与Azure服务的集成389 14.3.7 开发者体验389 14.3.8 联合技术支持390 14.3.9 付费模式391 14.3.10 OpenShift 4391 14.4 公有云OpenShift最佳实践391 14.4.1 因地制宜地选择架构391 14.4.2 最小化基础架构管理工作量392 14.4.3 构建高可用的部署架构392 14.4.4 Infrastructure as Code393 14.4.5 DevOps393 14.5 本章小结393 ---------------------------5925745 - 开源容器云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 |