?一,Rancher是什么
1.1 Rancher背景
?Rancher Labs成立于2014年??偛吭O(shè)立在美國加州的Cupertino。在美國的亞利桑那州的菲尼克斯和中國的深圳設(shè)立有研發(fā)中心。
?核心團隊自2008年就在一起工作,曾創(chuàng)立Cloud.com并推出了CloudStack,
經(jīng)歷了從VM到容器的整個虛擬化技術(shù)演進過程。
?Rancher的兩個產(chǎn)品,Rancher平臺和Rancher操作系統(tǒng),已經(jīng)有了超過4000
萬次的下載量,被大量的運用在了云計算的各個領(lǐng)域。
?作為容器領(lǐng)域的先行者和重要參與者,Rancher Labs是OCI、CNCF的成員;也是Docker生態(tài)核心組織-Docker治理委員會(DGAB)的成員。
1.2 Rancher創(chuàng)始人
?Rancher創(chuàng)始人是梁勝博士。
?梁勝博士是美國Rancher Labs Inc.公司聯(lián)合創(chuàng)始人及公司CEO。
?在此之前,從2011年至2014年間,梁博士擔任Citrix System Inc.公司云平臺首席技術(shù)官,也是Citrix公司首位華人CTO。
?在加入Citrix公司之前,梁勝創(chuàng)立了cloud.com公司并擔任首席執(zhí)行官,直至2011年7月被Citrix以2.3億美金購入旗下。
?之前他作為Sun Microsystems公司核心主任工程師,先后領(lǐng)導(dǎo)設(shè)計和開發(fā)了Java 2平臺的JNI(Java Native Interface)和JVM(Java虛擬機)。
?梁勝畢業(yè)于中國科技大學少年班,并擁有耶魯大學計算機博士學位。
1.3 Rancher簡介
1.4 容器生態(tài)圈
?什么是容器?
與宿主機系統(tǒng)共享內(nèi)核但與系統(tǒng)中的其他進程資源隔離的運行環(huán)境。
?容器相關(guān)技術(shù)的歷史(部分)
1982 chroot in Unix
2000 FreeBSD Jail
2001 Linux VServer
2004 Solaris Zone o 2005 OpenVZ
2008 LXC
2013 Docker
2014 Rocket(Rkt) o ......
?容器生態(tài)圈知名產(chǎn)品體系
1.5 Rancher容器管理平臺系統(tǒng)架構(gòu)圖
1.6 Rancher容器管理UI界面
二,Rancher如何搭建
提示:為了降低理解難度,以下過程全部采用圖形化界面操作以及漢語進行演示,如果想有更進一步的認識或者?你是一個極客,請手動敲命令進行操作
2.1 安裝Docker環(huán)境
?Windows用戶或者Mac用戶通過下載? DockerToolbox 來安裝 docker, docker-machine 和其他輔助工具,可以到頁面https://www.docker.com/products/docker-toolbox中下載
?安裝過程中會檢測是否已經(jīng)安裝Virtual Box,如果未安裝,則會提示安裝Virtual Box
?安裝成功后,桌面會出現(xiàn)Docker Quickstart Terminal 和 Kitematic (Beta)圖標
?點擊Kitematic(Docker圖形化管理工具),第一次啟動的時候自動創(chuàng)建 Virtual Box 的? default 虛擬機.可以打開Virtual Box進行查看,如下圖:
?Kitematic啟動成功之后如下圖,至此,Docker環(huán)境創(chuàng)建成功
2.2 安裝Rancher
?Rancher的各種容器管理理念均架構(gòu)在由Rancher server和rancher agent構(gòu)建的Infrastructure之上。Rancher server是Rancher的核心,提供核心容器管理服務(wù)以及API服務(wù)。
?Rancher的一個設(shè)計理念是所有組件都Containerized(容器化)
?搭建一個單節(jié)點的Rancher Server為例,首先安裝一個Rancher server,直接在Kitematic搜索Rancher,如下圖,點擊CREATE:
?然后選中Rancher server,點擊Start,加載完畢后,點擊EXEC,輸入命令:PS AUX,可以看到內(nèi)部,/usr/bin/s6-svscan是容器的第一個啟動進程,/service這個 路徑作為其命令行參數(shù),又分別內(nèi)部啟動了mysql,graphite_exporter,cattle等服務(wù),注:單節(jié)點rancher server的數(shù)據(jù)都保存在其內(nèi)部的MySQL中,而多節(jié)點rancher server則采用一個外部的MySQL存儲數(shù)據(jù)。
?等待一定時間后,WEB PREVIEW出現(xiàn)了預(yù)覽界面,點擊小箭頭,直接在瀏覽器打開。
?打開Rancher server界面,如下,至此,Rancher server已經(jīng)初步搭建成功!
2.3 管理Rancher,添加用戶(Account)
?第一次啟動Rancher后,Rancher的UI是沒有訪問控制的,點擊系統(tǒng)管理->訪問控制,如下圖,可以看到有7種方式,選擇LOCAL,輸入用戶名和密碼
?然后點擊退出登錄,可以看到如下界面,訪問控制已經(jīng)添加上
2.4 管理Rancher,設(shè)置環(huán)境(Environment)
?登錄之后,點擊左上角環(huán)境管理,Rancher 支持將資源分組歸屬到多個環(huán)境。 每個環(huán)境具有自己獨立的基礎(chǔ)架構(gòu)資源及服務(wù),并由一個或多個用戶、團隊或組織所管理。
例如,您可以創(chuàng)建獨立的“開發(fā)”、“測試”及“生產(chǎn)”環(huán)境以確保環(huán)境之間的安全隔離,將“開發(fā)”環(huán)境的訪問權(quán)限賦予全部人員,但限制“生產(chǎn)”環(huán)境的訪問權(quán)限給一個小的團隊。
如下圖,建立Pass云測試和Pass云管理,兩套環(huán)境,分別給測試和開發(fā)人員使用,可以修改它的Name、Container Orchestration引擎(cattle、k8s和swarm,默認cattle)以及Access Control,我們使用Cattle進行編排引擎。
下圖可以體現(xiàn)出環(huán)境的隔離性:
環(huán)境管理,也可以基于環(huán)境模板,如下圖,比如Cattle,上面已經(jīng)安裝好了ipsec,healthcheck等服務(wù):
?創(chuàng)建好環(huán)境后,環(huán)境下面還沒有設(shè)置沒有任何Resources(主機、存儲 等)可供使用(比如創(chuàng)建Containers)。
選擇基礎(chǔ)架構(gòu),添加主機(hosts),如下圖,可以自己定義物理機或者虛擬機,也可以選擇亞馬遜云等,如果沒有發(fā)現(xiàn)你想使用的云,比如阿里云,可以選擇管理docker-machine驅(qū)動進行添加:
2.5 管理Rancher,設(shè)置主機(Hosts)
?以添加本地環(huán)境作為主機資源為例,將下圖中的命令在命令行進行執(zhí)行
?執(zhí)行成功后,可以看到基礎(chǔ)設(shè)施里面多了一個主機,并且這個主機上,已經(jīng)默認在跑了一些應(yīng)用,比如healthcheck,至此一套基礎(chǔ)的架構(gòu)已經(jīng)具備了
2.6 管理Rancher,設(shè)置?應(yīng)用(Stacks)
?應(yīng)用(stacks)就是由一組服務(wù)組成,比如上圖的應(yīng)用:ipsec由cni-driver-1和ipsec-1服務(wù)組成。
?而服務(wù)是一組由相同docker鏡像創(chuàng)建的容器,服務(wù)擴展了Docker的“l(fā)ink”概念以利用Rancher的輕量級分布式DNS服務(wù)用于服務(wù)發(fā)現(xiàn)。服務(wù)可以單獨添加或通過應(yīng)用商店部署。
?服務(wù)也能夠利用其他Rancher內(nèi)置服務(wù),如負載均衡、健康監(jiān)控、升級支持以及高可用。
下面這幅圖直觀描述了?用戶, ?環(huán)境與?應(yīng)用之間的關(guān)系:
?在Pass云管理環(huán)境,創(chuàng)建一個example應(yīng)用,如下圖,點擊創(chuàng)建:
?創(chuàng)建成功后如下圖:
2.7 管理Rancher,設(shè)置?服務(wù)(Services)
?如上圖,點擊添加服務(wù),輸入名稱,選擇鏡像,鏡像就可以理解成為用戶提供服務(wù)的運行程序。這里選擇healthcheck為例子。下面可以進行一些端口映射,服務(wù)連接,網(wǎng)絡(luò),安全,調(diào)度等配置
?成功后,可以看到下圖,可以對這個服務(wù)進行升級,停止,刪除等操作
?如果用戶訪問量過大,還可以進行針對這個服務(wù),增加運行節(jié)點的數(shù)量或者說集群,如下圖,可以增加節(jié)點數(shù)量,點擊后,會自動尋找hosts列表,資源比較空閑的主機,或者其他策略??梢钥焖俚膶⒎?wù)部署到任意多個主機節(jié)點上。
?點擊查看日志,可以看到服務(wù)運行的實時日志:
?三,Rancher使用體驗
3.1 Rancher自帶了一套網(wǎng)絡(luò)方案
?rancher 自帶了一套網(wǎng)絡(luò)方案,可以實現(xiàn)跨機器的docker容器互聯(lián)。
?其原理大致是:在每個機器上通過docker啟動一個路由容器,將docker容器啟動時的ip定義為XX.XX網(wǎng)段,并在iptables中將XX.XX網(wǎng)段的請求轉(zhuǎn)發(fā)到路由進程的監(jiān)聽端口,進行udp的封裝和解封。
?其原理是隧道技術(shù),都是通過一個程序進行封包解包,并引導(dǎo)docker啟動容器時指定相應(yīng)的ip。
3.2 Rancher使用性
?自帶了一套UI,并集成了日志,shell等
?支持服務(wù)發(fā)現(xiàn),在rancher-agen容器中運行了dns服務(wù)
?支持容器伸縮,一鍵擴容
?支持多套環(huán)境管理(一套方案,支持開發(fā)、測試,生成等多個環(huán)境,環(huán)境彼此隔離,也即多租戶隔離)
總體而言,比較穩(wěn)定,易于使用
3.3 Rancher解決的典型場景
?新一代的私有云、混合云
混合云下的容器服務(wù):
應(yīng)用在不同云間動態(tài)擴展和遷移:
容器改變了應(yīng)用管理的模式:
?企業(yè)應(yīng)用商店和一鍵部署應(yīng)用
?構(gòu)建輕量級Pass服務(wù)
簡書是最好的寫作平臺,關(guān)注我的簡書,獲得海量架構(gòu)資料!絕對給你驚喜!?