Swarm容器編排與Docker原生集群

Swarm容器編排與Docker原生集群

《Swarm容器編排與Docker原生集群》 一書原作者Fabrizio Soppelsa(法布里齊奧·索貝爾薩)、Chanwit Kaewkasi(占偉·瓦卡斯),中文版由崔婧雯、鍾最龍譯,電子工業出版社2017年7月出版

內容提要

Docker Swarm作為Docker集群原生的容器編排解決方案,是Docker生態系統中的關鍵組件之一。《Swarm容器編排與Docker原生集群》涵蓋了Swarm中的發現、調度、高可用、安全和平台伸縮性等重要主題,能幫助你了解Swarm如何組建包含4700個節點的集群,並掌握Swarm的使用與管理,以及如何使用實現大規模套用的可伸縮。

《Swarm容器編排與Docker原生集群》適合企業架構、開發、運維等各崗位從業者閱讀,同樣適合廣大想了解當前主流CaaS架構內在運行原理與真實場景實踐的普通學習者。

目錄

第1章 歡迎來到Docker Swarm 1

集群工具和容器管理器 3

Swarm的目標 3

為什麼使用Swarm 4

真實的示例 5

-- 寵物模型vs牛群模型 5

Swarm特性 6

類似項目 7

-- Kubernetes 7

-- CoreOS Fleet 8

-- Apache Mesos 9

-- Kubernetes vs Fleet vs Mesos 10

-- Swarm vs所有 10

Swarm v1架構 10

-- 術語 12

開始使用Swarm 13

-- Mac系統上的Docker 14

-- Windows系統上的Docker 16

-- 使用Linux 18

-- 檢查Docker Machine是否可用——所有系統 19

以前的Swarm 19

-- Boot2Docker 21

-- 使用Docker Machine創建4個集群節點 21

-- 配置Docker主機 24

-- 啟動Docker Swarm 25

-- 測試Swarm集群 29

-- 如今的Swarm 31

本章小結 35

第2章 探索發現服務 36

發現服務 37

Token 38

-- 使用token重新架構第1章示例 38

-- Token的限制 43

Raft 43

-- Raft理論 43

-- 實際的Raft 45

Etcd 47

-- 使用Etcd重新架構第1章示例 47

ZooKeeper 50

Consul 50

-- 使用Consul重新架構第1章示例 50

實現去中心化的發現服務 52

本章小結 52

第3章 遇見Docker Swarm Mode 53

SwarmKit 53

-- 版本和支持 54

-- SwarmKit架構 54

-- SwarmKit的核心:swarmd 56

-- SwarmKit的控制器:swarmctl 57

-- 使用Ansible預配SwarmKit集群 58

-- 在SwarmKit上創建服務 62

Swarm Mode 63

-- Swarm v1 vs Swarm Mode vs SwarmKit 64

-- 深入了解Swarm Mode部署 65

本章小結 72

第4章 創建生產級別Swarm 73

工具 73

Swarm2k的HA拓撲 74

-- 管理器配置 75

-- Raft恢復場景 75

-- Raft檔案 76

-- 運行任務 76

-- 管理器拓撲 76

使用belt預配基礎架構 79

使用Docker Machine保護管理器安全 81

理解Swarm內部機制 83

-- 加入worker 84

-- 升級管理器 85

監控Swarm2k 87

-- InfluxDB時間序列資料庫 87

Swarm3k 90

-- Swarm3k的搭建和工作負載 90

-- 大規模Swarm的性能 92

總結Swarm2k和Swarm3k的經驗教訓 95

本章小結 96

第5章 管理Swarm集群 97

Docker Swarm standalone 97

Docker Swarm Mode 98

-- 手動添加節點 99

-- 管理器 99

-- Worker數量 100

-- 添加腳本化節點 100

-- belt 102

-- 使用Ansible 103

集群管理 105

-- 操作節點 106

降級和升級 107

-- 標記節點 108

-- 移除節點 110

Swarm健康 111

備份集群配置 111

災難恢復 112

Swarm的圖形化界面 112

-- Shipyard 112

-- Portainer 114

本章小結 115

第6章 Swarm上真實套用的部署 116

微服務 116

部署一個複製的Nginx 117

-- 一個極簡的Swarm 118

-- Docker Service 120

overlay網路 124

集成的負載均衡 124

服務的連線:用WordPress例子展示 124

-- Swarm的調度策略 127

-- 現在,WordPress 127

Docker Compose和Swarm Mode 130

Docker stacks介紹 130

-- 分散式套用包 131

-- Docker deploy 132

另外一個套用:Apache Spark 133

-- 為什麼要在Docker上運行Spark 134

-- 沒有Swarm的Spark單機 134

-- 在Swarm上的Spark單機 137

-- 在Swarm上啟動Spark 138

本章小結 140

第7章 平台的向上伸縮 141

再次登場的Spark例子 142

Docker外掛程式 142

實驗室環境 143

-- 一個獨一無二的秘鑰 143

-- Docker Machine 144

-- 安全組 145

-- 網路配置 146

-- 存儲配置和架構 146

安裝Flocker 148

-- 生成Flocker證書 149

-- 安裝軟體 151

-- 安裝控制節點 153

-- 安裝集群節點 153

-- 測試一切是否正常 154

安裝並配置Swarm 156

-- 為Spark添加一個卷 157

再次部署Spark 157

-- 測試Spark 159

-- 使用Flocker存儲 161

伸縮Spark 164

監控Swarm託管的套用 165

-- Prometheus 165

-- 安裝一個監控系統 166

-- 在Grafana中導入Prometheus 167

本章小結 169

第8章 Swarm附加特性的探索 171

Libnetwork 171

-- Networking外掛程式 172

-- 容器網路模型 173

加密和路由矩陣 174

MacVLAN 174

-- overlay網路 175

網路控制臺 177

Libkv 179

-- 如何使用libkv 180

本章小結 181

第9章 Swarm集群和Docker軟體供應鏈的安全加固 182

軟體供應鏈 182

Swarm集群的安全加固 183

安全加固Swarm:最佳實踐 184

-- 證書頒發機構 185

-- 證書和相互TLS 185

-- 集群加入令牌 185

-- 在Docker Machine中添加TLS 186

Docker Notary 187

Docker Secret介紹 190

本章小結 192

第10章 Swarm和雲 193

Docker for AWS和Docker for Azure 193

-- Docker for AWS 194

-- Docker for Azure 198

Docker Datacenter 201

OpenStack上的Swarm 202

-- OpenStack Nova 204

-- 當下現實:OpenStack友好的方式 205

-- OpenStack Heat 205

-- OpenStack Magnum 206

本章小結 215

第11章 Swarm的未來展望 216

Provisioning的挑戰 216

軟體定義基礎設施 216

-- Infrakit 217

-- TUF—— The Update Framework 219

Docker Stacks和Compose 220

Caas ——容器即服務 220

Unikernel 220

為Docker做貢獻 222

-- Github 222

-- 提交issue 222

-- 代碼 223

-- belt和其他項目 223

本章小結 223

相關詞條

熱門詞條

聯絡我們