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