目錄 Contents
前言
第1章PaaS賦能雲原生時代數字化轉型 1
1.1PaaS重塑雲計算時代 1
1.1.1PaaS統一雲計算架構 1
1.1.2PaaS構建雲計算未來 3
1.1.3PaaS賦能微服務架構 6
1.1.4PaaS加速DevOps實踐 7
1.1.5PaaS構築雲原生時代 9
1.2PaaS賦能企業數字化轉型 12
1.2.1數字化轉型的本質 12
1.2.2PaaS賦能企業中臺 13
1.2.3PaaS助力數字化轉型 15
1.3企業級PaaS平臺OpenShift介紹 17
1.3.1OpenShift及其發展簡史 17
1.3.2OpenShift與雲原生架構 18
1.3.3OpenShift與Kubernetes 20
1.4本章小結 22
第2章OpenShift架構設計與原理 23
2.1OpenShift總體架構 23
2.1.1OpenShift設計哲學 23
2.1.2OpenShift核心組件 29
2.1.3OpenShift核心概念 31
2.1.4OpenShift部署架構 46
2.2OpenShift網絡之SDN 47
2.2.1OpenShift SDN網絡配置 48
2.2.2OpenShift Node節點上的SDN 49
2.2.3OpenShift SDN網絡隔離 54
2.2.4OpenShift典型網絡訪問場景 55
2.3OpenShift網絡之路由器 62
2.3.1從集群外訪問OpenShift中的服務 62
2.3.2OpenShift HAProxy路由器介紹 65
2.3.3OpenShift路由規則介紹 67
2.3.4OpenShift路由服務高可用 74
2.4OpenShift網絡之DNS 75
2.4.1OpenShift Pod內部DNS配置 76
2.4.2OpenShift Node節點DNS配置 77
2.4.3OpenShift 集群內DNS查詢流程 79
2.5OpenShift存儲 81
2.5.1Docker卷 82
2.5.2OpenShift存儲卷 84
2.5.3OpenShift 持久化卷 86
2.5.4靜態創建持久化卷 89
2.5.5動態創建持久化卷 94
2.6OpenShift權限控制 99
2.6.1OpenShift權限概述 99
2.6.2OpenShift權限認證 101
2.6.3OpenShift基於角色的權限訪問控制 107
2.6.4OpenShift安全上下文約束 111
2.7OpenShift服務目錄 114
2.7.1OpenShift服務目錄概述 114
2.7.2OpenShift服務目錄概念理解 116
2.7.3OpenShift服務目錄使用介紹 117
2.8本章小結 121
第3章OpenShift集群部署與運維 123
3.1OpenShift集群規劃與部署準備 123
3.1.1集群軟件版本規劃 124
3.1.2集群規模與資源需求 125
3.1.3集群高可用架構設計 127
3.1.4集群主機環境需求 130
3.1.5集群主機繫統準備 133
3.2OpenShift開發測試環境快速部署 137
3.2.1OpenShift容器與二進制方式快速啟動 137
3.2.2OpenShift自定義腳本一鍵自動部署 139
3.2.3OpenShift開發測試環境Minishift 141
3.3OpenShift集群生產環境自動部署 144
3.3.1OpenShift集群部署介紹 144
3.3.2OpenShift集群自動部署配置 147
3.3.3OpenShift集群在線自動部署 151
3.3.4OpenShift集群離線自動部署 154
3.4OpenShift集群運維與管理 160
3.4.1OpenShift集群擴容 160
3.4.2OpenShift集群升級 162
3.4.3OpenShift集群備份 167
3.4.4OpenShift集群恢復 172
3.5本章小結 176
第4章OpenShift雲原生應用構建與部署 177
4.1OpenShift應用構建與部署概述 177
4.1.1OpenShift應用構建介紹 177
4.1.2OpenShift鏡像流介紹 179
4.1.3OpenShift應用部署介紹 180
4.2OpenShift應用構建 180
4.2.1BuildConfig資源對像 181
4.2.2Docker構建 199
4.2.3源代碼構建 205
4.2.4jenkinsPipeline構建 212
4.3OpenShift應用部署 216
4.3.1DeploymentConfig資源對像 216
4.3.2Rolling與Recreate部署 220
4.4OpenShift資源模板 224
4.4.1OpenShift資源模板介紹 225
4.4.2OpenShift資源模板制作與應用實踐 228
4.5本章小結 232
第5章OpenShift雲原生DevOps構建 233
5.1DevOps發展簡介 233
5.1.1DevOps發展背景介紹 233
5.1.2DevOps流水線介紹 237
5.2Jenkins持續集成 239
5.2.1OpenShift雲原生部署Jenkins 240
5.2.2Jenkins OpenShift插件應用介紹 242
5.3GitLab代碼倉庫 246
5.3.1OpenShift雲原生部署GitLab 247
5.3.2Jenkins與GitLab在OpenShift上的集成 250
5.4SonarQube代碼掃描 255
5.4.1OpenShift雲原生部署SonarQube 256
5.4.2Jenkins與SonarQube在OpenShift上的集成 261
5.5Nexus制品庫 268
5.5.1OpenShift雲原生部署Nexus 268
5.5.2Jenkins與Nexus在OpenShift上的集成 270
5.6構建JeeSite應用DevOps流水線實戰 273
5.7本章小結 284
第6章Service Mesh及其在OpenShift上的實踐 285
6.1傳統微服務架構 285
6.1.1微服務與SOA 286
6.1.2Spring Cloud框架 287
6.1.3Dubbo框架 289
6.1.4微服務現狀分析 290
6.2雲原生微服務架構 292
6.2.1Service Mesh 292
6.2.2Linkerd 294
6.2.3Enovy 296
6.2.4Istio 299
6.2.5Docker、Kubernetes與Istio 302
6.3Istio在OpenShift上的實現 304
6.3.1OpenShift集群快速部署與實現 304
6.3.2OpenShift上部署Istio集群 305
6.3.3OpenShift上部署Istio微服務 310
6.4基於OpenShift的Istio功能驗證與測試 314
6.4.1微服務監控與跟蹤 314
6.4.2微服務流量控制 320
6.4.3微服務故障注入 328
6.4.4微服務請求熔斷 332
6.4.5微服務Egress路由 338
6.4.6微服務可視化 340
6.5本章小結 345
第7章Serverless及其在OpenShift上的實踐 346
7.1軟件架構演變歷史 346
7.1.1單體架構 346
7.1.2SOA架構 347
7.1.3微服務架構 348
7.1.4Serverless架構 349
7.2深入認識Serverless架構 350
7.2.1Serverless與雲原生 350
7.2.2Serverless與微服務 352
7.2.3Serverless與PaaS 353
7.2.4Serverless與FaaS 354
7.3Serverless發展現狀 355
7.3.1AWS Lambda 355
7.3.2OpenWhisk 357
7.3.3OpenFaaS 361
7.3.4Kubeless 362
7.3.5Serverless現狀分析 363
7.4Serverless統一平臺Knative 364
7.4.1構建繫統Build 366
7.4.2服務繫統Serving 368
7.4.3事件繫統Eventing 373
7.5基於OpenShift的Knative實現 378
7.5.1部署OpenShift 378
7.5.2部署Istio 380
7.5.3部署Knative Serving 380
7.5.4部署Serverless應用 382
7.6Knative應用驗證與測試 384
7.6.1事件驅動 384
7.6.2自動伸縮 386
7.7本章小結 395
第8章Spark數據科學及其在OpenShift上的實踐 396
8.1Spark計算框架介紹 396
8.1.1Spark組件 397
8.1.2Spark的優勢和特性 398
8.2Spark與數據科學 399
8.3Spark on K8S介紹 401
8.4Spark數據科學在OpenShift上的實現 406
8.4.1數據科學項目Radanalyticsio介紹 406
8.4.2Spark集群在OpenShift上的生命周期管理 408
8.4.3Spark應用在OpenShift上的自動部署實現 417
8.5Spark數據科學之雲原生自然語言處理 424
8.5.1自然語言處理與Word2vec 424
8.5.2自然語言處理開源項目Ophicleide 425
8.5.3自然語言處理雲原生部署實現 425
8.5.4自然語言處理應用驗證與測試 433
8.6Spark數據科學之雲原生推薦引擎 436
8.6.1推薦引擎介紹 436
8.6.2推薦引擎開源項目Jiminy 437
8.6.3推薦引擎雲原生部署與實現 438
8.6.4推薦引擎應用驗證與測試 443
8.7本章小結 445