docker rancher 體驗 (未完待續.....)

docker rancher 體驗node

官方 github
https://github.com/rancher/ranchermysql


環境說明:nginx

10.6.0.140
10.6.0.187
10.6.0.188git


修改主機名:
10.6.0.140 = hostnamectl --static set-hostname reancher-manager
10.6.0.187 = hostnamectl --static set-hostname reancher-node-1
10.6.0.188 = hostnamectl --static set-hostname reancher-node-2github

 

 

[root@reancher-manager ~]#mkdir -p /opt/rencher/mysql

[root@reancher-manager ~]#docker run -d --name rencher --restart=always -v /opt/rencher/mysql:/var/lib/mysql -p 8080:8080 rancher/server

[root@reancher-manager ~]#docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                              NAMES
c8209da7add0        rancher/server      "/usr/bin/s6-svscan /"   12 minutes ago      Up 12 minutes       3306/tcp, 0.0.0.0:8080->8080/tcp   rencher

 

使用本身的mysql數據庫,可以使用以下參數:sql

docker run -d --restart=always -p 8080:8080 \
-e CATTLE_DB_CATTLE_MYSQL_HOST=<hostname or IP of MySQL instance> \
-e CATTLE_DB_CATTLE_MYSQL_PORT=<port> \
-e CATTLE_DB_CATTLE_MYSQL_NAME=<Name of database> \
-e CATTLE_DB_CATTLE_USERNAME=<Username> \
-e CATTLE_DB_CATTLE_PASSWORD=<Password> \
rancher/server:v1.1.3docker

 

 

 

 

瀏覽器訪問:數據庫

http://10.6.0.140:8080瀏覽器

顯示以下:網絡

1.

 

2. 填寫訪問地址,若是爲私網IP ,會提示。

 


3. node 節點 複製: docker run -d --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.0.2 http://10.6.0.140:8080/v1/scripts/8944D0EC8BCFEB4F127C:1472544000000:BIX8IC8bWsRbx60NMhka4AmxmpQ

進行安裝rancher-agent

 

[root@reancher-node-1 ~]# docker ps -a
CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS                     PORTS               NAMES
6c7f533527ec        rancher/agent:v1.0.2   "/run.sh run"            4 minutes ago       Up 4 minutes                                   rancher-agent
7566aa61cdbe        rancher/agent:v1.0.2   "/run.sh state"          4 minutes ago       Exited (0) 4 minutes ago                       rancher-agent-state
032d85c88779        rancher/agent:v1.0.2   "/run.sh http://10.6."   5 minutes ago       Exited (0) 4 minutes ago                       fervent_morse

 

 

4. 安裝完畢,等待5分鐘左右,在 WEB UI 界面,能夠看到以下:

 


5. 點擊以下: 添加 容器

 

 

 

6. 部署 stack 與 service

Add stack

 


7 啓動 service

 

 

 

顯示 Active 既可


輕鬆生成 10 個 Containers

 

 

8 點擊 Load Balance 生成一個 負載均衡器

 

 

 

點擊完成,選擇 Link 可查看關係圖


生成 2個 Load Balance , 2個 node 節點都映射80端口

 


2個 LB 10個 nginx 容器


訪問 http://10.6.0.187 與 http://10.6.0.188 :

 

 

Rancher 中  網絡+負載均衡  實現 與 說明

 

依賴鏡像:rancher/agent-instance:v0.8.3  

Rancher 網絡是 採用SDN技術所建容器爲虛擬ip地址,各host之間容器採用ipsec隧道實現跨主機通訊,使用的是udp的500和4500端口。

啓動任務時,在各個host部署容器以前會起一個Network  Agent容器,負責組建網絡環境。   

 

10. 破壞性測試 (如下爲別人測試)

server 是以容器方式運行,Mysql數據庫保存了任務數據以及任務邏輯關係


破壞server端

1.

操做:在server端和agent端正常運行狀態下,stop掉server容器

結果:業務不受影響。start重啓容器後恢復管理功能。


2.

操做:將server端容器rm刪除掉, Mysql數據未保存,從新再起一個server容器。

結果:1.當前業務不受影響

2.新server仍然可以識別和管理各個agent,由於agent端是連server的ip端口,ip不變就能連上

3.agent端原有的任務容器的命名和邏輯關係沒有了。

3.

操做:將server端容器rm刪除掉(將mysql數據/var/lib/mysql 映射至宿主機),從新再起一個server容器。

結果:新起的容器可以識別任務狀態,命名,邏輯關係。恢復到以前的狀態。

 

破壞agent端

4.

操做:host命令行下刪除掉agent容器

結果:不影響當前業務狀態,server端顯示host失聯,沒法對該agent下發任務進行擴容和縮容。

從新啓動agent後恢復正常。

5.

操做:server控制端刪除agent端的業務容器(例如刪除nginx容器)

結果:刪除後數秒內,在另外一個host上從新啓動一個新的業務容器。

6.

操做:host命令行下刪除agent端的業務容器(例如刪除nginx容器)

結果:刪除後數秒內,在當前host上從新啓動一個新的業務容器。

7.

操做:host命令行下刪除掉agent容器後,再刪除一個業務容器

結果:server端由於與agent失聯,致使沒法更新該host上的容器變化,沒有新啓動任何容器。

相關文章
相關標籤/搜索