因特網企業容器技術實踐

龔曦

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

商品描述

本書通過容器技術領域的實踐者分享各自的實踐案例,介紹常見的業務痛點、實現方式、方案的選型、遇到的問題和解決方案等,希望能夠幫助讀者瞭解、認識和玩轉容器。

本書主要分為兩部分:

第一部分是原理篇,包括第1章和第2章,簡單介紹Docker和Kubernetes的基礎知識及原理,包括Docker和Kubernetes是什麼、可以做什麼及如何使用等;第

二部分是案例篇,包括第3~10章,通過多個實戰案例,針對不同的使用場景和業務需求,介紹如何應用容器技術及實現相關需求。

本書案例均來自一線真實案例,並有技術人員對技術改造過程的體會和領悟,有較強的借鑒意義和參考價值。

目錄大綱

目    錄
第1章 Docker入門    1
1.1 容器簡介與Docker容器引擎    2
1.1.1 什麽是容器    2
1.1.2 Docker容器    2
1.2 Docker核心原理    5
1.2.1 Docker引擎結構    5
1.2.2 Docker服務流程    6
1.2.3 Docker核心技術    6
1.3 Docker鏡像及鏡像倉庫    16
1.3.1 什麽是Docker鏡像    16
1.3.2 構建Docker鏡像    16
1.3.3 搭建Docker鏡像倉庫    21
1.4 Docker網絡    22
1.4.1 Docker網絡架構    22
1.4.2 Docker網絡原理    23
第2章 Kubernetes入門    28
2.1 Kubernetes概述    29
2.1.1 什麽是Kubernetes    29
2.1.2 為什麽選擇Kubernetes    29
2.1.3 Kubernetes基本概念    31
2.2 Kubernetes架構及安裝    36
2.2.1 Kubernetes架構    36
2.2.2 Kubernetes核心組件    38
2.2.3 二進制安裝Kubernetes集群    44
2.2.4 kubespray安裝Kubernetes集群    50
2.3 Kubernetes實戰案例    52
2.3.1 WordPress應用模型    52
2.3.2 部署WordPress    53
2.3.3 部署MariaDB    54
2.3.4 通過瀏覽器訪問WordPress    57
2.4 Kubernetes網絡    57
2.4.1 Kubernetes中的網絡場景    57
2.4.2 Kubernetes網絡模型    59
2.4.3 Kubernetes開源網絡方案    60
2.5 Kubernetes高級特性    64
2.5.1 Federation    65
2.5.2 GPU支持    68
2.6 Kubernetes生態    71
2.6.1 Kubernetes包管理工具Helm    71
2.6.2 Service Mesh    73
2.6.3 Serverless    76
第3章 美麗聯合容器雲實踐    79
3.1 “從零到一”:容器雲平臺的技術演進    80
3.1.1 為什麽要建設容器雲平臺    80
3.1.2 如何建設容器雲平臺    80
3.1.3 架構演進    84
3.1.4 穩定性、效率和成本    89
3.2 “自我突破”:關鍵技術方案和創新點    93
3.2.1 版本演進    93
3.2.2 關鍵技術和創新點    94
3.3 總結    109
3.3.1 體會和心得    109
3.3.2 展望未來    110
3.3.3 遇到過的問題    114
3.3.4 開源工具分享    115
第4章 酷家樂容器化之路    119
4.1 架構挑戰與應對方案    120
4.2 應用容器化    122
4.2.1 CI/CD遷移    122
4.2.2 公共基礎鏡像    122
4.2.3 鏡像構建及單元測試    123
4.2.4 容器部署    124
4.2.5 網絡模式    124
4.2.6 性能相關    124
4.2.7 小結    125
4.3 編排自動化    125
4.3.1 資源隔離與資源限額    125
4.3.2 Kubernetes的認證與授權    128
4.3.3 CMDB改造    131
4.3.4 Kubernetes的包管理工具Helm    132
4.3.5 存儲方案    132
4.3.6 網絡方案    132
4.3.7 日誌與監控    133
4.3.8 小結    134
4.4 酷家樂的服務網格實踐    134
4.4.1 服務網格的發展現狀    135
4.4.2 酷家樂技術團隊應用Istio的範圍    135
4.4.3 Istio的安裝    135
4.4.4 通過Istio的信息進行全自動化部署    135
4.4.5 通過Istio + Zipkin + Sleuth實現調用鏈路追蹤    137
4.4.6 通過Istio的routing rule實現不同的發布策略和版本策略    138
4.4.7 通過修改Istio系統設置實現Pod外部訪問控制    139
4.4.8 Istio的其他風險    140
4.4.9 小結    140
4.5 總結    140
第5章 個推基於Docker和Kubernetes的微服務實踐    142
5.1 微服務    143
5.1.1 微服務簡介    143
5.1.2 微服務實踐    145
5.2 容器化    149
5.3 Kubernetes實踐    151
5.4 總結    157
第6章 使用Kubernetes進行交換機埠流量採集    158
6.1 Prometheus簡介與使用    159
6.1.1 Prometheus特點    159
6.1.2 Prometheus相關組件    159
6.1.3 Prometheus架構    159
6.1.4 Prometheus適用場景    160
6.1.5 Prometheus的安裝及使用    160
6.1.6 Prometheus SNMP Exporter    168
6.1.7 Prometheus 告警    169
6.1.8 Grafana    171
6.2 流量採集系統    171
第7章 搜道微服務容器化實踐    175
7.1 為何選擇Docker    176
7.1.1 公司架構演變過程    176
7.1.2 平臺存在的問題    176
7.1.3 容器優勢    176
7.2 Docker容器雲架構方案    177
7.2.1 技術選型及實踐    177
7.2.2 服務註冊與服務發現    192
7.2.3 Docker網絡與通信解決方案    193
7.3 未來展望:自動化和彈性雲    194
7.3.1 自動化    195
7.3.2 彈性雲    195
第8章 縱橫新創的容器化實踐    196
8.1 背景介紹    197
8.2 Rancher介紹    198
8.2.1 基礎設施編排    199
8.2.2 應用商店    199
8.2.3 容器編排與調度    199
8.2.4 企業級權限管理    199
8.3 Docker構件庫配置    199
8.3.1 Nexus 3安裝    200
8.3.2 Nexus 3配置Docker鏡像庫    201
8.3.3 配置Docker環境    202
8.4 構建Maven環境    208
8.4.1 配置POM文件    208
8.4.2 配置DockerFile文件    209
8.4.3 開啟Docker的遠程接口    209
8.4.4 執行Maven編譯    210
8.5 Rancher在Jenkins中的配置    211
8.5.1 Jenkins中安裝Rancher插件    212
8.5.2 在Rancher服務中配置API連接信息    212
8.5.3 在Jenkins中配置    213
8.5.4 Jenkins的執行效果    214
8.6 問題與總結    216
8.6.1 Rancher的高可用    216
8.6.2 收集日誌    216
8.6.3 監控告警    217
8.6.4 調用鏈監控    217
8.7 寫在最後    218
第9章 九言科技Kubernetes實踐    219
9.1 現有維護中的瓶頸    220
9.2 容器管理平臺的選擇    220
9.3 環境的搭建與CI/CD    220
9.3.1 用kubeadm快速搭建Kubernetes環境    221
9.3.2 Kubernetes環境下的CI/CD整體架構    222
9.4 存儲引擎的選擇    222
9.4.1 存儲概述    222
9.4.2 如何選擇驅動引擎    223
9.5 Kubernetes日誌收集    226
9.5.1 收集日誌的需求    226
9.5.2 收集日誌的解決方案    226
9.6 未來探索    229
9.6.1 Service Mesh介紹    229
9.6.2 FaaS與Serverless    230
9.7 小結    232
第10章 沃趣科技的容器化RDS之路    233
10.1 容器化RDS:計算存儲分離架構下的“Split-Brain”    234
10.2 容器化RDS:計算存儲分離架構下的I/O優化    242
10.2.1 計算存儲分離架構    243
10.2.2 計算存儲分離架構的缺點    243
10.2.3 DoubleWrite    243
10.2.4 單機架構:關閉DoubleWrite    244
10.2.5 計算存儲分離架構:關閉DoubleWrite    244
10.3 容器化RDS:PersistentLocalVolumes和VolumeScheduling    246
10.3.1 本地捲    246
10.3.2 原有調度機制的問題    246
10.3.3 PVC綁定    247
10.3.4 Pod調度    247
10.4 容器化RDS:借助CSI擴展Kubernetes存儲能力    252
10.4.1 現有Kubernetes存儲插件系統問題    253
10.4.2 Container Storage Interface    254
10.4.3 基於CSI和分佈式文件系統在MySQL上實現Dynamically Expand Volume    255
10.4.4 對CSI的展望    257