開源容器云OpenShift:構建基于Kubernetes的企業應用云平臺 ( 簡體 字) |
作者:作者:陳 耿 著 | 類別:1. -> 程式設計 -> 雲計算 |
譯者: |
出版社:機械工業出版社 | 3dWoo書號: 47006 詢問書籍請說出此書號!【缺書】 NT售價: 345 元 |
出版日:6/1/2017 |
頁數:255 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787111569510 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:云起之時開源有道
我仍然記得,在2000年年初,國內軟件開發領域最熱門的操作系統、語言、開發工具、數據庫等基本上都是大型商業公司的產品。那時Linux已經存在,但是還不算主流。在我所工作的網絡中心中,大部分服務器使用的是Windows Server或者Sun Solaris操作系統。市場上需求最火爆的開發平臺是Visual C++、Visual Basic和已經基本消失不見的Delphi。然而17年后的今天,當再次審視當前所處的環境時,我們會驚訝地發現,開源社區的產品已然出現在各個領域:從操作系統、開發工具、編程語言,到中間件、數據庫,再到虛擬化、基礎架構云、應用平臺云等。可以說當前的時代是名副其實的開源的時代,企業可以通過開源社區的創新構建一個完全開源的企業架構堆棧。
經過前幾年云計算變革的推進,OpenStack目前已經成為了企業構建私有基礎架構云的一個主流選擇。當前,我們正處于容器變革的過程中。在我看來,容器在未來將會成為云計算一種重要的應用交付和部署格式,越來越多的應用會以容器的方式交付和部署在龐大的云計算集群中。在這種情況下,企業必須有一個如OpenStack一般健壯的平臺肩負起大規模容器集群的部署、編排和管理等方面的任務。
作為Red Hat的一份子,我有幸在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來滿足各個方面的需求。
本書的亮點
來自Red Hat資深技術顧問、認證架構師的一線經驗和原創心得。
不照搬或翻譯官方文檔堆砌文字,不空泛地講理念。
精心設計章節編排,語言通俗易懂,內容循序漸進,幫助你掌握容器云的理念。
豐富的動手示例讓你了解背后的技術細節并掌握實際的操作。
兼顧開發和運維的不同關注點,探討容器云如何助力企業IT。
需要注意的是,本書并不是OpenShift的產品手冊,也不打算成為一本大而全的功能手冊,所以不會枚舉OpenShift的所有功能。如果你是要查找OpenShift某個功能的詳細參數列表,OpenShift文檔是你絕對的不二選擇。本書的目的是通過循序漸進的方式,讓你了解如何使用OpenShift構建一個企業的容器云,了解如何使用OpenShift解決在企業中碰到的關于開發、運維及DevOps的問題。
本書讀者對象
本書適合作為從事云計算和容器技術的架構師、企業IT經理、研發工程師和運維工程師的參考資料,也適合作為希望了解云計算、容器技術的教師、學生及技術愛好者的學習指南。
如何閱讀本書
如果你是初次接觸OpenShift,建議按順序從頭開始閱讀本書,系統地了解和掌握OpenShift容器云的相關知識。對于比較熟悉OpenShift及Kubernetes的讀者,可以按需要直接從某一個特定主題的章節開始閱讀。本書收錄了許多實用的配置和代碼示例,并附錄了排錯指南以方便讀者查閱參考,解決實際項目中遇到的問題。
本書勘誤
由于水平有限,書中難免有紕漏與謬誤。如你發現了本書的不正之處,煩請不吝與筆者聯系并指正(nicosoftware@msn.com)。讓我們一同完善此書,并推動OpenShift社區不斷進步。
祝你在探索OpenShift和容器云的旅程中旅途愉快,收獲滿滿。 |
內容簡介:OpenShift是基于Docker和Kubernetes構建的開源容器云,是為幫助企業搭建和管理基于容器的應用而生的解決方案。通過OpenShift,企業可以快速搭建穩定、安全、高效的容器應用平臺。在這個平臺上提供應用開發、測試、部署、運維的各項服務,實現高度的自動化,滿足應用持續集成及持續交付和部署的需求,滿足企業及組織對容器管理、容器編排的需求。
具體的,企業通過OpenShift:
可以構建企業內部的容器應用市場,為開發人員快速提供應用開發所依賴的中間件、數據庫等服務。
通過自動化的流程,開發人員可以快速地進行應用的構建、容器化及部署。
用戶可以貫通從應用開發到測試,再到上線的全流程,開發、測試和運維等不同的角色可以在一個平臺上進行協作。
提高應用從研發到上線的效率和速度,縮短產品上市的時間,有效地幫助企業推進DevOps,實現生產效率的提升。
本書作者是Red Hat官方的資深技術顧問和Red Hat中國團隊的技術專家,是OpenShift在國內的布道者之一,他基于大量一線的實際項目經驗,從開發和運維兩個維度系統地講解了OpenShift的架構、功能、應用及落地心得,為容器技術愛好者、架構師及企業用戶在容器及容器應用平臺項目的推行與落地提供了有力的參考。
本書一共分為三個主要部分:
基礎篇(第1~4章):詳細介紹容器云、企業容器云建設及OpenShift容器云的情況,幫助讀者快速了解相關領域的知識。
開發篇(第5~9章):重點講解如何使用OpenShift容器云滿足應用研發重點關注的需求,如持續集成、微服務、數據持久化等話題,讓讀者了解如何通過容器云平臺提升應用研發的效率。
運維篇(第10~14章):深入講解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 標簽選擇器 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 |
序: |