本書解釋了什么是OpenShift以及如何使用它來構(gòu)建應(yīng)用程序、運(yùn)行它們,并使它們能夠在面對(duì)各種復(fù)雜情況時(shí)保持運(yùn)行。本書的內(nèi)容包括:OpenShift及其組件和基本概念;如何運(yùn)行OpenShift;如何配置OpenShift;OpenShift流水線;如何通過手動(dòng)和自動(dòng)的方式檢查、操作和擴(kuò)展正在運(yùn)行的應(yīng)用程序,如何設(shè)置OpenShift以定期檢查應(yīng)用程序的健康狀況,以及如何管理應(yīng)用程序的新版本發(fā)布;OpenShift的監(jiān)控和告警功能;OpenShift的自動(dòng)化特性。
適讀人群 :對(duì)容器、Kubernetes和應(yīng)用平臺(tái)感興趣的人
你準(zhǔn)備好構(gòu)建云原生應(yīng)用程序了嗎?本書提供了一個(gè)機(jī)會(huì),可以讓你親身體驗(yàn)在OpenShift上編寫代碼。在現(xiàn)代分布式系統(tǒng)上創(chuàng)建、打包和部署應(yīng)用程序可能是令人生畏的,通常,增加基礎(chǔ)設(shè)施可能會(huì)使開發(fā)工作變得更為復(fù)雜。通過這本實(shí)用指南,你將學(xué)會(huì)如何在OpenShift上構(gòu)建、部署和管理多層應(yīng)用程序。
作者展示了如何使用OpenShift加速應(yīng)用程序開發(fā)。OpenShift以Kubernetes容器編排系統(tǒng)為核心,簡(jiǎn)化了構(gòu)建、分發(fā)和運(yùn)行代碼的方式并使之自動(dòng)化。你將學(xué)習(xí)如何使用OpenShift和Quarkus Java開發(fā)框架并輔以經(jīng)過驗(yàn)證的企業(yè)技術(shù)和*佳實(shí)踐來開發(fā)和部署應(yīng)用程序,還可以將這些成熟的企業(yè)技術(shù)和*佳實(shí)踐應(yīng)用于任何程序語言的代碼開發(fā)過程。
通過學(xué)習(xí)本書,你將:
? 了解在OpenShift上進(jìn)行構(gòu)建和部署的開發(fā)周期,以及驅(qū)動(dòng)它們的工具。
? 使用OpenShift構(gòu)建和部署多層應(yīng)用程序并管理應(yīng)用程序的整個(gè)生命周期。
? 創(chuàng)建一個(gè)持續(xù)集成和部署的流水線,將源代碼更改轉(zhuǎn)化為生產(chǎn)部署。
? 使用指標(biāo)自動(dòng)進(jìn)行擴(kuò)展決策并使用webhook觸發(fā)生命周期事件。
中文版序1
前言3
第1章 Kubernetes應(yīng)用平臺(tái)9
1.1 Linux容器10
1.2 Kubernetes簡(jiǎn)介10
1.3 OpenShift增加了什么內(nèi)容11
1.3.1 Web控制臺(tái)12
1.3.2 精心設(shè)計(jì)的軟件目錄:OpenShift應(yīng)用商店13
1.3.3 CI/CD:流水線13
1.3.4 網(wǎng)絡(luò)和服務(wù)網(wǎng)格14
1.3.5 集成的Prometheus指標(biāo)、監(jiān)控和告警14
1.4 總結(jié)15
第2章 OpenShift基本概念17
2.1 項(xiàng)目用于組織應(yīng)用和團(tuán)隊(duì)17
2.2 OpenShift的應(yīng)用程序組件19
2.2.1 pod20
2.2.2 Service21
2.2.3 OpenShift Route21
2.3 構(gòu)建容器鏡像22
2.4 部署應(yīng)用程序22
2.5 與OpenShift交互22
2.5.1 oc22
2.5.2 OpenShift Web控制臺(tái)23
2.6 總結(jié)23
第3章 OpenShift 實(shí)驗(yàn)25
3.1 CodeReady Containers25
3.1.1 CRC系統(tǒng)要求26
3.1.2 在Windows操作系統(tǒng)上安裝CRC27
3.1.3 CRC總是需要更多資源30
3.2 登錄OpenShift31
3.2.1 登錄Web控制臺(tái)32
3.2.2 命令行登錄34
3.3 總結(jié)36
第4章 將應(yīng)用程序部署到OpenShift37
4.1 一個(gè)簡(jiǎn)單的示例應(yīng)用程序37
4.1.1 Git和GitHub38
4.1.2 在OpenShift上構(gòu)建和部署應(yīng)用程序38
4.1.3 增加和部署一個(gè)新功能42
4.2 總結(jié)46
第5章 OpenShift 流水線47
5.1 Tekton47
5.2 OpenShift Pipelines Operator48
5.2.1 安裝Pipelines Operator48
5.2.2 Web控制臺(tái)中的流水線50
5.2.3 使用流水線51
5.3 OpenShift流水線資源52
5.3.1 命令53
5.3.2 腳本53
5.4 總結(jié)54
第6章 從源代碼開發(fā)和部署55
6.1 Noted:云記事帖應(yīng)用程序55
6.1.1 應(yīng)用程序拓?fù)?6
6.1.2 創(chuàng)建后端應(yīng)用源代碼倉庫的副本57
6.1.3 在OpenShift中為Noted應(yīng)用程序創(chuàng)建新項(xiàng)目57
6.1.4 部署后端組件58
6.1.5 檢查后端應(yīng)用程序的資源61
6.1.6 部署前端組件63
6.1.7 運(yùn)行中的Noted應(yīng)用程序66
6.2 使用Tekton觸發(fā)器使流水線自動(dòng)運(yùn)行67
6.2.1 流水線觸發(fā)器67
6.2.2 正向代理解決方案68
6.2.3 部署ngrok模板69
6.2.4 配置GitHub webhook70
6.3 修復(fù)quarkus-backend后端組件的字符反轉(zhuǎn)缺陷72
6.4 總結(jié)76
第7章 應(yīng)用程序的演進(jìn):數(shù)據(jù)持久化77
7.1 沒有延遲的數(shù)據(jù)庫77
7.2 數(shù)據(jù)庫模板78
7.3 Service Binding Operator79
7.4 為支持服務(wù)綁定而設(shè)計(jì)的Postgres Operator80
7.4.1 添加示例數(shù)據(jù)庫Operator的OperatorSource81
7.4.2 安裝PostgreSQL Database Operator82
7.4.3 驗(yàn)證Operator的安裝84
7.4.4 部署PostgreSQL數(shù)據(jù)庫84
7.5 配置pgsql quarkus-backend的代碼分支86
7.6 Service Binding Operator的用法88
7.6.1 配置ServiceBinding89
7.6.2 測(cè)試ServiceBinding90
7.6.3 檢查ServiceBinding的注入92
7.7 持久化95
7.8 總結(jié)97
第8章 生產(chǎn)部署及擴(kuò)展99
8.1 應(yīng)用程序擴(kuò)展99
8.1.1 手動(dòng)擴(kuò)展99
8.1.2 服務(wù)抽象100
8.1.3 自動(dòng)擴(kuò)展103
8.2 健康檢查108
8.2.1 健康檢查探針109
8.2.2 在OpenShift中配置健康檢查110
8.3 生產(chǎn)部署策略112
8.3.1 OpenShift上可用的部署策略112
8.3.2 部署策略的配置114
8.3.3 部署回滾115
8.4 總結(jié)116
第9章 在OpenShift上監(jiān)控和管理應(yīng)用程序117
9.1 獲取資源和詳細(xì)描述資源117
9.1.1 使用標(biāo)簽過濾資源列表119
9.1.2 描述資源119
9.2 事件和日志120
9.3 在容器中調(diào)試應(yīng)用程序120
9.3.1 oc rsh120
9.3.2 oc exec121
9.3.3 oc debug122
9.4 OpenShift監(jiān)控123
9.5 刪除資源、應(yīng)用程序和項(xiàng)目125
9.6 總結(jié)126
第10章 模板、Operator和OpenShift自動(dòng)化127
10.1 模板127
10.1.1 在OpenShift Web控制臺(tái)中使用模板128
10.1.2 創(chuàng)建模板131
10.2 Operator131
10.2.1 Operator訂閱和生命周期管理器132
10.2.2 開發(fā)者視角的Operator132
10.3 總結(jié)133