成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Docker Swarm的前世今生

lemon / 834人閱讀

摘要:當(dāng)然此時(shí)的局限性較大,比如沒(méi)有副本和負(fù)載均衡的概念,這導(dǎo)致服務(wù)無(wú)法高可用當(dāng)然也更不存在什么服務(wù)網(wǎng)絡(luò)管理和跨節(jié)點(diǎn)數(shù)據(jù)存儲(chǔ)這些東西沒(méi)有服務(wù)模型集群中服務(wù)間關(guān)系和啟動(dòng)順序編排也很復(fù)雜于是就有了下面的的誕生。


概述

在我的《Docker Swarm集群初探》一文中,我們實(shí)際體驗(yàn)了Docker Swarm容器集群技術(shù)的魅力,與《Kubernetes實(shí)踐錄》一文中提到的Kubernetes集群技術(shù)相比,Docker Swarm沒(méi)有Kubernetes顯得那么厚重,因此可以認(rèn)為是更加輕量級(jí)的容器集群技術(shù),這也就意味著上手更加方便快捷,使用起來(lái)也要省事很多。作為Docker集群技術(shù)三(或“四”)架馬車之一的Docker Swarm,它從一開始便是Docker官方的“親兒子”,發(fā)展到現(xiàn)在也經(jīng)歷了很多階段和迭代。作者在學(xué)習(xí)的過(guò)程中也了解了一點(diǎn)其發(fā)展歷史,發(fā)現(xiàn)有幾個(gè)概念還是挺容易混淆的,因此撰寫成文,是梳理,也是總結(jié)。

注: 本文首發(fā)于 My 公眾號(hào) CodeSheep ,可 長(zhǎng)按掃描 下面的 小心心 來(lái)訂閱 ↓ ↓ ↓



初出茅廬之:經(jīng)典Swarm

早在2014年底,Docker公司就設(shè)計(jì)了容器集群的方案組合:Machine + Swarm + Compose。其中Machine主要用于快速創(chuàng)建Docker運(yùn)行環(huán)境,其支持在創(chuàng)建出來(lái)的節(jié)點(diǎn)上自動(dòng)部署Swarm,此時(shí)的Swarm我們稱為 “經(jīng)典Swarm”,它是一款整合跨節(jié)點(diǎn)網(wǎng)絡(luò)的集群式容器服務(wù),其利用Docker守護(hù)進(jìn)程的API,將多節(jié)點(diǎn)的計(jì)算資源進(jìn)行匯總,并提供兼容Docker的運(yùn)行API,使用者只需要在執(zhí)行Docker命令工具時(shí),用--host參數(shù)將目標(biāo)設(shè)置為Swarm服務(wù)的IP和端口,即可操作整個(gè)容器集群。

當(dāng)然此時(shí)的Swarm局限性較大,比如:

沒(méi)有副本和負(fù)載均衡的概念,這導(dǎo)致服務(wù)無(wú)法高可用

當(dāng)然也更不存在什么服務(wù)網(wǎng)絡(luò)管理和跨節(jié)點(diǎn)數(shù)據(jù)存儲(chǔ)這些東西

沒(méi)有服務(wù)模型:集群中服務(wù)間關(guān)系和啟動(dòng)順序編排也很復(fù)雜

于是就有了下面的SwarmKit的誕生。



發(fā)展壯大之:SwarmKit

在2016年2月,Docker公司開始了一個(gè)名叫 SwarmKit 的項(xiàng)目。而恰在Docker 1.12 RC之前的一段時(shí)間,Docker 發(fā)布了 Swarmkit,這是一個(gè)獨(dú)立的、開源的容器編排項(xiàng)目。SwarmKit不同于一開始的經(jīng)典Swarm,它從一開始就重新設(shè)計(jì)了一套獨(dú)立的API和模型體系,并且采用獨(dú)立的客戶端命令行工具:swarmctl

和上面的經(jīng)典Swarm模型相比,它加入了如下特性:

重新設(shè)計(jì)的一套獨(dú)立的API和模型體系

使用了自己的CLI(swarmd命令負(fù)責(zé)管理,swarmctl命令用于控制)

節(jié)點(diǎn)管理、服務(wù)模型更加自然,提供編排和調(diào)度服務(wù)

將過(guò)去Swarm依賴的外部集群一致性存儲(chǔ)組件Etcd的核心部分內(nèi)置化

然而此時(shí)的SwarmKit并沒(méi)有提供諸如服務(wù)發(fā)現(xiàn)、負(fù)載均衡和路由等功能。盡管如此,SwarmKit其實(shí)已經(jīng)是我們今天廣泛使用的Docker Swarm集群技術(shù)的基石。



厚積薄發(fā)之:Swarm Mode

Swarm Mode則更進(jìn)一步,它在Docker 1.12版本開始為大家所周知,一個(gè) docker swarm命令 紅遍大江南北,這個(gè)所謂的Swarm Mode其實(shí)就是我們今天所廣泛使用的Docker Swarm集群技術(shù)。

然而Swarm Mode并不是一個(gè)全新的東西,也并不是一個(gè)全新的模式,而是站在SwarmKit的巨人肩膀上發(fā)展起來(lái)的,是Docker中的一組與集群相關(guān)功能的統(tǒng)稱而已。Docker將SwarmKit的核心模塊內(nèi)嵌于Docker的后臺(tái)服務(wù)之中,通過(guò)不同的命令允許使用者同時(shí)以“本節(jié)點(diǎn)”和“本集群”這兩種視角來(lái)操作整個(gè)集群,增加了集群的管理、節(jié)點(diǎn)的管理、服務(wù)的管理和編排等等一系列高級(jí)特性,就像在我的《Docker Swarm集群初探》一文中體驗(yàn)的那樣。

因此總結(jié)一下Swarm Mode就是:

基于Swarmkit編寫

支持服務(wù)模型以及服務(wù)發(fā)現(xiàn)、路由和負(fù)載均衡等新功能

使用Docker原生態(tài)的CLI命令

集成到了Docker engine中(強(qiáng)大的 docker swarm 命令)



對(duì)比總結(jié)

如果用一張圖來(lái)表示 Docker、經(jīng)典Swarm、SwarmKit、Swarm Mode 四個(gè)概念之間的關(guān)系,則大致可以如下圖所示:

正如圖中所示,SwarmKit 和 Swarm Mode 重疊的部分表示的是相應(yīng)的項(xiàng)目之間存在代碼層面的互相引用或組件形式的依賴,其實(shí) Swarm Mode 所創(chuàng)建的集群本質(zhì)上并無(wú)異于 SwarmKit 集群。

更細(xì)致一點(diǎn),我們從SwarmKit和Swarm Mode二者在一些常用命令操作上的比較來(lái)看看二者的區(qū)別和聯(lián)系:

1. 創(chuàng)建集群

SwarmKit方式:swarmd

SwarmMode方式:docker swarm init

2. 往集群中添加節(jié)點(diǎn)

SwarmKit方式:swarmd --hostname worknode --join-addr [IP:端口] --join-token [Token]

SwarmMode方式:docker swarm join --token [token] [IP:端口]

3. 查看集群節(jié)點(diǎn)信息

SwarmKit方式:swarmctl node ls

SwarmMode方式:docker node ls

4. 創(chuàng)建服務(wù)

SwarmKit方式:swarmctl service create --name [服務(wù)名] --image [鏡像名]

SwarmMode方式:docker service create --name [服務(wù)名] [鏡像名]

5. 服務(wù)擴(kuò)容

SwarmKit方式:swarmctl service update [服務(wù)名] --replicas [副本數(shù)目]

SwarmMode方式:docker service scale [服務(wù)名]=[副本數(shù)目]

6. 服務(wù)(鏡像)升級(jí)

SwarmKit方式:swarmctl service update [服務(wù)名] --image [鏡像名]

SwarmMode方式:docker service update [服務(wù)名] --image [鏡像名]

從命令行操作來(lái)看,Swarm Mode其實(shí)非常類似于SwarmKit,然而前者更加靠近 Docker 原生態(tài)圈的命令,因此更加人性化。



后記

作者更多的原創(chuàng)文章在此,歡迎觀賞

My Personal Blog

作者更多的SpringBt實(shí)踐文章在此:

Spring Boot應(yīng)用監(jiān)控實(shí)戰(zhàn)

SpringBoot應(yīng)用部署于外置Tomcat容器

ElasticSearch搜索引擎在SpringBt中的實(shí)踐

初探Kotlin+SpringBoot聯(lián)合編程

Spring Boot日志框架實(shí)踐

SpringBoot優(yōu)雅編碼之:Lombok加持


如果有興趣,也可以抽點(diǎn)時(shí)間看看作者一些關(guān)于容器化、微服務(wù)化方面的文章:

利用K8S技術(shù)棧打造個(gè)人私有云 連載文章

從一份配置清單詳解Nginx服務(wù)器配置

Docker容器可視化監(jiān)控中心搭建

利用ELK搭建Docker容器化應(yīng)用日志中心

RPC框架實(shí)踐之:Apache Thrift

RPC框架實(shí)踐之:Google gRPC

微服務(wù)調(diào)用鏈追蹤中心搭建

Docker容器跨主機(jī)通信

Docker Swarm集群初探

高效編寫Dockerfile的幾條準(zhǔn)則



文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/27353.html

相關(guān)文章

  • Docker實(shí)戰(zhàn)指南(一):Docker介紹

    摘要:主機(jī)名命名空間,不同的內(nèi)部可以擁有不同的主機(jī)名。此外,也是解決跨平臺(tái)部署的利器。也許看完上述介紹大家還是云里霧里,沒(méi)關(guān)系,既然叫實(shí)戰(zhàn)指南,那么必然有實(shí)戰(zhàn)部分,我們從最簡(jiǎn)單的程序開始。后續(xù)我們將介紹,如果利用運(yùn)行你自己的程序。 原文地址:Docker實(shí)戰(zhàn)指南(一):Docker介紹 Introduction 我第一次注意到Docker大概是在2014年的時(shí)候,當(dāng)時(shí)對(duì)Docker的第一印象...

    SKYZACK 評(píng)論0 收藏0
  • CI Weekly #8 | CI/CD 技能進(jìn)階路線

    摘要:微店技術(shù)團(tuán)隊(duì)公眾號(hào)容器化之路這是一套以阿里云為基礎(chǔ),為核心,第三方服務(wù)為工具的開發(fā)測(cè)試部署流程,以及內(nèi)部的代碼提交,版本管理規(guī)范。如何打造安全的容器云平臺(tái)對(duì),微服務(wù),來(lái)說(shuō)都是非常好的落地實(shí)踐技術(shù)。 在使用 flow.ci 進(jìn)行持續(xù)集成的過(guò)程中,也許你會(huì)遇到一些小麻煩。最近我們整理了一些常見問(wèn)題在 flow.ci 文檔之 FAQ,希望對(duì)你有用。如果你遇到其他問(wèn)題,也可以通過(guò)「在線消息」或...

    FuisonDesign 評(píng)論0 收藏0
  • Web技術(shù)前世今生(二)

    摘要:前言我是,如果你還不認(rèn)識(shí)我,不妨先看看技術(shù)的前世今生一平靜的生活已經(jīng)有一段日子了。傳送門技術(shù)的前世今生一技術(shù)的前世今生三 前言:我是JavaScript,如果你還不認(rèn)識(shí)我,不妨先看看《Web技術(shù)的前世今生(一)》 平靜的生活已經(jīng)有一段日子了。 這一天,HTML大哥面露不悅地走過(guò)來(lái)問(wèn)我: Js,你是打算和我們分家嗎? 大哥,您這說(shuō)的哪里話,我什么地方做的不對(duì)么?我一臉茫然地回答道。 哼,...

    Stardustsky 評(píng)論0 收藏0
  • Web技術(shù)前世今生(二)

    摘要:前言我是,如果你還不認(rèn)識(shí)我,不妨先看看技術(shù)的前世今生一平靜的生活已經(jīng)有一段日子了。傳送門技術(shù)的前世今生一技術(shù)的前世今生三 前言:我是JavaScript,如果你還不認(rèn)識(shí)我,不妨先看看《Web技術(shù)的前世今生(一)》 平靜的生活已經(jīng)有一段日子了。 這一天,HTML大哥面露不悅地走過(guò)來(lái)問(wèn)我: Js,你是打算和我們分家嗎? 大哥,您這說(shuō)的哪里話,我什么地方做的不對(duì)么?我一臉茫然地回答道。 哼,...

    hyuan 評(píng)論0 收藏0
  • Web技術(shù)前世今生(二)

    摘要:前言我是,如果你還不認(rèn)識(shí)我,不妨先看看技術(shù)的前世今生一平靜的生活已經(jīng)有一段日子了。傳送門技術(shù)的前世今生一技術(shù)的前世今生三 前言:我是JavaScript,如果你還不認(rèn)識(shí)我,不妨先看看《Web技術(shù)的前世今生(一)》 平靜的生活已經(jīng)有一段日子了。 這一天,HTML大哥面露不悅地走過(guò)來(lái)問(wèn)我: Js,你是打算和我們分家嗎? 大哥,您這說(shuō)的哪里話,我什么地方做的不對(duì)么?我一臉茫然地回答道。 哼,...

    justjavac 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<