Rancher:https://www.cnrancher.com/
是一個開源的企業級全棧化容器部署及管理平台。
定位上和 K8s 比較接近,都是通過 web 界面賦予完全的 docker 服務編排功能。是一個可以讓你通過 web 界面管理 docker 容器的平台。
rancher 的特色
-
平台部署方便。管理 docker 的平台本身也基於 docker 部署。只要你有 docker ,一句命令就完成平台的部署了。
-
平台擴展方便。通過 agent 機制,一句 docker 命令完成 agent 部署,快速增加你的物理機。同時也支持 AWS 等雲主機, 2.0 版本甚至還支持 K8s 。
-
服務部署方便。通過應用商店,2步完成應用部署,而且還是像 docker-compose 那樣各個中間件獨立編排,可以隨時擴容的哦。
-
自帶賬戶權限。相比 K8s 沒有賬號管理,rancher 自帶賬號權限體系。賬號可以獨立創建,也可以很方便地接入 ldap 等賬號體系。對於公司使用是一大利器。
rancher 安裝
- 部署 master
master 對系統基本沒有要求,部署在centos 、ubantu、 mac 或者 windows 上都行。
# 下載容器
docker pull rancher/server
# 數據庫數據內置。缺點是如果容器損壞了,數據就不可恢復
命令行參數解釋:
docker run 的 -d 參數標示在后台運行, --restart=always 容器如果異常停止自動重啟。-p 8080:8080 把 Rancher 服務器的UI 對外服務(容器內)的端口 8080 ,綁定到到宿主機的
8080 端口。 后面跟的鏡像名 rancher/server ,Docker 會首先檢查本地有沒有這個鏡像,如果沒有,Docker 會去 Docker Hub 將這個鏡像下載下來,並且啟動。
docker run -d --restart=unless-stopped -p 8089:8080 rancher/server
# **推薦**數據庫數據外置。即使容器壞了,數據還在,重新再建一個容器即可
docker run -d -v <host_vol>:/var/lib/mysql --restart=unless-stopped -p 8089:8080 rancher/server
用瀏覽器打開 Rancher 服務器容器 UI 界面
http://192.168.50.151:8089
Rancher 服務器配置
添加賬號
首次登錄,還沒有配置訪問權限,為了安全期間,首先點擊上面的 ACCESS CONTROL 來新建一個本地賬號和密碼。
點擊 Enable Local Authentication,打開本地驗證,下次就需要輸入用戶名和密碼才能登錄了。
添加主機
主機是 Rancher 工作的節點,類似服務器虛擬化的 Hypervisor,我們現在做 All-in-one 測試,將宿主機添加到 Rancher 節點主機。
選擇 APPLICATIONS 下面的 Add Host,彈出的界面選擇 Custom,將頁面第 4 步出現的內容復制粘貼下來。拿到宿主機的命令行執行。
部署 agent
將上述的命令拷貝到宿主機粘貼執行,agent 用到比較多的 docker 特性,建議使用 linux 機器。我用的是 centos7
agent 的啟動命令可以在界面上自動生成,唯一需要填寫的是 agent 所在主機的 ip 地址會自動下載 rancher/agent 鏡像並運行。等待下載完畢。查看一下進程,多出一個 rancher/agent 的進程,並且已經運行。此時再回網頁查看 Web 控制台界面,查看 Host 添加之后的結果。
可以看到已經多了一台活動主機(宿主機),上面運行一個 Rancher Server 容器,就是 Rancher 服務器自己。如果你有其他主機,也可以添加其他主機進來。
通過 Web UI 運行容器
現在通過圖形界面來運行容器,而不是通過命令行。
添加容器
在 INFRASTRUCTURE 標簽選擇 CONTAINERS,選擇 Add Container
1 輸入 first_container 作為容器名稱
2 使用默認的 Ubuntu 14.04.3 鏡像
3 點擊Create 按鈕
經過幾秒鍾可以看到多出一個 first_container 容器和一個 Network Agent。first_container作為本測試創建的容器。
1 在新建的 Ubuntu 容器的菜單上點擊向下按鈕
2 在Web 頁面中選擇運行 Shell 選項
以后就可以在此操作容器了。如果您偏愛 CLI 命令行,可以直接到宿主機的命令行操作。
rancher 應用商店使用
rancher 的應用商店是它的核心功能。通過應用商店,只需要2步界面操作就可以完成一個應用的部署。
以 sonarquebe 為例:
第一步,選擇應用。點擊 sonarquebe 下面的【查看細節】按鈕
第二步,點擊啟動。當然如果有需要的話,也可以選擇下服務版本。其它配置如無特殊需要,一般不需要改動。
然后 sonar 服務就創建出來了。
訪問地址,可以點擊負載均衡的 Ports 鏈接,直接打開。
注意:如果是首次創建,agent 需要花幾分鍾下載鏡像,具體耗時取決於網速。
相信聰明的朋友已經猜到了。應用商店除了官方自帶的應用,我們自己也可以配置自己的應用商店哦。以后臨時部署一個新的測試服務,直接2步解決。
更多
除了這些基本功能,rancher 還有很多功能。基礎的有容器日志查看、shell 訪問、資源占用監控等,擴展的還有多環境管理、多主機服務部署管理等。同時對容器的各種操作,也都可以通過 rancher-cli 、 rancher-compose 命令行工具或者其自帶的 http api 進行控制。
擴展一下,還可以通過容器替換+http api 調用,做到快速重置數據庫數據的效果(數據庫數據內容事先放好到鏡像中)。這對於一些經常需要 清空-重新初始化數據庫的操作(例如跑自動化測試前重置數據庫),可以節省下不少初始化數據耗費的時間。同時,數據庫數據也通過鏡像的版本管理,初步獲得了版本管理。