本書是基于《Kubernetes權威指南:從Docker到Kubernetes實踐全接觸》進行企業級容器云平臺建設的實戰指南,力圖對容器云平臺的建設、應用和運營過程提供全方位的指導。其中,第1章對企業級容器云平臺應該如何進行規劃和建設提供指導。第2章對在容器云平臺上如何管理需要為租戶提供的計算資源、存儲資源、網絡資源和鏡像資源等基礎資源進行分析和說明。第3章從應用部署模板、應用配置模板、應用的灰度發布更新策略、彈性擴縮容等方面對容器云平臺上應用部署的相關管理工作進行講解。第4章從微服務架構的起源、Kubernetes的微服務體系、Service Mesh及多集群統一服務管理等方面對容器云平臺的微服務管控機制進行分析和說明。第5章從容器云平臺的DevOps管理、應用的日志管理、監控和告警管理、安全管理、平臺數據的備份等方面對生產運營過程中的主要工作進行分析和說明。第6章通過常見系統的容器化改造遷移方案,為傳統應用如何上云提供指導。第7章對容器云PaaS平臺的建設和應用進行說明。第8章通過3個案例,對大型項目在容器云PaaS平臺上的應用、復雜分布式系統的容器化實踐為讀者提供參考。無論是對于系統架構師、開發和測試人員、運維人員,還是對于企業IT主管、系統管理員、平臺管理員、SRE人員等,本書都非常有參考價值。本書也適合作為高等院校計算機專業云計算及容器技術方面的教材使用。
閆健勇 HPE高級項目經理、總架構師,有超過15年的電信行業系統建設經驗,主導了多項電信大型系統的架構設計和管理,對于云計算和大數據在電信行業中的應用擁有豐富的經驗。龔正 HPE高級顧問,擁有15年IT從業經歷,具有豐富的云計算、大數據分析和大型企業級應用架構設計和實施經驗,負責過多個大型云平臺的規劃和建設,是電信、金融、互聯網等領域的資深專家。吳治輝 HPE資深架構師,擁有超過15年的軟件研發經驗,專注于電信軟件和云計算領域的軟件研發,擁有豐富的大型項目架構設計經驗,是業界少有的具備很強Coding能力的S級資深架構師,也是《ZeroC Ice權威指南》《架構解密:從分布式到微服務》《區塊鏈輕松上手:原理、源碼、搭建與應用》的作者。劉曉紅 HPE高級咨詢顧問,擁有15年電信行業的大型IT支撐系統建設經驗,負責過多個項目的咨詢規劃、架構設計、系統實施和運營管理工作,目前專注于云計算、大數據、人工智能、區塊鏈等新技術的研究和應用。崔秀龍 HPE資深架構師,開源軟件、自動化愛好者,擁有十多年從業經驗,對軟件生命周期的各個環節均有深刻的理解。趙玲麗 HPE高級工程師,擁有8年以上企業級業務系統的實施和管理經驗,以及云計算、大數據分析、容器化PaaS平臺等領域的豐富經驗,是容器和微服務領域的資深專家。何通 HPE資深系統架構師,擁有多年工業、車聯網、電信等領域的軟件研發經驗,參與過多個大型項目的架構設計、開發與實施工作,精通云計算與大數據解決方案,專注于云計算、大數據、人工智能等領域的前沿技術在電信行業中的系統架構與研發工作。
第1章 容器云平臺的建設和規劃 1
1.1 為什么要建設企業級容器云 1
1.2 企業IT系統現狀調研分析 2
1.3 企業級容器云技術選型 5
1.4 企業級容器云總體架構方案設計 8
1.5 企業級容器云PaaS與IaaS的邊界限定 12
1.6 企業級容器云建設應遵循的標準 14
1.7 小結 18
第2章 資源管理 19
2.1 計算資源管理 19
2.1.1 多集群資源管理 20
2.1.2 資源分區管理 22
2.1.3 資源配額和資源限制管理 23
2.1.4 服務端口號管理 26
2.2 網絡資源管理 27
2.2.1 跨主機容器網絡方案 27
2.2.2 網絡策略管理 38
2.2.3 集群邊界路由器Ingress的管理 40
2.2.4 集群DNS域名服務管理 48
2.3 存儲資源管理 53
2.3.1 Kubernetes支持的Volume類型 54
2.3.2 共享存儲簡介 54
2.3.3 CSI簡介 58
2.3.4 存儲資源的應用場景 61
2.4 鏡像資源管理 64
2.4.1 鏡像生命周期管理 64
2.4.2 鏡像庫多租戶權限管理 65
2.4.3 鏡像庫遠程復制管理 65
2.4.4 鏡像庫操作審計管理 66
2.4.5 開源容器鏡像庫介紹 66
第3章 應用管理 71
3.1 應用的創建 72
3.1.1 應用模板的定義 72
3.1.2 應用配置管理 81
3.2 應用部署管理 84
3.2.1 對多集群環境下應用的一鍵部署管理 84
3.2.2 對應用更新時的灰度發布策略管理 85
3.3 應用的彈性伸縮管理 89
3.3.1 手工擴縮容 89
3.3.2 基于CPU使用率的自動擴縮容 90
3.3.3 基于自定義業務指標的自動擴縮容 92
3.4 應用的日志管理和監控管理 97
第4章 微服務管理體系 98
4.1 從單體架構到微服務架構 98
4.2 Kubernetes微服務架構 107
4.3 Service Mesh與Kubernetes 114
4.4 Kubernetes多集群微服務解決方案 133
4.5 小結 139
第5章 平臺運營管理 140
5.1 DevOps管理 140
5.1.1 DevOps概述 140
5.1.2 DevOps持續集成實戰 144
5.1.3 小結 153
5.2 日志管理 153
5.2.1 日志的集中采集 153
5.2.2 日志的查詢分析 157
5.3 監控和告警管理 163
5.3.1 監控管理 163
5.3.2 告警管理 170
5.4 安全管理 176
5.4.1 用戶角色的權限管理 177
5.4.2 租戶對應用資源的訪問安全管理 178
5.4.3 Kubernetes系統級的安全管理 182
5.4.4 與應用相關的敏感信息管理 183
5.4.5 網絡級別的安全管理 184
5.5 容器云平臺關鍵數據的備份管理 185
5.5.1 etcd數據備份及恢復 185
5.5.2 Elasticsearch數據備份及恢復 188
5.5.3 InfluxDB數據備份及恢復 191
第6章 傳統應用的容器化遷移 195
6.1 Java應用的容器化改造遷移 195
6.1.1 Java應用的代碼改造 196
6.1.2 Java應用的容器鏡像構建 197
6.1.3 在Kubernetes上建模與部署 199
6.2 PHP應用的容器化改造遷移 200
6.2.1 PHP應用的容器鏡像構建 201
6.2.2 在Kubernetes上建模與部署 205
6.3 復雜中間件的容器化改造遷移 207
第7章 容器云PaaS平臺落地實踐 210
7.1 容器云平臺運營全生命周期管理 210
7.2 項目準入和準備 211
7.2.1 運營界面的劃分 211
7.2.2 項目準入規范和要求 214
7.2.3 多租戶資源申請流程 218
7.2.4 集群建設及應用部署 219
7.3 持續集成和持續交付 220
7.3.1 應用程序管理 220
7.3.2 微服務設計規范 221
7.3.3 應用打包/鏡像管理規范 224
7.3.4 應用自動化升級部署/灰度發布 229
7.4 服務運營管理 231
7.4.1 應用容量的自動擴縮容 231
7.4.2 故障容災切換 233
7.4.3 Docker、Kubernetes的升級 233
7.5 監控分析 237
7.5.1 綜合監控 237
7.5.2 事件響應和處理 239
7.5.3 數據分析和度量 242
7.6 反饋與優化 244
第8章 案例分享 246
8.1 某大型企業的容器云PaaS平臺應用案例 246
8.2 Kubernetes在大數據領域的應用案例 258
8.3 Kubernetes在NFV領域的應用案例 269