雲端原生架構與 GitOps 實戰

王煒 張思施

  • 出版商: 機械工業
  • 出版日期: 2023-11-14
  • 售價: $654
  • 貴賓價: 9.5$621
  • 語言: 簡體中文
  • 頁數: 372
  • 裝訂: 平裝
  • ISBN: 7111737423
  • ISBN-13: 9787111737421
  • 相關分類: Version Control
  • 立即出貨

買這商品的人也買了...

商品描述

本書從實際的業務場景出發,透過模擬真實的微服務應用,帶領讀者從零開始建立GitOps工作流程,
並最終將GitOps的12大技術堆疊系統地連結起來,幫助讀者理解最佳實踐中的高階發布策略、多環境管理以及服務網格等內容。
全書分為四部分:
第一部分(第1章)著重於如何從零建構GitOps工作流程,
第二部分(第2~7章)重點在於建構GitOps工作流程所需的核心技術棧,
第三部分(第8~13章)著重介紹企業級場景下GitOps工作流程的高階實踐,
第四部分(第14和15章)介紹建構GitOps時「人」與「社區」的因素。

目錄大綱

目 錄  Contents
推薦序
前 言
第一部分 背景
第1章 從零上手GitOps2
1.1 建構容器鏡像2
1.1.1 初識容器鏡像2
1.1.2 建構鏡像4
1.1.3 建構方法總結7
1.2 將鏡像部署到Kubernetes8
1.2.1 初識Kubernetes8
1.2.2 本地安裝Kubernetes8
1.2.3 部署容器鏡像9
1.2.4 查看和存取Pod11
1.2.5 進程、容器鏡像和工作負載的關係式11
1.3 自動擴/縮容與自癒12
1.3.1 傳統擴/縮容與自癒方案12
1.3.2 傳統方案的缺點13
1.3.3 Kubernetes自癒13
1.3.4 Kubernetes自動擴/縮容16
1.4 建構工作流程17
1.4.1 Kubernetes應用的一般發布流程18
1.4.2 安裝Flux CD20
1.4.3 建構GitOps工作流程21
1.4.4 自動發布23
1.4.5 快速回滾24
1.5 小結25
第二部 GitOps核心技術
第2章 Docker極簡實戰28
2.1 為不同語言的應用建構容器鏡像28
2.1.1 Java28
2.1.2 Golang32
2.1.3 Node.js33
2.1.4 Vue35
2.1.5 建構多平台鏡像38
2.2 壓縮鏡像體積42
2.2.1 查看鏡像大小42
2.2.2 替換基礎鏡像43
2.2.3 重新思考Dockerfile43
2.2.4 多階段建構45
2.2.5 進一步壓縮46
2.2.6 極限壓縮47
2.2.7 復用建置快取48
2.3 基礎鏡像的選擇48
2.3.1 通用鏡像48
2.3.2 專用鏡像50
2.4 小結52
第3章 Kubernetes極簡實戰54
3.1 範例應用54
3.1.1 應用架構54
3.1.2 部署物件55
3.1.3 部署範例應用56
3.1.4 Kubernetes物件解析58
3.2 命名空間59
3.2.1 概述59
3.2.2 使用情境62
3.2.3 跨命名空間通訊62
3.2.4 規劃命名空間63
3.3 工作負載類型與使用情境64
3.3.1 ReplicaSet64
3.3.2 Deployment66
3.3.3 StatefulSet68
3.3.4 DaemonSet69
3.3.5 Job和CronJob69
3.4 服務發現與Service物件71
3.4.1 Pod通訊71
3.4.2 Service工作原理72
3.4.3 Endpoints74
3.4.4 Service IP74
3.4.5 Service域名75
3.4.6 Service類型76
3.5 服務設定管理77
3.5.1 傳統的組態管理方式78
3.5.2 Env79
3.5.3 ConfigMap80
3.5.4 Secret82
3.6 服務暴露83
3.6.1 傳統的服務暴露方式83
3.6.2 NodePort84
3.6.3 LoadBalancer85
3.6.4 Ingress86
3.7 資源配額及服務品質88
3.7.1 概述88
3.7.2 初識CPU與記憶體88
3.7.3 查看Pod資源消耗量89
3.7.4 資源請求與資源限制89
3.7.5 服務品質90
3.8 水平擴容91
3.8.1 基於CPU的擴容策略92
3.8.2 以記憶體為基礎的擴容策略92
3.9 服務探針93
3.9.1 Pod和容器的狀態93
3.9.2 探針類型與檢查方式94
3.9.3 就緒探針95
3.9.4 存活探針97
3.9.5 StartupProbe探針98
3.10 小結100
第4章 持續集成101
4.1 GitHub Action101
4.1.1 基本概念101
4.1.2 建立持續整合Pipeline102
4.2 GitLab CI109
4.2.1 基本概念109
4.2.2 建立持續整合Pipeline110
4.3 Tekton114
4.3.1 安裝組件114
4.3.2 基本概念120
4.3.3 創建Tekton Pipeline121
4.3.4 創建GitHub Webhook128
4.3.5 觸發Pipeline128
4.4 小結130
第5章 鏡像倉庫131
5.1 搭建Harbor企業級鏡像倉庫131
5.1.1 安裝組件131
5.1.2 訪問Dashboard134
5.1.3 推播鏡像134
5.2 在Tekton Pipeline使用Harbor136
5.2.1 修改倉庫位址136
5.2.2 修改憑證137
5.2.3 觸發Pipeline137
5.3 Harbor生產建議138
5.3.1 PVC線上擴容138
5.3.2 使用S3儲存鏡像139
5.3.3 使用託管資料庫和Redis140
5.3.4 開啟「自動掃描鏡像」與「阻止潛在漏洞鏡像」功能141
5.4 小結142
第6章 應用定義143
6.1 Kustomize143
6.1.1 準備範例應用144
6.1.2 環境差異分析145
6.1.3 創建基準Manifest145
6.1.4 創造不同環境下差異化的Manifest146
6.1.5 部署149
6.2 Helm Chart151
6.2.1 基本概念151
6.2.2 範例應用改造152
6.2.3 部署156
6.2.4 發布157
6.3 Helm應用管理159
6.3.1 調試160
6.3.2 查看已安裝的Helm Release160
6.3.3 更新Helm Release160
6.3.4 查看Helm Release歷史版本161
6.3.5 回滾Helm Release161
6.3.6 卸載Helm Release161
6.4 小結161
第7章 GitOps工作流程162
7.1 使用Argo CD建構GitOps工作流程162
7.1.1 工作流程總覽162
7.1.2 安裝Argo CD163
7.1.3 創建應用165
7.1.4 連線工作流程168
7.1.5 觸發GitOps工作流程169
7.2 生產建議170
7.2.1 修改預設密碼170
7.2.2 配置Ingress和TLS170
7.2.3 使用Webhook觸發171
7.2.4 將源碼倉庫和應用定義倉庫分離173
7.2.5 加密Git倉庫中儲存的密鑰173
7.3 自動監聽鏡像版本變更觸發工作流程174
7.3.1 工作流程總覽175
7.3.2 安裝Argo CD Image Updater175
7.3.3 創建鏡像拉取憑證176
7.3.4 創建Helm Chart倉庫176
7.3.5 創建應用177
7.3.6 觸發工作流程179
7.4 小結180
第三部分 高級技術
第8章 高階發布策略182
8.1 藍綠發布182
8.1.1 概述183
8.1.2 手動實現藍綠發布183
8.1.3 Argo