序言
前言
致謝
基礎篇
第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社區(qū)版與企業(yè)版 8
第2章 初探OpenShift容器云 10
2.1 啟動OpenShift Origin 10
2.1.1 準備主機 11
2.1.2 準備操作系統(tǒng) 11
2.1.3 操作系統(tǒng)配置 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 創(chuàng)建項目 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節(jié)點 36
3.2.2 Node節(jié)點 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 開發(fā)及管理工具集 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企業(yè)部署 47
4.1 部署架構 47
4.1.1 多環(huán)境單集群 47
4.1.2 多環(huán)境多集群 48
4.1.3 多個數(shù)據(jù)中心 48
4.2 高級安裝模式 49
4.2.1 主機準備 50
4.2.2 安裝前預配置 50
4.2.3 執(zhí)行安裝 53
4.2.4 安裝后配置 54
4.3 離線安裝 57
4.4 集群高可用 58
4.4.1 主控節(jié)點的高可用 58
4.4.2 計算節(jié)點的高可用 59
4.4.3 組件的高可用 59
4.4.4 應用的高可用 60
4.5 本章小結 60
開發(fā)篇
第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 狀態(tài)自恢復 78
5.4 應用更新發(fā)布 78
5.4.1 觸發(fā)更新構建 78
5.4.2 更新部署 80
5.5 本章小結 80
第6章 持續(xù)集成與部署 81
6.1 部署Jenkins服務 81
6.2 觸發(fā)項目構建 83
6.2.1 創(chuàng)建Jenkins項目 84
6.2.2 添加構建步驟 84
6.2.3 觸發(fā)構建 85
6.3 構建部署流水線 85
6.3.1 創(chuàng)建開發(fā)測試環(huán)境項目 85
6.3.2 創(chuàng)建集成測試環(huán)境項目 86
6.3.3 創(chuàng)建生產環(huán)境項目 87
6.3.4 配置訪問權限 87
6.3.5 創(chuàng)建集成測試環(huán)境部署配置 87
6.3.6 創(chuàng)建生產環(huán)境部署配置 88
6.3.7 創(chuàng)建DEV構建配置 88
6.3.8 創(chuàng)建SIT構建配置 89
6.3.9 創(chuàng)建RELEASE構建配置 90
6.3.10 配置流水線 92
6.4 流水線可視化 93
6.4.1 安裝流水線插件 93
6.4.2 創(chuàng)建流水線視圖 93
6.5 OpenShift流水線 95
6.5.1 部署Jenkins實例 95
6.5.2 部署示例應用 95
6.5.3 查看流水線定義 96
6.5.4 觸發(fā)流水線構建 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基于現(xiàn)有的構建系統(tǒng)容器化微服務 103
7.2.2 基于S2I容器化微服務 103
7.3 服務部署 105
7.3.1 單個微服務的部署 105
7.3.2 多個微服務的部署 105
7.4 服務發(fā)現(xiàn) 106
7.4.1 通過Service進行服務發(fā)現(xiàn) 107
7.4.2 服務目錄與鏈接 108
7.5 健康檢查 108
7.5.1 Readniess與Liveness 108
7.5.2 健康檢查類型 109
7.6 更新發(fā)布 110
7.6.1 滾動更新 110
7.6.2 發(fā)布回滾 112
7.6.3 灰度發(fā)布 112
7.7 服務治理 117
7.7.1 API網關 117
7.7.2 微服務框架 117
7.8 本章小結 118
第8章 應用數(shù)據(jù)持久化 119
8.1 無狀態(tài)應用與有狀態(tài)應用 119
8.1.1 非持久化的容器 119
8.1.2 容器數(shù)據(jù)持久化 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 創(chuàng)建持久化卷 127
8.4.2 標記標簽 127
8.4.3 創(chuàng)建持久化卷請求 127
8.4.4 請求與資源定向匹配 128
8.4.5