docker rancher 體驗
官方 github
https://github.com/rancher/rancher
環境說明:
10.6.0.140
10.6.0.187
10.6.0.188
修改主機名:
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-2
[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資料庫,可使用如下引數:
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.3
瀏覽器訪問:
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上的容器變化,沒有新啟動任何容器。