ASP.NET Core使用Docker-Swarm集羣部署實現負載均衡

1、需求背景

人生苦短,我用.NET Core!阿笨對Docker是這樣評價的:Docker在手,環境我有!Docker出手,集羣我有!前面的Doc基礎課程咱們學習瞭如何使用Docker來部署搭建單機容器應用。當一臺服務器的處理能力、存儲空間不足時,不要企圖去換更強大的服務器,對大型網站而言,無論多麼強大的服務器,都知足不了網站持續增加的業務需求。實踐中會發現,生產環境中使用單個 Docker 節點是遠遠不夠的,搭建 Docker 集羣勢在必行。然而,面對 Kubernetes, Mesos等衆多容器集羣系統,咱們該如何選擇呢?它們之中,Docker Swarm 是 Docker 原生的,同時也是最簡單,最易學,最節省資源的,比較適合中小型公司使用。今天給你們分享一下如何使用Docker-Swarm來搭建負載均衡集羣容器環境應用。docker

1.一、本次分享課程適合人羣以下:後端

1)、本課程必定須要具有Docker基礎知識。(零基礎學者止步慎入)安全

2)、學習和了解ASP.Net Core跨平臺開發技術。服務器

3)、喜歡阿笨分享的乾貨課程童鞋們。本課程不是零基礎教學,側重點主要是講解Docker Swarm與ASP.NET Core實戰運用,你們務必根據自身的實際狀況進行選擇學習。網絡

若是您在學習過程當中遇到任何的課程問題,請先私下直接找阿笨老師進行在線的溝通和交流。謝謝你們的理解和支持,預祝你們學習快樂!架構

若是您是一個開發老鳥,那麼本次課程徹底不建議您進行學習!app

1.二、一句話總結今天咱們學習達到的目標負載均衡

如何使用Docker-Swarm部署高可用ASP.NET Core負載均衡集羣容器環境應用。運維

若是您一樣對本次分享《ASP.NET Core使用Docker-Swarm集羣部署實現負載均衡實戰演練》課程感興趣的話,那麼請跟着阿笨一塊兒學習吧。廢話很少說,直接上乾貨,咱們不生產乾貨,咱們只是乾貨的搬運工。ide

圖片

ASP.NET Core使用Docker-Swarm集羣部署實現負載均衡實戰演練


2、Docker-Swarm概念介紹

一、什麼是Docker Swarm

Docker Swarm是Docker公司開發的容器集羣管理服務。從1.12.0版本開始,已是Docker安裝後自帶的一部分(捆綁軟件)了,又稱爲Swarm Mode,無需額外安裝。Swarm 是 Docker 官方提供的一款集羣管理工具,其主要做用是把若干臺 Docker 主機抽象爲一個總體,而且經過一個入口統一管理這些 Docker 主機上的各類 Docker 資源。使用它,用戶能夠將多個 Docker 主機封裝爲單個大型的虛擬 Docker 主機,快速打造一套容器雲平臺。

二、Docker Swarm核心概念解釋

一、集羣節點分爲兩類:管理節點,工人節點。

二、一個集羣必須有一個首領。首領也是管理節點。

二、一個集羣有多個管理節點(建議爲基數個,好比1,3,5)和多個工人節點。

三、管理節點能夠降級demote爲工人節點,工人節點能夠升級promote爲管理節點。

三、DockerSwarm特色

1. Docker Engine集成集羣管理

使用Docker Engine CLI 建立一個Docker Engine的Swarm模式,在集羣中部署應用程序服務。

2. 去中心化設計

Swarm角色分爲Manager和Worker節點,Manager節點故障不影響應用使用。

3. 擴容縮容

能夠聲明每一個服務運行的容器數量,經過添加或刪除容器數自動調整指望的狀態。

4. 指望狀態協調

Swarm Manager節點不斷監視集羣狀態,並調整當前狀態與指望狀態之間的差別。例如,設置一個服務運行10個副本容器,若是兩個副本的服務器節點崩潰,Manager將建立兩個新的副本替代崩潰的副本。並將新的副本分配到可用的worker節點。

5. 多主機網絡

能夠爲服務指定overlay網絡。當初始化或更新應用程序時,Swarm manager會自動爲overlay網絡上的容器分配IP地址。

6. 服務發現

Swarm manager節點爲集羣中的每一個服務分配惟一的DNS記錄和負載均衡VIP。能夠經過Swarm內置的DNS服務器查詢集羣中每一個運行的容器。

7. 負載均衡

實現服務副本負載均衡,提供入口訪問。也能夠將服務入口暴露給外部負載均衡器再次負載均衡。

8. 安全傳輸

Swarm中的每一個節點使用TLS相互驗證和加密,確保安全的其餘節點通訊。

9. 滾動更新

升級時,逐步將應用服務更新到節點,若是出現問題,能夠將任務回滾到先前版本。

3、Docker-Swarm環境安裝

能夠經過Docker官方提供的docker-machine來快速建立一個docker容器環境的,它搭建和管理多個docker 主機同時搭建swarm集羣。本期分享課程阿笨這裏採用是直接模擬經過建立虛擬主機的方式來搭建咱們的Docker Swarm集羣環境。

Swarm是Docker原生的集羣管理軟件,與Kubernetes比起來比較簡單。

對於沒有集羣使用經驗的小白,用Docker Swarm起步,是一個很好的選擇。Docker 能夠看作集裝箱把雜亂的貨物一個個整理歸類, Compose 則是用於編排這些集裝箱,最後 Swarm 就是多提供幾條船,掛掉一兩條還能繼續走,提升穩定性。


4、Docker-Swarm搭建ASP.NET Core集羣應用環境

圖片

ASP.NET Core使用Docker-Swarm集羣部署實現負載均衡實戰演練


5、Docker-Swarm集羣部署Nginx實現ASP.NET Core應用負載均衡

圖片

ASP.NET Core使用Docker-Swarm集羣部署實現負載均衡實戰演練


6、思考與總結

一、思考

  在大型公司中,都有專職負責基礎支撐技術的開發或運維人員,而在中小型企業可能就不多有這類團隊或者壓根沒有,須要開發人員自行解決。如今不少崗位的招聘需求上都有寫須要瞭解或者掌握 Docker,或者將掌握 Docker 等容器技術做爲加分項目,而且這個要求不侷限於運維或者後端開發等崗位。搞技術的千萬不能有一個錯誤的思想,這個東西我用不上,就算用不上,也不能中止學習的腳步。因此一句話Docker做爲開發人員仍是頗有必要進行學習的!

二、總結

Docker若是隻是會幾個指令和根據dockerfile文件構建自定義鏡像的話,那僅僅停留在基礎入門階段。有人說docker是屬於運維工程師的事情,阿笨並不這麼認爲。做爲開發人員不學習新的東西,視野怎麼能打開,開發人員必定也要懂點運維方面的那些事,這樣有助於咱們更加的理解和了解架構設計!

但願本次分享課程可以讓你們有所收穫和幫助!最後送你們一句話:但願你們在.NET Core的學習道路上一直跟着阿笨堅持下去。

圖片

相關文章
相關標籤/搜索