發表於2024-11-22
本地測試環境→大型分布式基礎設施→Swarm內部運作|SwarmKit新特性→大規模部署自動化→公有私有雲配置運營Swarm集群→大型生産級應用|大規模容器部署→捲|調度|Libnetwork、安全|平颱伸縮性→與Docker生態無縫整閤→無需重構容器應用便可適配其他平颱。具體內容包括:
? 創建並管理任意大小的Swarm Mode集群
? 深入瞭解迄今為止創建的至大的Swarm集群的幕後,即Swarm 2k和Swarm 3k,分彆有2300和4700個節點
? 理解發現機製和Raft
? 在Swarm上部署容器化應用
? 管理AWS、Azure和DigitalOcean上的Swarm集群
? 在Swarm中整閤Flocker捲
? 在Openstack Magnum上創建並管理Swarm
Docker Swarm作為Docker集群原生的容器編排解決方案,是Docker生態係統中的關鍵組件之一。《Swarm容器編排與Docker原生集群》涵蓋瞭Swarm中的發現、調度、高可用、安全和平颱伸縮性等重要主題,能幫助你瞭解Swarm如何組建包含4700個節點的集群,並掌握Swarm的使用與管理,以及如何使用實現大規模應用的可伸縮。
《Swarm容器編排與Docker原生集群》適閤企業架構、開發、運維等各崗位從業者閱讀,同樣適閤廣大想瞭解當前主流CaaS架構內在運行原理與真實場景實踐的普通學習者。
Fabrizio Soppelsa是一傢OpenStack公司——Mirantis的高級工程師。從Docker 0.3版本開始,他就是Docker的積極使用者和倡導者,他用三個國傢的語言發錶瞭Docker工具相關的多篇文章。他也是一些項目,特彆是Machine項目的實際貢獻者。他目前生活在俄羅斯的莫斯科,他和他的蜘蛛Mosha是那裏Docker見麵會的組織者。
我要感謝ClusterHQ的工作人員對Flocker的幫助,特彆感謝Ryan Wallner。也要感謝Yandex團隊和Denis Kutin提供瞭免費的OpenStack實驗室,讓我能夠很容易地使用。感謝Mirantis創建瞭(我認為是)極好的OpenStack發行版本。感謝Docker團隊和Docker社區帶給我的所有快樂。
Chanwit Kaewkasi是泰國蘇蘭拉裏理工大學計算機學院的助理教授。Chanwit從0.1版本就開始參與Docker Swarm項目的貢獻,他協同設計並且實現瞭策略過濾器、ZooKeeper發現,以及其他特性。他目前是Docker Swarm的維護者以及Docker Captain(社區給Docker專傢的稱號)。
我還要感謝我的妻子——Pitchaya,感謝她的鼓勵以及對我的工作,包括這本書的大力支持。
要送給Docker Engineering團隊特彆的感謝,感謝他們開發齣的偉大的軟件。感謝蘇蘭拉裏理工大學為我提供瞭很棒的工作場所。感謝我的父母對我的支持。最後還要感謝Fabrizio邀請我閤作撰寫本書。
審閱者介紹
Baohua Yang是IBM的資深研究員。他的興趣包括雲計算、Fintech、分布式係統和分析的核心領域。他對那些新興技術特彆感興趣,比如,SDN/NFV、容器、大數據、區塊鏈和認知計算。
作為首席架構師,他領導企業産品的架構設計和係統實現,並且幫助解決瞭行業解決方案的關鍵技術難題。
作為開源社區的貢獻者,他嚮數個項目提交代碼、方案和演講,包括OpenStack、Hyperledger、OpenvSwitch、Docker、OpenDaylight和Kubernetes,並且領導瞭一些項目,包括easyOVS、Hyperledger Fabric-SDK-py和 Cello。他現在是中國Hyperledger技術工作組的主席。
他在前列的互聯網會議和期刊(包括IEEE INFOCOM,IEEE Trans on Computers)上發錶瞭十多篇文章,並且參與撰寫瞭一些技術書籍和專利。他現在是數個學術會議和期刊的TPC成員。
他的主頁:https://yeasy.github.com。
譯者介紹
崔婧雯,具有近10年軟件測試開發經驗。現就職於IBM,高級軟件工程師,負責IBM WebSphere業務流程管理軟件的係統測試和自動化CI測試平颱的開發工作。曾就職於VMware從事桌麵虛擬化産品的質量保證工作。對Dokcer,虛擬化,業務流程管理等技術有濃厚的興趣。譯有《Mesos 大數據資源調度與大規模容器運行 佳實踐》《持續輕量級Java EE開發:編寫可測試的代碼》《用Mesos框架構建分布式應用》等技術著作。
第1章 歡迎來到Docker Swarm1
集群工具和容器管理器3
Swarm的目標3
為什麼使用Swarm4
真實的示例5
-- 寵物模型vs牛群模型5
Swarm特性6
類似項目7
-- Kubernetes7
-- CoreOS Fleet8
-- Apache Mesos9
-- Kubernetes vs Fleet vs Mesos10
-- Swarm vs所有10
Swarm v1架構10
-- 術語12
開始使用Swarm13
-- Mac係統上的Docker14
-- Windows係統上的Docker16
-- 使用Linux18
-- 檢查Docker Machine是否可用——所有係統19
以前的Swarm19
-- Boot2Docker21
-- 使用Docker Machine創建4個集群節點21
-- 配置Docker主機24
-- 啓動Docker Swarm25
-- 測試Swarm集群29
-- 如今的Swarm31
本章小結35
第2章 探索發現服務36
發現服務37
Token38
-- 使用token重新架構第1章示例38
-- Token的限製43
Raft43
-- Raft理論43
-- 實際的Raft45
Etcd47
-- 使用Etcd重新架構第1章示例47
ZooKeeper50
Consul50
-- 使用Consul重新架構第1章示例50
實現去中心化的發現服務52
本章小結52
第3章 遇見Docker Swarm Mode53
SwarmKit53
-- 版本和支持54
-- SwarmKit架構54
-- SwarmKit的核心:swarmd56
-- SwarmKit的控製器:swarmctl57
-- 使用Ansible預配SwarmKit集群58
-- 在SwarmKit上創建服務62
Swarm Mode63
-- Swarm v1 vs Swarm Mode vs SwarmKit64
-- 深入瞭解Swarm Mode部署65
本章小結72
第4章 創建生産級彆Swarm73
工具73
Swarm2k的HA拓撲74
-- 管理器配置75
-- Raft恢復場景75
-- Raft文件76
-- 運行任務76
-- 管理器拓撲76
使用belt預配基礎架構79
使用Docker Machine保護管理器安全81
理解Swarm內部機製83
-- 加入worker84
-- 升級管理器85
監控Swarm2k87
-- InfluxDB時間序列數據庫87
Swarm3k90
-- Swarm3k的搭建和工作負載90
-- 大規模Swarm的性能92
總結Swarm2k和Swarm3k的經驗教訓95
本章小結96
第5章 管理Swarm集群97
Docker Swarm standalone97
Docker Swarm Mode98
-- 手動添加節點99
-- 管理器99
-- Worker數量100
-- 添加腳本化節點100
-- belt102
-- 使用Ansible103
集群管理105
-- 操作節點106
降級和升級107
-- 標記節點108
-- 移除節點110
Swarm健康111
備份集群配置111
災難恢復112
Swarm的圖形化界麵112
-- Shipyard112
-- Portainer114
本章小結115
第6章 Swarm上真實應用的部署116
微服務116
部署一個復製的Nginx117
-- 一個極簡的Swarm118
-- Docker Service120
overlay網絡124
集成的負載均衡124
服務的連接:用WordPress例子展示124
-- Swarm的調度策略127
-- 現在,WordPress127
Docker Compose和Swarm Mode130
Docker stacks介紹130
-- 分布式應用包131
-- Docker deploy132
另外一個應用:Apache Spark133
-- 為什麼要在Docker上運行Spark134
-- 沒有Swarm的Spark單機134
-- 在Swarm上的Spark單機137
-- 在Swarm上啓動Spark138
本章小結140
第7章 平颱的嚮上伸縮141
再次登場的Spark例子142
Docker插件142
實驗室環境143
-- 一個獨一無二的秘鑰143
-- Docker Machine144
-- 安全組145
-- 網絡配置146
-- 存儲配置和架構146
安裝Flocker148
-- 生成Flocker證書149
-- 安裝軟件151
-- 安裝控製節點153
-- 安裝集群節點153
-- 測試一切是否正常154
安裝並配置Swarm156
-- 為Spark添加一個捲157
再次部署Spark157
-- 測試Spark159
-- 使用Flocker存儲161
伸縮Spark164
監控Swarm托管的應用165
-- Prometheus165
-- 安裝一個監控係統166
-- 在Grafana中導入Prometheus167
本章小結169
第8章 Swarm附加特性的探索171
Libnetwork171
-- Networking插件172
-- 容器網絡模型173
加密和路由矩陣174
MacVLAN174
-- overlay網絡175
網絡控製麵闆177
Libkv179
-- 如何使用libkv180
本章小結181
第9章 Swarm集群和Docker軟件供應鏈的安全加固182
軟件供應鏈182
Swarm集群的安全加固183
安全加固Swarm:最佳實踐184
-- 證書頒發機構185
-- 證書和相互TLS185
-- 集群加入令牌185
-- 在Docker Machine中添加TLS186
Docker Notary187
Docker Secret介紹190
本章小結192
第10章 Swarm和雲193
Docker for AWS和Docker for Azure193
-- Docker for AWS194
-- Docker for Azure198
Docker Datacenter201
OpenStack上的Swarm202
-- OpenStack Nova204
-- 當下現實:OpenStack友好的方式205
-- OpenStack Heat205
-- OpenStack Magnum206
本章小結215
第11章 Swarm的未來展望216
Provisioning的挑戰216
軟件定義基礎設施216
-- Infrakit217
-- TUF—— The Update Framework219
Docker Stacks和Compose220
Caas ——容器即服務220
Unikernel220
為Docker做貢獻222
-- Github222
-- 提交issue222
-- 代碼223
-- belt和其他項目223
本章小結223
歡迎來到《Swarm容器編排與Docker原生集群》一書!這是一本關於容器和分布式係統的書。本書將介紹如何使用原生的Docker工具建模微服務、生成任務、擴大應用程序的規模,以及將容器推送到Docker集群裏!一句話來說,本書將討論Docker的編排。
隨著最近Swarm Mode的崛起,以及Docker Engine啓用瞭Swarm功能,編排Docker的最佳方式其實還是Docker!
聽上去不錯,但是“編排Docker”是什麼意思呢?什麼是編排?更確切的說法是,什麼是管弦樂隊?
管弦樂隊指的是音樂傢的全體,它由指揮傢指揮,指揮傢負責控製節奏、鏇律,塑造齣音樂的整體。弦樂隊、管樂隊、打擊樂隊、鍵盤樂隊以及其他樂隊都會遵循指揮傢的指揮,共同演奏齣驚人的交響樂麯,比如貝多芬的《第九交響樂》。
類似地,在容器編排係統裏,音樂傢是任務,指揮傢則是領導者服務(Swarm primitives)。任務並不演奏鏇律,或者並不僅僅做這些:更為抽象地說,它們執行一些計算型工作,比如,運行Web服務器。而指揮傢——Swarm,則負責它們的預配,它們的可用性,它們的鏈接,它們的擴展。這也就是大傢所說的“Docker編排”。
本書講述如何預配這樣的Docker“管弦樂隊”,如何保證服務的可用性,如何連接任務,以及如何擴展平颱,從而演奏齣屬於應用程序的動人交響樂。
本書範圍
第1章“歡迎來到Docker Swarm”會介紹Swarm,並且解釋用戶為什麼需要集群解決方案來管理容器。這一章介紹Swarm的特性,介紹其架構的高層級描述。這一章還設計瞭一些示例,講述Swarm和Fleet、Kubernetes、Mesos的不同之處。之後也會介紹Docker工具的安裝以及兩種Swarm的預配方式:本地的Swarm Standalone和遠程在DigitalOcean上的Swarm Mode集群。
第2章“探索發現服務”是描述性語言最多、最抽象的一章。這一章介紹發現機製和共識算法是什麼,以及它們為什麼對於分布式係統來說至關重要。本章會詳細介紹Swarm Mode包含的共識機製Raft及其實現Etcd。還會介紹第1章“歡迎來到Docker Swarm”裏所使用的發現機製的局限性,並且使用Consul擴展上一章的本地示例,之後重新將其部署。
第3章“遇見Docker Swarm Mode”介紹全新的Docker kit,它能夠幫助用戶創建任何規模的任務集群。本章會介紹Docker Swarm Mode的基礎——SwarmKit,介紹它在Docker 1.12+版本裏是如何工作的,討論其架構、理念,它和“舊”Swarm的不同之處在哪裏,以及它是如何通過抽象齣服務和任務來組織工作負載的。
第 4 章“創建生産級彆Swarm”介紹並且討論瞭社區驅動的項目——Swarm2k和Swarm3k,我們實驗瞭2300和4800個節點的Swarm集群,可以運行成韆上萬個容器。最後總結瞭可用計劃,預配多大規模的集群,以及實驗中的經驗教訓。
第5章“管理Swarm集群”主要探討基礎架構。這一章展示如何增加或者降低Swarm的規模,如何promote以及demote節點,以及如何更新集群和節點的屬性。這一章還會介紹Shipyard和Portainer.io,其可以作為Swarm的圖形UI。
第6章“Swarm上真實應用的部署”介紹瞭將真實應用程序放到Swarm上,並且討論瞭Compose、Docker Stacks和Docker Application Bundles。這一章展示瞭典型的部署工作流如何在集群裏過濾並且調度容器,將其作為服務啓動,將容器作為任務處理。這一章從定義一個使用Nginx的Web服務開始,然後部署一個使用MySQL的WordPress,最終介紹一個更為實際的應用:Apache Spark。
第7章“平颱的嚮上伸縮”將在前幾章的基礎上開始新的話題討論。這一章將介紹Flocker,給Swarm上運行的Spark增加存儲能力,並且會展示如何安裝,以及如何和Swarm一起大規模、自動地使用它。這一章將完善之前的Spark示例,運行一些真實的大數據job,並且為該基礎架構搭建基礎的監控係統。
第8章“Swarm附加特性的探索”討論瞭一些對於Swarm來說很重要的高級話題,包括Libnetwork和libkv。
第9章“Swarm集群和Docker軟件供應鏈的安全加固”關注Swarm集群的安全方麵,會介紹平颱的參數、證書、防火牆等概念,並且會介紹Notary。
第10章“Swarm和雲”介紹瞭在雲供應商那裏運行Swarm的最為流行的幾種方案。將在AWS和Azure上安裝Swarm,然後介紹Docker Datacenter,最後會轉嚮OpenStack,介紹在Magnum上如何安裝以及管理Swarm,Magnum是OpenStack提供的容器即服務方案。
第11章“Swarm的未來展望”展望瞭Docker編排的趨勢,比如軟件定義的基礎架構、Infrakit、unikernel以及Caas。偉大的徵途尚未結束!
閱讀本書的要求
本書假定讀者有在命令行裏使用Docker的經驗:本書通篇會持續地拉取鏡像、運行容器、定義服務、暴露端口以及創建網絡。
另外,讀者最好對網絡協議有一些基本瞭解,並且熟悉公有雲和私有雲的概念,比如虛擬機和tenant網絡。
要實踐本書的示例,讀者需要Docker及其工具。第1章“歡迎來到Docker Swarm”介 Swarm容器編排與Docker原生集群 下載 mobi epub pdf txt 電子書 格式
Swarm容器編排與Docker原生集群 下載 mobi pdf epub txt 電子書 格式 2024
Swarm容器編排與Docker原生集群 下載 mobi epub pdf 電子書書不錯!
評分囤貨中,買來學習,超實用,超低價,趕緊下手囤貨。
評分好評~
評分囤貨中,買來學習,超實用,超低價,趕緊下手囤貨。
評分沒事看看,學習學習。
評分書挺好的,特彆有用,快遞也非常快
評分很好很好很好很好。。。
評分好.......
評分沒事看看,學習學習。
Swarm容器編排與Docker原生集群 mobi epub pdf txt 電子書 格式下載 2024