Docker 容器管理:rancher

YatHo發表於2017-11-17

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 呼叫,做到快速重置資料庫資料的效果(資料庫資料內容事先放好到映象中)。這對於一些經常需要 清空-重新初始化資料庫的操作(例如跑自動化測試前重置資料庫),可以節省下不少初始化資料耗費的時間。同時,資料庫資料也通過映象的版本管理,初步獲得了版本管理。

相關文章