雲原生架構進階實戰

王玉平編著

  • 出版商: 機械工業
  • 出版日期: 2020-04-01
  • 定價: $474
  • 售價: 8.5$403
  • 語言: 簡體中文
  • 頁數: 230
  • 裝訂: 平裝
  • ISBN: 7111647092
  • ISBN-13: 9787111647096
  • 相關分類: 企業資源規劃 Erp雲端運算
  • 立即出貨

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

商品描述

本書從雲原生的核心思想和理念開始,重點講述企業引入雲原生架構的必要條件、
企業如何準備雲原生開發和部署環境,企業如何運維雲原生架構,並在*後提供雲原生相關案例,
為企業展現雲原生的實戰場景和步驟,從而讓企業對雲原生架構有一個直觀的感受。
書中案例也為企業引入雲原生架構提供了真實的樣例。

目錄大綱

出版說明
前言
第1章 雲原生架構1
1.1 雲計算的演化1
1.2 什麼是雲原生3
1.3 雲原生基礎架構4
1.4 雲原生應用5
1.4.1 微服務5
1.4.2 健康狀況報告6
1.4.3 自動測量數據7
1.4.4 彈性處理故障7
1.4.5 聲明式通信8
1.5 十二要素應用8
1.6 實現雲原生模式12
1.7 何時採用雲原生12
1.8 雲設計模式13
1.9 服務網格(Service Mesh)15
1.10 雲原生的未來16

第2章 Kubernetes核心對象17
2.1 Kubernetes架構17
2.1.1 節點18
2.1.2 Master節點18
2.1.3 Docker鏡像庫19
2.2 命名空間19
2.3 Pod20
2.3.1 創建Pod20
2.3.2 Pod 內部多個容器21
2.3.3 初始化容器21
2.3.4 狀態探針22
2.3.5 測試工具23
2.4 部署24
2.4.1 ReplicaSet24
2.4.2 部署26
2.4.3 有狀態部署28
2.4.4 DaemonSet30
2.5 服務30
2.5.1 關於服務30
2.5.2 Ingress32
2.6 存儲35
2.6.1 存儲類型35
2.6.2 使用subPath37
2.7 RBAC38
2.7.1 角色和集群角色38
2.7.2 角色綁定和集群角色綁定38

第3章 敏捷基礎架構40
3.1 部署本地Repository40
3.1.1 準備CentOS41
3.1.2 部署nginx和sonatype/nexus343
3.1.3 配置Nexus46
3.1.4 創建並使用NPM Registry47
3.1.5 創建並使用 Docker Repository49
3.1.6 創建Maven2 Local Repository52
3.1.7 總結54
3.2 部署Kubernetes54
3.2.1 環境準備54
3.2.2 安裝Docker CE56
3.2.3 安裝kube工具58
3.2.4 構建Master節點58
3.2.5 在客戶端設置環境59
3.2.6 部署Flannel網絡59
3.2.7 加入工作節點59
3.2.8 部署Dashboard60
3.3 MetalLB62
3.3.1 安裝MetalLB63
3.3.2 配置IP地址池63
3.3.3 使用MetalLB64
3.3.4 流量策略65
3.3.5 IP共享65
3.4 部署GlusterFS66
3.4.1 卷類型66
3.4.2 GlusterFS部署方法69
3.4.3 GlusterFS要求69
3.4.4 創建磁盤分區69
3.4.5 安裝軟件70
3.4.6 配置防火牆71
3.4.7 配置信任池72
3.4.8 創建GlusterFS卷72
3.4.9 GlusterFS卷安全73
3.4.10 GlusterFS快照73
3.4.11 vSAN與GlusterFS的比較73
3.5 使用GlusterFS卷74
3.5.1 靜態卷的使用74
3.5.2 動態卷的使用77
3.6 使用NFS卷83
3.6.1 前提條件83
3.6.2 授權83
3.6.3 創建 provisioner 和 StorageClass85
3.6.4 測試87
3.7 升級Kubernetes88
3.7.1 升級Master節點89
3.7.2 升級工作節點89
3.7.3 查看升級結果90

第4章 DevOps實戰91
4.1 DevOps簡介91
4.1.1 DevOps流程91
4.1.2 雲原生下的DevOps92
4.2 軟件部署策略93
4.2.1 實踐準備93
4.2.2 重建部署(Recreate)95
4.2.3 滾動部署(RollUpdate)96
4.2.4 藍綠部署(Blue/Green)98
4.2.5 金絲雀部署(Canary)100
4.2.6 A/B測試102
4.2.7 影子部署105
4.2.8 總結107
4.3 部署GitLab107
4.3.1 GitLab 簡介107
4.3.2 在CentOS 7.x中部署GitLab108
4.3.3 使用Docker部署GitLab109
4.3.4 在Kubernetes集群中運行GitLab110
4.3.5 GitLab Runner111
4.4 GitLab 集成自動CI/CD112
4.4.1 GitLab自動CI/CD113
4.4.2 .gitlab-ci.yml114
4.4.3 變量註冊115
4.5 容器部署模式116
4.5.1 什麼是sidecar模式117
4.5.2 sidecar模式的優勢117
4.5.3 sidecar模式的適用場景118
4.5.4 採用sidecar模式的事例118

第5章 日誌記錄119
5.1 模式119
5.1.1 伴生模式119
5.1.2 DaemonSet模式120
5.2 日誌採集120
5.2.1 具有日誌代理功能的伴生容器120
5.2.2 DaemonSet模式下配置Fluentd123
5.3 部署Elasticsearch126
5.3.1 Elasticsearch簡介126
5.3.2 在Docker Swarm中部署Elasticsearch127
5.3.3 在Kubernetes上創建Elasticsearch集群128
5.4 部署Kibana139
5.4.1 在Docker中部署Kibana139
5.4.2 在Kubernetes上部署Kibana應用143
5.5 部署fluentd作為syslog server145
5.5.1 創建 fluentd 服務145
5.5.2 創建 fluentd 應用146
5.5.3 測試148

第6章 雲原生下的監控149
6.1 Prometheus簡介149
6.1.1 Prometheus 組成及架構150
6.1.2 使用Prometheus的場景150
6.1.3 Prometheus 相關概念151
6.2 使用Exporter採集數據153
6.2.1 常用Exporter153
6.2.2 Exporter的運行方式154
6.2.3 Node Exporter154
6.2.4 容器監控cAdvisor155
6.2.5 黑盒監控Blackbox Exporter159
6.3 在Kubernetes中部署Prometheus161
6.3.1 創建RBAC文件161
6.3.2 創建服務162
6.3.3 創建配置文件163
6.3.4 部署Prometheus167
6.4 部署 Blackbox exporter169
6.4.1 Blackbox exporter配置文件169
6.4.2 Blackbox exporter部署文件170
6.5 Node exporter172
6.5.1 創建node exporter服務172
6.5.2 創建Node exporter DaemonSet172
6.6 Grafana174
6.7 在Kubernetes中部署Grafana176
6.7.1 創建持久卷聲明176
6.7.2 部署Grafana176
6.7.3 grafana配置文件178
6.7.4 創建Service178
6.8 案例:監控Drupal站點179
6.8.1 Drupal準備179
6.8.2 準備鏡像179
6.8.3 準備stack文件180
6.8.4 設置Grafana182

第7章 服務網格應用186
7.1 Istio架構187
7.1.1 Istio的目標187
7.1.2 服務網格資源188
7.2 安裝與卸載Istio192
7.2.1 下載Istio安裝包193
7.2.2 使用helm template安裝193
7.2.3 使用kubectl手動安裝194
7.2.4 卸載Istio194
7.3 使用Istio195
7.4 Istio常用場景196
7.4.1 分佈式調用追踪196
7.4.2 遙測度量收集197
7.4.3 灰度發布應用199
7.4.4 熔斷202
7.4.5 故障注入204
7.5 總結206

第8章 案例207
8.1 在Kubernetes中部署Drupal 8站點207
8.1.1 準備GlusterFS卷208
8.1.2 創建Persistent Volume Claim208
8.1.3 創建數據庫部署(Deployment)209
8.1.4 創建Drupal部署210
8.1.5 安裝Drupal213
8.1.6 總結213
8.2 雲原生架構下的Node.js自動CI/CD方法214
8.2.1 Node.js 示例214
8.2.2 在Kubernetes集群中創建GitLab賬戶215
8.2.3 部署Docker Registry215
8.2.4 配置GitLab216
8.2.5 通過GitLab構建Docker216
8.2.6 部署應用到Kubernetes集群中218
8.3 Apereo CAS自動橫向縮放部署策略220
8.3.1 CAS簡介221
8.3.2 前提條件221
8.3.3 準備環境222
8.3.4 CAS模板修改223
8.3.5 持續集成226
8.3.6 持續部署227
8.4 Apache Kafka部署與使用234
8.4.1 Kafka介紹234
8.4.2 為什麼在Kubernetes上運行Kafka235
8.4.3 在Kubernetes上部署Kafka的考慮235
8.4.4 在Kubernetes上部署Kafka的方式236
8.4.5 通過Helm部署Kafka237
8.4.6 通過Operators部署Kafka239
8.5 雲原生應用架構在上海海事大學信息化建設中的實踐241
8.5.1 組織與賦權241
8.5.2 敏捷性基礎架構241
8.5.3 持續交付241
8.5.4 微服務242
8.5.5 困難244
參考文獻245