Rancher大中華區技術總監帶你6分鐘瞭解Rancher 1.5


內容來源:2017年4月22日,RancherLabs大中華區技術總監江鵬在「不落地,無容器」技術沙龍進行《Rancher 1.5技術特性解析》演講分享。IT大咖說做爲獨家視頻合做方,經主辦方和講者審閱受權發佈。web


摘要

Rancher容器管理平臺1.5版已正式與你們見面了,這次分享將由Rancher Labs大中華區技術總監介紹Rancher的版本演進歷史以及Rancher 1.5版本的變化、新特性及功能。docker

嘉賓分享地址:t.cn/RajmBBV微信

Rancher Labs產品

做爲一家專一於容器技術的公司,Rancher Labs目前有三個產品,其中Rancher和RancherOS都已經正式發佈,Longhorn存儲目前還處於測試階段。如下是三個產品的概要介紹:網絡

Rancher:RancherLabs推出的全棧化容器管理平臺。做爲一個徹底開源的容器管理平臺,截止目前Rancher Server和相關鏡像在Dockerhub上的下載次數已經超過4000萬,全球的活動部署數量超過10000個。負載均衡

RancherOS:RancherOS是Rancher Labs推出的專門用於運行容器的最小化操做系統。RancherOS僅包含運行Docker必須的軟件,安裝鏡像大小僅爲幾十兆。在RancherOS中,一切都是由Docker管理的容器。RancherOS會啓動兩個Docker實例。一個稱爲系統Docker,是內核啓動的第一個進程,即PID 1。它取代了其它Linux發行版本中的初始化系統,如sysvinit或system,負責初始化系統服務,如udev、DHCP和控制檯,並將全部系統服務做爲Docker容器進行管理。系統Docker會建立一個特殊的系統服務容器,即用戶Docker,主要負責建立容器。全部的用戶容器都運行在用戶Docker容器中,所以刪除全部的用戶容器並不會影響運行RancherOS服務的系統容器。運維

Longhorn:基於微服務的開源分佈式塊存儲系統。Longhorn遵循微服務的原則,利用容器將小型獨立組件構建爲分佈式塊存儲,並使用容器編排來協調這些組件,造成彈性分佈式系統。每一個控制器上只有一個volume,這將大大簡化存儲控制器的設計。由於控制器軟件的故障域僅限於單個volume,因此控制器若崩潰,也只會影響一個volume。Longhorn充分利用了近年來關於如何編排大量的容器和虛擬機的核心技術。例如,Longhorn並無構建一個能夠擴展到100,000個volume的高度複雜的控制器,而是出於讓存儲控制器簡單輕便的考慮,建立了100,000個單獨的控制器。而後,咱們能夠利用像Swarm、Mesos和Kubernetes這樣的最早進的編排系統來調度這些獨立的控制器,共享一組磁盤中的資源,協同工做,造成一個彈性的分佈式塊存儲系統。分佈式

今天咱們主要介紹Rancher容器管理平臺,關於RancherOS和Longhorn的更多信息,能夠參考RancherLabs官方網站(www.rancher.com)或者Rancher中文網站(cnrancher.com)。微服務


上圖說明了Rancher容器管理平臺的整體概覽,自下而上分別爲:oop

基礎設施層:經過集成docker-machine及相關主機驅動,Rancher能夠和目前絕大多數公有云和私有云平臺進行自動化集成。用戶無需預先建立容器主機,經過Rancher的添加主機界面,輸入相關平臺的accesskey和secretkey等信息並選擇相應設置以後,RancherServer就能夠自動化的爲用戶建立主機、安裝Docker引擎、安裝RancherAgent並將主機加入到RancherServer所管理的環境中。性能

多租戶環境管理:單套Rancher Server能夠管理多個環境。在Rancher平臺中,一套環境是一組使用特定容器編排調度引擎的主機的集合(集羣)。例如經過Rancher平臺,用戶能夠建立一個Kubernetes環境(集羣),同時也能夠建立並管理另外一個使用DockerSwarm或者Mesos編排的環境。

基礎設施服務:從Rancher 1.2版本開始,爲了知足用戶運行容器的多樣化需求,Rancher平臺自身進行了微服務化改造。支撐容器運行的各類基礎設施服務,包括容器網絡、存儲插件、DNS服務、負載均衡等都以微服務容器化的方式在平臺中運行。用戶經過Rancher平臺提供的環境模板,能夠靈活的編輯定義本身但願使用的基礎設施服務,從而創個性化的容器運行環境。

容器編排調度:目前Rancher平臺支持的容器編排調度引擎包括Kubernetes、Mesos和DockerSwarm,同時Rancher還提供自研的Cattle編排引擎和Windows容器支持。

用戶管理:Rancher平臺提供本地用戶認證及受權管理,同時也支持與多種企業級認證系統進行集成,包括微軟活動目錄(AD)、AzureAD、OpenLDAP、Github等。不一樣用戶能夠在環境級別設置不一樣的權限角色。

應用商店:應用商店是Rancher獨具特點的另一個功能。經過各類容器編排定義和RancherCompose加強,用戶能夠一鍵以容器化的方式部署各類複雜的企業級應用,包括Hadoop和Spark等。部署時能夠根據須要設置各類部署參數,部署後應用商店的應用有版本更新時用戶會收到提示並能夠進行一鍵升級。

Rancher容器管理平臺的整體概覽以下,下面咱們詳細介紹一下Rancher 1.5版本中引入的新特性。

Rancher1.5特性概覽

Catalog模板的條件邏輯支持

Catalog模板是Rancher用戶中很是流行的一個功能,經過建立自定義的Catalog和模板,用戶能夠將各類複雜應用進行一鍵容易化部署。在1.5以前的版本中,Catalog模板支持內置的多種變量定義和解析。在Rancher 1.5版本中,Rancher能夠經過Go模板系統使用條件邏輯。把條件邏輯和可變插值結合在一塊兒,用戶就能夠更加靈活地生成更多動態Catalog模板了。

一個具體的使用案例就是Rancher內置的Kubernetes系統編排模板。以下圖所示,在1.5版本中,用戶在設置Kubernetes模板時能夠選擇是否須要啓動多平面隔離部署。


當該選項被設置爲required時,Rancher在部署etcd、kubernetesAPIServer和kubelet等容器時將要求各主機具有對應的主機標籤,從而確保上述服務被部署到不一樣的主機之上,實現數據平面、管理平面和計算平面的隔離。具體的模板參數設置以下圖所示:


API攔截器

在實際客戶項目中,結合內部運維管理流程對容器管理平臺進行必定程度的個性化定製是很是廣泛的需求。Rancher從1.5版本開始支持攔截全部API請求,而且能夠向每一個請求添加前/後過濾器邏輯。這讓管理員可以更加便利地控制API訪問、或是添加細粒度API策略管理,以修改來自Rancher的API請求和響應。


如上圖所示,在設置API攔截規則後,對應的API請求將被攔截,並可根據設置轉發到其餘系統進行進一步處理和判斷後決定後續處理操做。API攔截器能夠普遍的應用於各類個性化定製場景,例如基於Rancher的容器雲平臺的計費邏輯處理、平臺各類操做的權限控制和流程審批處理等。

限制容器調度到特定主機

在Rancher 1.5以前的版本中,和業內大多數容器編排調度引擎同樣,Rancher支持基於標籤的親和或反親和策略,根據主機所具有的標籤,用戶在建立容器時能夠進行條件判斷,從而將容器調度或者不調度在特定主機。這種調度方式能夠形象的稱之爲「以容器爲中心的調度判斷」,主機只是根據其設置的標籤「被動」的接受或者拒絕容器的調度。在某些特定場景之下,咱們可能須要「以主機爲中心的調度判斷」,好比在一個大的環境(集羣)中,咱們但願一些特定的主機專用於某些特定業務應用容器的運行,而拒絕其餘應用容器。一般狀況下,爲了知足此項需求,咱們須要爲主機和全部建立的容器設置標籤和調度規則來實現上述的需求。Rancher 1.5中引入了」Require Container Label」這一主機標籤,當主機設置此類型的標籤時,集羣中的全部容器僅當也具有相同標籤時纔會被調度到相應主機,而其餘任何容器默認狀況下都不會被調度到此類主機。從而以很是簡單的方式知足了上述「專機專用」的需求。

更多的Webhook功能

在Rancher 1.5中,引入了兩個新的webhook功能支持,具體說明以下。

Webhook-自動伸縮主機

容器的自動彈性伸縮支持是容器管理平臺必備的功能。可是一個容器集羣的主機資源數量是有限的,當主機資源自己達到瓶頸時,僅僅在集羣範圍內有限的主機之上伸縮容器並不能實際解決問題。Rancher 1.5中引入了自動伸縮主機的功能,用戶能夠建立一個webhook並設置主機標籤,當webhook被觸發時,Rancher將從具有標籤的主機中選擇最近加入的一臺的配置做爲模板,根據用戶的設置去自動添加新的主機到環境中或者從環境中移除相應的主機。從這一點來講,具有此類標籤的主機組成了一個主機彈性伸縮組,與容器的彈性伸縮相結合,能夠更靈活的知足系統彈性伸縮的需求。

Webhook-升級服務

結合容器管理平臺的CICD是容器使用的主要場景之一。一般狀況下,當開發人員更新代碼、打包新的鏡像並推送鏡像到鏡像倉庫後,須要經過腳本或者API的方式調用容器管理平臺,基於新的鏡像升級已有容器,從而進行後續的測試或完成系統升級。Rancher在1.5版本中引入了根據鏡像更新升級服務的功能,與鏡像倉庫相結合,當鏡像更新時,鏡像倉庫能夠觸發對應的webhookURL,Rancher能夠根據設置使用新版本的鏡像升級環境中的服務。與傳統的API或者腳本方式相比,使用webhook的方式升級服務打通CICD流水線更加簡單直觀。須要注意的是,此項功能須要鏡像倉庫支持,目前DockerHub和阿里雲鏡像倉庫均支持設置webhook聯動。

加強的網絡策略支持

網絡策略是Rancher在1.4版本中引入的功能。在Rancher的環境中,默認狀況下同一環境中的全部容器彼此之間網絡是能夠互相聯通的,用戶能夠設置網絡策略限制不一樣容器之間的網絡訪問。在以前的版本中,用戶只能經過API或者APIUI設置網絡策略。在新版本中,用戶能夠經過環境設置UI設置網絡策略,同時網絡策略增長了更靈活的策略支持。用戶能夠設置同一個應用棧、同一個服務內部的容器之間的連通性,也能夠經過設置服務之間的link定義容器網絡的連通性。

其餘功能加強

上面列舉的這些是Rancher 1.5的主要功能加強。除此以外,Rancher 1.5還引入瞭如下這些新特性,包括:

Kubernetes部署加強

Rancher能夠快速部署Kubernetes集羣,可是因爲網絡訪問的緣由,在國內訪問一些特定的位於gcr.io鏡像倉庫的鏡像存在問題。在新的版本中,用戶能夠設置從其餘鏡像倉庫下載這些鏡像,從而保證Kubernetes部署的順利完成。

UpgradeManager功能

Rancher版本升級時對應的基礎設施服務可能須要升級。因爲基礎設施服務之間彼此存在依賴關係,在一個大規模環境中升級基礎設施服務多是一個負擔。Rancher 1.5中引入了UpgradeManager功能(默認關閉),啓用後系統將以特定的schedule逐步升級環境中的基礎設施服務。

容器疏散功能

在平常運維工做中,對特定主機進行維護操做是一個很常見的需求。Rancher 1.5中引入了容器疏散功能,用戶點擊疏散按鈕後,運行在該主機上的所有應用容器將被調度到其餘主機,該主機被設置爲Inactive狀態再也不接受容器調度,管理員就能夠對主機進行維護操做。


做爲一個新興技術,容器和周邊生態圈都在以很是快的速度演進。RancherLabs也在不斷的打磨更新產品,給用戶提供最好最新的容器管理平臺。關於Rancher產品的最新信息和容器技術的相關討論,你們能夠關注RancherLabs的官方微信(@rancherlabs)。

我今天的分享就到這裏,謝謝你們!

福利贈票!

IT大咖說做爲第二屆APMCon中國應用性能管理大會的官方現場直播合做夥伴,特爲小夥伴們爭取了少許免費VIP票福利(原價¥1388)!

獲取方式:

掃碼加這位小姐姐微信(或加微信號:ITDKS666),她會告訴你咋獲取!(備註:聽雲社區)

相關文章
相關標籤/搜索