1. 程式人生 > >30個不可不知的容器技術工具和資源_Kubernetes中文社群

30個不可不知的容器技術工具和資源_Kubernetes中文社群

軟體容器技術影響著從開發人員、測試人員、運維人員到分析人員的IT團隊中的每一個人,它不像虛擬化一樣只是系統管理員的工具。容器包的大小和完整性使得團隊成員能夠在幾秒鐘內部署完整的環境。

容器是一個很好的工具,同時帶來了一系列下游決策,包括使用何種標準、如何儲存舊版本和部署映象、如何在生產中管理這些映象等等。

但是,該如何正確的組裝產品和服務,才能在環境中有效地構建、執行和管理容器?為了回答這個問題,我們調查了各種容器技術產品和服務,以便您可以衡量對比各種容器架構、叢集管理和部署、儲存、安全、作業系統、部署等方案的優劣。

容器執行

儘管Docker的高人氣讓其成為了一個事實標準,但市場上的輕量級Linux虛擬化工具眾多,Docker也只是眾多競爭者中的一個。你有很多選擇,包括:

Docker的同名開源容器化引擎適用於大多數後續產品以及許多開源工具。

Docker公司擁有擴充套件Docker的所有權。CSDE支援在Windows伺服器上執行docker例項。

Rkt

rkt的發音為“rocket”,它是由CoreOS開發的。rkt是Docker容器的主要競爭對手。

Solaris容器架構比Docker更早出現。想必那些已經在Solaris上標準化的IT企業會繼續研究它。

作為Linux的競爭對手,Microsoft Containers可以在非常特定的情況下支援Windows容器。

叢集管理和部署

建立映象、將它們從開發傳遞到測試並回傳,都是容易的事情,但要在生產環境中支援它們就不那麼簡單了。因為那意味著要註冊工件,要將它們作為系統部署到生產中,還要管理伺服器和伺服器集合,包括雲中的伺服器集合(即“叢集”)。叢集管理工具管理工作負載,包括將例項從一個虛擬主機轉移到另一個基於負載的虛擬主機上。叢集管理工具還負責分配資源,如CPU和記憶體。

雖然沒有叢集管理的標準,但Google的開源產品Kubernetes是最受歡迎的。有Amazon的AWS、Google雲引擎(GCE)和Microsoft的Azure容器服務的支援,Kubernetes是相對可移植的,這有助於防止供應商鎖定,Kubernetes甚至可以在私有云(如OpenStack)上執行。Microsoft、Amazon和Google都提供執行Kubernetes的容器服務,並提供商業支援。

一個用於抽象計算資源的工具,Apache Mesos可以在同一個叢集中同時執行Docker和rkt映象。DC/OS是在Mesos上構建的平臺,用作資料中心作業系統。

Docker是用於叢集管理的免費產品,Swarm從命令列執行,並與Docker 1.12及更高版本捆綁在一起。現在它只用於Docker的原生編排。

基於Web的dashboard提供對Docker的全部管理,包括控制面板、登錄檔、監視、日誌記錄和持續整合,Docker Data Center通過執行Docker Swarm進行叢集管理。雖然Docker是免費的,但Data Center是有商業支援的商業產品。當然,Docker Data Center囊括並擴充套件了公司的免費開源產品:Docker和Swarm。

嚴格上說Rancher不屬於單純的叢集部署與管理工具,因為它的本質是一個全棧化的容器管理平臺,但是Rancher是全球唯一一家同時支援Kubernetes、Mesos和Swarm的容器管理平臺。Rancher可以幫使用者自動設定並啟動Kubernetes、Mesos或Swarm所建立的叢集,並同時提高實施訪問控制策略和完整易用的使用者管理介面。

儲存容器

容器從出現伊始就被設計為可互換的、甚至是可替代的,就像貨幣一樣。這對於Web伺服器是非常好的,因為這樣就根據需求在叢集中新增或刪除相同的伺服器了。另一方面,儲存和資料庫需要永續性位置來容納資料,或者至少需要標準的介面層。如果想要遷移到全容器基礎架構的組織就需要儲存,以下公司及產品已經滿足了這一需求。

這些工具有助於將資料庫放入容器中。雖然開發ClusterHQ的供應商在去年12月停業,但它在github.com/ClusterHQ留下了大量的免費/開源軟體。

BlockBridge是“彈性儲存平臺”公司,作為使用Docker的容器提供儲存,具有OpenStack選項和軟體定義的安全儲存。

EMC/lib儲存系統提供了一個程式碼庫,使得容器儲存得以實現,而且這是免費和開放的。

EMC、NetApp和其他公司已經建立了支援儲存的外掛Docker Inc.,並且可供下載。

容器安全

對不少想進行容器化的公司而言,單點登入、LDAP整合、審計、入侵檢測和預防以及漏洞掃描都存在困難。甚至傳統的裝置和軟體也可能難以或不可能在容器叢集上配置。幸運的是,有一些廠商正在努力解決這一需求,但這一領域還很新,有兩個新公司尚沒有可用的產品。

您可以不通過元件(如作業系統、Web伺服器或內容管理系統)來構建Docker影象。但問題是,影象上未修補或過時的軟體都可能會帶來安全風險。Twistlock的漏洞掃描器通過將影象與已知威脅的資料庫進行對比來解決這一問題。這是針對不斷更新的資料庫的自動稽核。其它核心功能包括更典型的入侵檢測和法規遵從性系統。

Aqua Container Security

像Twistlock一樣,Aqua專注於建立、監視容器和在容器中實施策略,以及與CI整合,對每個構建執行安全檢查。

由Google的前安全主管、美國總統執行辦公室網路安全高階總監Sameer Bhalotra聯合創立的StackRox,目前正在準備類似的容器安全產品。雖然創業公司仍處於極低調模式,其網站上也沒有產品供應,但該公司是一個值得關注的公司。

Aporeto是另一個極低調的創業公司,公司總部位於加利福尼亞州的San Jose,而且Aporeto是Nauge Networks的前CTO。Aporeto表示,公司將提供一個“用於部署和執行現代應用程式的全面的雲本地安全解決方案”的微服務和容器。

作業系統

大多數Linux作業系統分發版都是以“方便”為準則,包含體積很大的預安裝包,以防使用者可能需要它們。相比之下,Docker是為輕量級虛擬化而設計的,以儘可能少的記憶體、磁碟和CPU執行許多相同的機器。作為迴應,不少供應商已經開發了“容器優化型”的Linux構建,嘗試在Linux分發版需要的功能與容器需要的極簡主義之間達到平衡。以下列出的是市場上最受歡迎的幾個:

RancherOS僅包含Linux核心和Docker本身,RancherOS系統映象只需要22 MB的磁碟空間。RancherOS不再將類似systemd這樣的服務管理系統內建在大多數版本的Linux中,而是啟動Docker Daemon本身作為init或“bootstrap”系統。

CoreOS Container Linux

設計為與CoreOS Linux工具和系統配合使用,CoreOS Container Linux已預配置為執行Linux容器。它還帶有自動更新開啟的功能,作業系統無需人工處理就可以自動更新。

Canonical是Ubuntu Linux的母公司,又叫Snappy,它能比其他任何Linux分發版多執行七倍多的容器。Snappy效能高,佔用空間小,並且能對作業系統和應用程式進行增量(差異)更新,從而保持輕量下載。

Red Hat Atomic Host

這些工具將使您可以在最小版本的Red Hat Enterprise Linux中使用Linux容器。那些執行Red Hat enterprise並有意向使用容器的企業,通常希望其主機執行Red Hat Atomic Host作業系統。

Nano Server是一個小型的、遠端管理的命令列作業系統,旨在以容器的形式託管和執行,也可能在雲中執行。是的,Microsoft具有創造基於Windows Server的容器的能力,Nano是專門為此而構建的。其他可以使用Windows容器的Microsoft作業系統包括Windows Server 2016和Windows Pro 10 Enterprise。

相較於其它容器作業系統,220MB大小的Photon可謂體積很大了,不過它仍然只是最新版本的Windows的大小的百分之一。這個Linux容器主機旨在與VMware的vSphere虛擬化產品整合。

容器相關大會和技術資源

一旦你真的決定開始使用容器,那麼最難的部分一定是實施和支援它們。從行業大會、技術支援論壇到商業支援,這裡有你需要的資源。

如果您的公司追求的是全Docker架構,並且使用的是Docker Data Center、Swarm和Docker的商業夥伴的其他產品,那DockerCon是必參加的大會之一。DockerCon涵蓋的內容從入門教程,到提示、技巧和尖端想法,一應俱全。

這個大會規模比DockerCon小,但範圍更廣。在2016年,Containe Summit在美國召開了兩個大型會議和12個小型會議。Container Summit是與正在努力實施和管理容器技術的同行交流的好地方。

這是一個更大的大會,其特別之處在於,參加大會的通常是容器領域的思想領袖,以及各類的供應商。 ContainerCon通常與LinuxCon和CloudOpen同時舉辦。

CoreOS Fest可以視為CoreOS對DockerCon的回答了。參加CoreOS Fest可以獲得和rkt/CoreOs技術棧有關的培訓與支援資訊。

最大的程式設計師線上問答網站,StackOverflow提供了大量有關在容器中部署應用程式的資訊。

Docker組建的社群網站,提供以Docker為中心的資訊和論壇。

CoreOS的社群網站專注於通過聚會和聊天將人們和專家連線起來。

向著容器化,出發!

容器的概念很簡單:它是一個複雜的實現。如果您的技術團隊只是嚴格地將容器用於構建和測試,那您只需要選擇正確的作業系統和容器型別即可。然而如果你的構建系統正在為每個構建建立映象,那麼在容器化的路上,你理應走得更遠!

擴充套件過去的構建/測試意味著選擇一整套包含操作、部署、監視、支援和安全等在內的技術棧。CoreOS和Docker都提供了各種擴充套件和支援,使自己的產品生態系統更容易整合。但是如果你喜歡改變自己的環境,那麼使用Kubernetes進行叢集管理可以防止供應商鎖定,並且每個主要的雲提供商都支援它。

以上是容器資源的簡潔列表,如果你有更好的提示和建議,請不吝賜教噢!一起向著容器化,出發吧!