1. 程式人生 > >使用rancher管理docker

使用rancher管理docker

1. 介紹
Rancher 是一個容器管理的完整解決方案,並且即將成為一個完整的容器管理平臺。瞭解rancher的功能可以看下官方的提供的介紹視訊 Rancher Overview 。注意看該視訊需要科學上網。


詳細的rancher使用建議檢視 rancher官方文件


2. 安裝
2.1 下載映象
# server
docker pull rancher/server
2.2 部署mysql
因為rancher需要使用mysql,所以需要啟動mysql容器


docker pull mysql
docker run -d  --name mysqldb -e MYSQL_ROOT_PASSWORD=wkm  mysql:latest --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
首先進入mysql bash


docker run -it --link mysqldb:mysql --rm mysql sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'
進入mysql建立使用者給rancher用


> CREATE DATABASE IF NOT EXISTS cattle COLLATE = 'utf8_general_ci' CHARACTER SET = 'utf8';
> GRANT ALL ON cattle.* TO 'cattle'@'%' IDENTIFIED BY 'cattle';
> GRANT ALL ON cattle.* TO 'cattle'@'localhost' IDENTIFIED BY 'cattle';
2.2 部署 server
使用以下方式執行容器


# Launch on each node in your HA cluster
$ docker run -d --restart=unless-stopped -p 8080:8080  rancher/server \
     --db-host myhost.example.com --db-port 3306 --db-user username --db-pass password --db-name cattle \
     --advertise-address <IP_of_the_Node>
我這裡實驗時,將server部署到了10.45.10.32和10.45.10.33這兩臺上了,例如10.45.10.32這臺上執行的命令如下:


# 注意這裡的db host使用容器本身的IP,通過docker inspect xxx來獲取
docker run -d --name rancher-server --restart=unless-stopped -p 8080:8080  rancher/server \
     --db-host 172.17.0.2  --db-port 3306 --db-user cattle --db-pass cattle --db-name cattle \
     --advertise-address 10.45.10.32
啟動rancher server容器後,用docker logs rancher-server來檢視是否正常啟動。正常啟動後效果如下:




然後就可以通過IP來訪問rancher的WEB管理中心了。




右下角可以換成中文




3. 整合管理swarm
rancher功能十分強大,能整合各種第三方,當然也包括swarm。雖然該功能還處於experimental,不過swarm這麼流行,相信很快就能釋出正式版。這裡作為測試使用,我們直接用該特性。


3.1 建立swarm環境


然後再點選下方的add environment




建立一個swarm環境




切換到該環境,我建立的swarm環境名字為rancher_swarm




3.2 新增主機
PS: 注意每個環境有自己對應的主機叢集。預設是default環境。上面切換到我們建立的SWARM叢集,所以在新環境新增主機。注意SWARM叢集至少需要3臺主機。


點選基礎架構裡面主機來新增主機:




點選下方的新增主機




設定需要加入的HOST IP,根據圖形介面提供的提示操作即可。主要操作就是在各個node上啟動rancher/agent容器,按照圖形介面上的提示啟動




3.3 將主機加入swarm叢集
雖然前面建立了主機,不過將node加入叢集的操作,仍然需要命令解決。首先在swarm manager所在節點上檢視JOIN叢集的命令,然後在需要被加入的節點上執行命令。


4. 更多功能
rancher功能非常多,可以輕鬆部署企業級應用。各種圖形展示也十分友好。例如可以展示容器之間的拓撲這點就非常好。更多功能讀者可以自己參考官方文件了。