Rancher及Docker快速上手指南(二)

......接上一篇文章

四、添加和管理容器

在Rancher通過界面方式添加容器的方式其實有兩種寞埠,一種是在上面提到的管理主機屁置,直接添加獨立容器(獨立于Rancher平臺的容器,就算Rancher平臺停了仁连,容器還會在各自主機保留)蓝角,另一種是下一節(jié)會講到的,通過應用添加的方式添加容器(由Rancher平臺管理,只要應用刪除或Rancher沒了使鹅,對應的容器也將失效)揪阶。

點擊主機面板下的【添加容器】按鈕,彈出添加容器界面患朱,進行以下配置:

1. 鏡像名

輸入本主機唯一并能標識的容器名稱鲁僚,再輸入鏡像名,默認是ubuntu:14.04.3(即最新版本的基礎鏡像麦乞,就是最最干凈Linux的包)蕴茴,關于鏡像,可以通過docker search [鏡像名] 去搜索:

?也可以進入docer hub頁面上去搜索姐直,一搜就能搜出大量的公共鏡像倦淀,并且能看到各個歷史版本:

通過標示tag我們就能拉取指定版本的鏡像,如tomcat:8.0-jre8声畏,如果不加tag撞叽,就寫tomcat,默認下載的是最新版本的鏡像插龄,即tomcat:latest

【創(chuàng)建前總是拉取鏡像】在第一次時需要勾選愿棋,如果本地已有鏡像,就不需要勾選了(避免反復拉取鏡像浪費感情)均牢。注意:如果你新建了一個本地鏡像糠雨,想直接生成容器,也不要勾選這一項徘跪,否則到鏡像庫里是找不到你新建的本地鏡像甘邀,就可能報錯。

2. 端口映射

這一步很重要垮庐,因為要映射的端口要事先添加好松邪,事后就無法添加端口了(事后添加新端口需要重建容器,即刪除原有容器)哨查,但是公開端口可以事先修改(比如8080端口映射成80端口逗抑,以后發(fā)現(xiàn)80端口需要被其他應用占用,那么就可以將8080端口改成映射為8080端口)寒亥。如下所示邮府,ganglia應用需要有大量的監(jiān)控端口,就全列上:

3. 命令

基本不需要設置該面板溉奕,唯一比較常見的是要在容器中添加環(huán)境變量褂傀,比如開啟SSL訪問的容器應用,就需要添加如下環(huán)境變量腐宋,docker run命令中包含的變量格式為:

-eREGISTRY_HTTP_TLS_CERTIFICATE=/root/certs/domain.crt -eREGISTRY_HTTP_TLS_KEY=/root/certs/domain.key

那么對應到設置面板里就如下(直接復制粘貼,變量和值自動填入以下輸入框):

4. 卷

一般也不需要設置該面板,但是卷的作用還是非常大胸竞,比如上面提到的安裝Rancher的命令欺嗤,通過設置卷就能讓容器里的數據固化到主機上(類似于ln軟鏈接的原理),避免容器刪除時卫枝,一些數據也隨著容器一起消亡煎饼,比如mysql數據服務。我們將上面Rancher的安裝命令涉及到卷的部分校赤,放到面板上設置吆玖,就如下所示:

格式說明:冒號前面是主機上的目錄,冒號后面是容器里的目錄马篮。

5. 網絡

標準的Docker其實只有四種模式沾乘,橋接、容器浑测、主機翅阵、無,而且橋接Bridge是默認模式迁央,這里的橋接和虛擬機的橋接類似但不是一個概念掷匠,虛擬機的LinuxBridge相當于是一個虛擬交換機,但Docker Bridge要復雜的多岖圈,同時具備有 veth pair讹语,有網絡命名空間, 還有 NAT的特性蜂科。而Rancher下卻有五種網絡模式顽决,多了一個托管模式(Managed),而且還是默認模式崇摄,Managed網絡是通過IPsec來建立起安全隧道來保障各service之間可達性的擎值。相比于其他一些VPN技術,IPSec最大的優(yōu)勢在于其安全性逐抑;這種安全除了指業(yè)務數據加密傳輸外鸠儿,還包括了一套秘鑰交換的安全機制,這是諸如VXLAN之類的其他L3 VPN技術無法匹敵的厕氨。帶來了安全进每,但卻犧牲了網絡性能,Managed網絡表現(xiàn)出來的性能損耗較嚴重(當然這也與運行Rancher的主機配置有關)命斧,性能關系基本上按以下關系田晚,大家可以權衡一下用不同的網絡模式:

Host模式(安全性差) > Bridge模式(安全適中) > Managed模式(安全最高)

介紹一下五種網絡模式(橋接、容器国葬、主機贤徒、托管(默認模式)芹壕、無):

(1)[橋接Bridge]表示容器與主機是橋接關系(docker0網橋相當于是新路由器)

(2)[容器Container]表示與另一個容器共用一個虛擬網絡

(3)[主機Host]表示讓容器與主機共用一個網絡(在容器里用ifconfig命令看到的結果與主機上一模一樣,這種方式等于容器的隔離性沒了接奈,相當于成了宿主機上的一個進程服務)

(4)[托管Managed]表示容器與主機按照默認的網橋模式連接(相當于虛擬機的NAT模式踢涌,docker0網橋相當于是路由器)

(5)[無None]表示容器沒有網卡設備,需要通過別的手段配置網卡(基本上沒用到)

我們通常就只要用托管(Managed)模式或橋接(Bridge)模式序宦,對于集群化環(huán)境或是對網絡性能要求高一點的睁壁,建議采用橋接(Bridge)模式。比如想要頻繁操作容器互捌,用了橋接模式潘明,CLI連接或命令行連接相對要穩(wěn)定。

通過添加容器面板配置網絡模式的選項如下所示:

另外我們通過ifconfig可以看出托管(Managed)模式下秕噪,容器的IP隨機完全沒有規(guī)律:

而橋接(Bridge)模式下钳降,容器的IP網址生成比較有規(guī)律性(基本是0.2、0.3遞增)

6. 安全/主機

這一項基本上不用配置巢价,除非你想對容器限制內存或CPU(默認不限制牲阁,就是完全共享主機的系統(tǒng)資源)、或者需要掛接外部設備壤躲,另外就是日志驅動的配置:

我們在使用Docker處理日志的時候多數是采用Dockerlogs 命令城菊,因為docker默認采用的log-driver是json-file,所以Docker會捕捉每一個容器進程STDOUTS和STDERR碉克,保存在磁盤文件.json.log中供Dockerlogs命令查詢凌唬。日常調試按默認基本上夠用,但是如果是要大規(guī)模集群化部署漏麦,還是需要有專業(yè)的日志系統(tǒng)客税,比如syslog + rsyslog + ELK(ElasticSearch、Logstash撕贞、Kibana)方案更耻,可以通過Rancher的應用商店去部署日志集成系統(tǒng),具體可以去網上找相關解決方案捏膨。

對于安全這塊秧均,有時候需要配置[主機完全訪問權限],對應的docker run容器指令為--privileged=true号涯,相當于是給容器擴權目胡,配置項如下:

7. 密文、健康檢查链快、標簽

具體作用不明誉己,密文將以指定的文件名映射到容器內的/run/secrets/的目錄下。而且密文需要事先定義好才能在該配置模板選擇設定域蜗。具體在【基礎架構à密文à添加密文】巨双。

對于健康檢查噪猾,一般不用配置,由Rancher平臺負責健康檢查筑累,如果需要對外提供容器健康檢查的接口畏妖,就需要配置,包括TCP接口和HTTP接口兩種方式疼阔,在下一節(jié)的添加和管理應用中,也可以通過添加外部服務來進行調取半夷。

標簽面板中婆廊,能添加容器的標簽,通過添加標簽(支持多個)來方便識別容器巫橄,基本上可以不用淘邻,但是如果是要構建負載均衡服務(在應用管理界面中添加),可以通過添加選擇器規(guī)則湘换,然后容器標簽就能作為規(guī)則條件來識別具體要負責均衡的目標容器宾舅。

8. 調度

Rancher比較智能的一點,就是主機的智能調度彩倚,比如你要添加一個容器筹我,Rancher會根據各個主機的空閑程度,自動分配一臺機器來部署新的容器帆离。

如果是在指定主機下蔬蕊,點擊添加容器,那么默認調度的是本機哥谷。如果是要更改岸夯,可以通過選擇在指定主機上運行,來設定不同的主機安裝容器们妥。

還有個功能是添加調度規(guī)則猜扮,這個在集群化部署中比較有用,就是在自動選擇符合調度規(guī)則的主機時监婶,我們可設定個規(guī)則旅赢,讓它必須按我們的規(guī)則選擇主機。比如按標簽規(guī)則:

從這里也看出添加主機時压储,配置標簽(Label)是多么重要鲜漩,我們很多時候可能真需要通過標簽來識別不同的主機,特別是在批量添加容器或應用時集惋。

配置上以上這些配置項后孕似,就可以點擊【創(chuàng)建】來完成容器的創(chuàng)建了。

9. 容器監(jiān)控

通過容器詳細界面刮刑,可以看到容器的實時CPU喉祭、內存养渴、網絡、存儲IO指標泛烙,可以看到容器的所屬主機理卑、容器IP、Docker ID蔽氨、鏡像藐唠、映射的端口、卷信息鹉究、網絡模式宇立、調度信息等等。

10. 容器管理

容器的管理的其實只有重啟自赔、停止妈嘹、刪除、編輯外部映射端口這幾項有用绍妨,其他都沒什么用润脸,因為容器一旦創(chuàng)建,其生命周期就延續(xù)到消化刪除他去,很少在使用過程中還需要做調整和更改的(注意:主機面板上的停止毙驯、刪除容器操作其本上是針對獨立容器,應用容器建議在應用面板上管理操作)灾测。另一個最大的作業(yè)是執(zhí)行命令行:

執(zhí)行命令行尔苦,相當于是以界面的形式登錄到容器內部環(huán)境,這個比較好用行施,相當于可以連接到容器內部允坚,執(zhí)行一些 Linux命令,進行一些常規(guī)操作蛾号,比如容器應用的修改配置文件稠项。修改完還是需要重啟容器才能生效(這一點比直接通過命令的方式操作要方便),但是涉及到容器與宿主機之間的文件對拷鲜结,還是需要通過Linux命令來完成展运,因為在容器中沒有安裝SSH并開放22端口的情況下,是無法直接連接容器上傳文件的精刷,常用交互命令:

# 往容器中拷貝文件:

docker cp /home/testfile 容器ID:/home/

# 將容器中文件拷出:

docker cp 容器ID:/home/testfile /home/

# 在容器中安裝新的程序

docker run image_name apt-get install -y app_name

以[執(zhí)行命令行]的方式進入容器的效果圖如下:

對于網橋(Bridge)模式創(chuàng)建的容器拗胜,可以很方便的通過[執(zhí)行命令行]進行入,而對于以托管(Managed)模式創(chuàng)建的容器怒允,進入該窗口會不太穩(wěn)定雳灾,會受Rancher自身網絡的影響台谢。

五单料、添加和管理應用

通過應用的方式部署和管理容器劳较,是一種正確的思維夭拌,對于容器化來說,我們必須把應用程序進行拆解,降低維護管理的耦合性,而容器正是適應這種管理的最佳思維方式爬立。就拿Rancher管理平臺來說,就是一個完整的應用万哪,包括Rancher-Server侠驯、Rancher-Agent、healthcheck奕巍、ipsec等服務陵霉,而每個服務對應的是一個容器或多個容器(比如一個mysql服務是一個容器,添加成4個容器伍绳,就變成了一個包含4個節(jié)點的mysql服務),那么這些容器服務組合在一起才能提供完整的應用服務乍桂。所以服務是我們對外提供訪問的窗口冲杀,而應用是對外提供完整服務的集合,容器只是滿足耦合性和輕量化部署管理的最小單元睹酌。

同樣一個集群也可以包括多個應用权谁,一個應用包含多個服務或容器,比如Jmeter工具構建的一個集群憋沿,包括Jmeter-Master旺芽、Jmeter-Slaves、grafana監(jiān)控三大應用辐啄,而其中Jmeter-Slaves應用包含10個節(jié)點(即10個容器)采章、grafana監(jiān)控包含grafana和influxdb容器,而一個集群也可以作為一個完整的應用對外服務壶辜。

所以我們提倡通過應用的方式來組織管理容器化集群悯舟,避免單個容器的管理過于零散和不可控(應用管理下的容器就算在主機中被停也會再次下發(fā)重建命令,所以我們要權衡好砸民,畢竟獨立容器不受制管理平臺的啟停抵怎,雖然弱管理但靈活性也更強)。

1. 添加應用

Rancher的應用包含兩類岭参,用戶應用和基礎應用反惕,其中基礎應用屬于Rancher平臺自帶的我們不可動,用戶應用才是我們要維護和管理的演侯。

對于應用的管理界面姿染,可以看到有添加應用(自定義應用)和從應用商店添加兩個按鈕,我們一般只用添加自定義應用秒际,而應用商店里的應用類似于手機上的APP商店盔粹,都是一些成熟的應用隘梨,比如Hadoop+Yarn,一鍵安裝部署你想要的集群環(huán)境舷嗡。

在這里只介紹添加自定義應用:應用à用戶à添加應用轴猎,包括手動添加服務和compose配置添加兩種方式。

(1)手動添加服務

采用手動添加服務进萄,只需要輸入應用名捻脖,直接創(chuàng)建,然后在應用上點擊【添加服務】按鈕中鼠,默認添加的是普通服務(即容器)可婶、另外還能選擇添加負載均衡、服務別名援雇、外部服務矛渴。

添加負載均衡:這個比較有用,通過配置一個對外的HTTP(支持多種協(xié)議)及端口惫搏,并選擇一個服務(容器)具温,或者通過選擇器規(guī)則找到具體的服務(容器);具體的負載均衡配置可以參照:

https://blog.csdn.net/csdn_duomaomao/article/details/76216046

添加服務別名:這個不知道具體的用處筐赔,其實就相當于是添加了單個或多個服務的鏈接铣猩。

添加外部服務:就是將外部或第三方服務的接口封裝成一個服務,如第四節(jié)第7小節(jié)提到的健康檢查服務茴丰。

普通服務:普通服務就是跟上一節(jié)添加容器一樣的达皿,在這里就不細說了,但是這里可以實現(xiàn)添加一個容器和批量添加容器的功能(相當于拷貝復制同樣的容器到不同的主機上贿肩,但這些容器都屬于同一個服務下)峦椰,另外還可以通過添加從容器的方式,來實現(xiàn)自己需要的容器拷貝復制方式(這里的主從容器也是在一個服務下的)汰规。

在應用管理界面们何,手動點擊一個服務,可以打開服務詳情界面控轿,這個界面可以看到該服務下所關聯(lián)的容器冤竹,可以快捷管理和操作容器,另外還能快捷的添加容器:

說明:以上在一個服務下添加多個容器的方法茬射,需要注意的是如果創(chuàng)建的規(guī)則是在同一個主機上添加容器鹦蠕,容易出現(xiàn)端口沖突及其他沖突性問題。

(2)Compose方式添加服務

這是我們比較提倡的一種添加服務(容器)的方式在抛,我們可以選擇手動編輯Compose文件钟病,導入后就能自動創(chuàng)建一個應用或集群,也可以將當前的應用導出配置:

這個導出的配置是個compose.zip包,就相當是個備份肠阱,里面包含docker-compose.yml文件和rancher-compose.yml文件票唆,下次重建應用的時候直接導入就行。

關于docker-compose如何配置是個技術活屹徘,格式有一點錯誤創(chuàng)建應用時就會報錯走趋,具體可以上網找相關教程。

也只有通過compose文件部署應用和服務噪伊,我們才可以真正實現(xiàn)集群的一鍵安裝部署簿煌,雖然部署容器只有幾秒種的事情,但如果是部署幾十上百節(jié)點的應用集群(云計數環(huán)境下這都不算什么)鉴吹,一個個拉取鏡像和創(chuàng)建容器也會讓人崩潰的姨伟。

關于Docker的Compose認識及使用,參照網上文章:

https://www.cnblogs.com/52fhy/p/5991344.html

2. 管理應用

在應用界面我們可以看已添加的應用豆励,可以在此基礎上夺荒,繼續(xù)添加應用下的服務,也可以進行應用的增刪改閱操作良蒸。

(1)添加服務

我們可以在現(xiàn)有應用的基礎上繼續(xù)添加服務技扼,操作見上面的手動添加服務。

(2)停止服務

這里的停止服務诚啃,可以停掉應用下的所有服務和容器,相當于批量停止容器私沮,這就體現(xiàn)出管理工具的優(yōu)勢了始赎,重啟時也是一鍵重啟。

(3)查看圖形

這個功能在負載均衡下挺有用仔燕,一眼就能看出集群的拓撲圖造垛。

(4)查看配置

就是查看該應用的Compose配置,其實看多了各個應用的Compose配置晰搀,慢慢我們也會掌握編輯屬于自己的Compose文件五辽。

(5)導出配置

上面也提到了,可以將當前應用的Compose配置導出外恕,作為備份杆逗,下回重建應用時,直接導入就能一鍵創(chuàng)建應用集群服務鳞疲。

(6)刪除

刪除應用就能批量刪除應用下的服務和容器罪郊。這也是最方便的地位。

(7)API查看和編輯:這兩功能沒什么用尚洽,基本是擺設悔橄。

未完待續(xù)......

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子癣疟,更是在濱河造成了極大的恐慌挣柬,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件睛挚,死亡現(xiàn)場離奇詭異邪蛔,居然都是意外死亡,警方通過查閱死者的電腦和手機竞川,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門店溢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人委乌,你說我怎么就攤上這事床牧。” “怎么了遭贸?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵戈咳,是天一觀的道長。 經常有香客問我壕吹,道長著蛙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任耳贬,我火速辦了婚禮踏堡,結果婚禮上,老公的妹妹穿的比我還像新娘咒劲。我一直安慰自己顷蟆,他們只是感情好,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布腐魂。 她就那樣靜靜地躺著帐偎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蛔屹。 梳的紋絲不亂的頭發(fā)上削樊,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天,我揣著相機與錄音兔毒,去河邊找鬼漫贞。 笑死,一個胖子當著我的面吹牛育叁,可吹牛的內容都是我干的绕辖。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼擂红,長吁一口氣:“原來是場噩夢啊……” “哼仪际!你這毒婦竟也來了围小?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤树碱,失蹤者是張志新(化名)和其女友劉穎肯适,沒想到半個月后,有當地人在樹林里發(fā)現(xiàn)了一具尸體成榜,經...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡框舔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了赎婚。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片刘绣。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖挣输,靈堂內的尸體忽然破棺而出纬凤,到底是詐尸還是另有隱情,我是刑警寧澤撩嚼,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布停士,位于F島的核電站,受9級特大地震影響完丽,放射性物質發(fā)生泄漏恋技。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一逻族、第九天 我趴在偏房一處隱蔽的房頂上張望蜻底。 院中可真熱鬧,春花似錦聘鳞、人聲如沸薄辅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽长搀。三九已至宇弛,卻和暖如春鸡典,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背枪芒。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工彻况, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人舅踪。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓纽甘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親抽碌。 傳聞我的和親對象是個殘疾皇子悍赢,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內容

  • 《Docker從入門到實踐》閱讀筆記 原書地址: https://yeasy.gitbooks.io/docker...
    GuoYuebo閱讀 11,382評論 1 39
  • Rancher是一個開源的企業(yè)級全棧化容器部署及管理平臺,目前我們使用的是穩(wěn)定發(fā)布的版本V1.6(2017年發(fā)布)...
    smooth00閱讀 3,554評論 1 6
  • 一 左权、什么是 Docker Docker 最初是 dotCloud 公司創(chuàng)始人 Solomon Hykes 在法國...
    Blazzer閱讀 3,140評論 0 13
  • 五皮胡、Docker 端口映射 無論如何,這些 ip 是基于本地系統(tǒng)的并且容器的端口非本地主機是訪問不到的赏迟。此外屡贺,除了...
    R_X閱讀 1,751評論 0 7
  • 在正定的第二日,先談談飲食锌杀。第一日的兩餐甩栈,雖口味儼然北方風味,但價格平均35元左右糕再,與在廣州相比雖也便宜些...
    有組織不合作閱讀 347評論 0 1