如何通過Docker 進行容器編排
或許***方式是將它們看成飼養寵物與飼養牛。人們會想許多額外措施讓他們的寵物活著并保持健康,這與管理員想盡辦法認真照看高端服務器一樣。但是在農場里,死牛只是被視為生意成本中的一部分,在當今的云世界中也是一樣,應用被設計可以容錯,一臺服務器發生故障并沒有什么大不了的。
現代應用編排工具的一個作用是監視虛擬服務器和/或容器情況,確保它們正在正常運行中。當一臺服務器出現故障,它們會迅速實例化一臺新虛擬機,甚至是一臺新容器。整個過程不需要系統管事員介入,因為整個程序是自動化運行的。我們甚至不知道是哪臺服務器或是容器(或是兩者的組合)在運行我們的應用。
自動化IT長期以來一直是一個夢想,但是如今的工具化正在將這一夢想變為現實。如果我們正在使用云級應用,尤其是擴展后的微服務進行工作,那么這種工具化將十分關鍵。
針對數據中心的操作系統
這是數據中心操作系統理念發揮作用的地方。單個服務器不再重要,除非它們是計算、存儲或網絡組件。應用開始依賴于虛擬機或是容器,并成為了主要的管理組件。
我們正在通過管理整個數據中心來替代管理單個服務器,并將它們分解成支持不同應用的必須條件,用以創建開發、測試和部署環境,同時不再需要了解底層硬件情況。這與我們以前用于管理服務器和應用的方式有著很大的變化。它們標志著一個新時代的開始,為特定工作負載配置硬件已經過時了。
編排的一個重要理念是動態部署應用和服務,以利用可用的計算資源。對于分布式自動化計算來說,編排是一個重要的工具。它們通過應用定義和清單來決定主機和工作負載的部署位置,通過管理擴展和確定故障服務器,以讓服務能夠被正確處理。
谷歌的Kubernetes和Apache的Mesos項目或許是最知名的編排解決方案,但是它們距離那些可用的解決方案還有很大的差距。它們都屬于綜合性工具,需要我們在技能和資源方面投入大量資金,它們最適合于大規模部署的情況。
作為一種選擇,小型企業開始向私有云[注]轉型,這些私有云包含了由微軟OpenStack和VMware提供的編排功能。盡管如此,目前大量機構仍在測試這種用于交付下一代應用的程序和工具。
通過Docker進行管理
這些工作需要一套工具。這些工具要能夠從一臺或是兩臺服務器擴展至一個機架或是兩個機架,直至整個數據中心。在這種方案中,Docker將包含Machine、Swarm和Compose等容器自動化工具。
Machine是Docker自動化工具的核心,因為它們能夠讓安裝和配置主機服務器的程序實現自動化。通過Docker的API,我們只需要使用一個命令即可建立一個主機服務器,配置底層Docker Engine,以及安裝客戶端工具。它們還可以將主機附加至現在的Swarm集群中或是從零開始創建一個新的集群。此外,我們還能夠使用由不同云服務提供商提供的容器,通過命令行將主機安裝在選定的云環境中。
一旦我們實現了創建容器主機的自動化,開始使用Docker Engine(+微信關注網絡世界),那么我們就能夠將這些主機整合至使用Docker集群工具的計算框架中。Swarm被設計為通過與標準Docker Engine實例相同的API向容器提供一個可擴展性環境。如果我們已經在開發環境中運行Docker,那么我們就可以通過安裝Swarm進行快速擴展,并繼續使用現在的開發工具和程序。嵌入式的調度器將把容器分配給單個Docker Engine節點,以支持有助于優化部署的多個不同策略。
創建一個Swarm很容易,就如同在現有集群中增加一個新引擎一樣。我們可以使用Machine實現新引擎的自動創建或是與Docker API協作提供一個關于可用節點的索引。由于Swarm可以識別和管理注冊過的主機,因此我們的一個選項是通過Docker Hub注冊表以簡化發現過程。
Compose是一個較為復雜的工具。它們可與YAML協作創建應用摘要,顯示一個應用中的多個容器彼此之間的聯系。YAML具有重要意義,因為當我們為API查找Swagger 時,它們可讓我們訪問相同的工具以描述我們的應用。一旦我們為應用創建了一個摘要以及它們的創建方式,我們只需要一行腳本即可啟動應用。
保持簡潔
Docker編排工具最有意思的地方可能是它們非常簡潔。這三個工具都只需要非常簡單的命令。通過Jenkins等工具,我們可以很容易地為它們編寫腳本,或是在Puppet 或Chef等環境中管理它們。如果以現有的Docker API為基礎進行創建,那么它們還可以很容易地管理和控制分布式環境,簡化由開發向生產的轉型過程。
Docker工具可與Kubernetes等數據中心管理工具及公有云[注]提供的工具協同工作。通過綜合運用Machine、Swarm和Compose,在應用由從在單個服務器上進行開發和測試到在Azure或AWS上完整運行云服務的過程中,我們都能夠可以與這些應用進行協作。
開發者不需要知道他們正在向哪些東西提供容器。它們看起來像是一個Swarm,即便它們運行在一個云規模的Mesos部署上也是如此,而這種抽象就是云的精髓之所在。
原文鏈接http://news.cnw.com.cn/news-international/htm2015/20150724_321601.shtml