Rancher簡介與安裝

菲宇發表於2018-07-27

倉庫地址:https://hub.docker.com/r/rancher/server/
官網:https://rancher.com/
docs:https://rancher.com/docs/rancher/latest/zh/
目前Rancher只支援Linux,不支援Windows和Macos

簡介

Rancher是一個開源的企業級容器管理平臺。通過Rancher,企業再也不必自己使用一系列的開源軟體去從頭搭建容器服務平臺。Rancher提供了在生產環境中使用的管理Docker和Kubernetes的全棧化容器部署與管理平臺。

Rancher由以下四個部分組成:

基礎設施編排

Rancher可以使用任何公有云或者私有云的Linux主機資源。Linux主機可以是虛擬機器,也可以是物理機。Rancher僅需要主機有CPU,記憶體,本地磁碟和網路資源。從Rancher的角度來說,一臺雲廠商提供的雲主機和一臺自己的物理機是一樣的。

Rancher為執行容器化的應用實現了一層靈活的基礎設施服務。Rancher的基礎設施服務包括網路儲存負載均衡DNS和安全模組。Rancher的基礎設施服務也是通過容器部署的,所以同樣Rancher的基礎設施服務可以執行在任何Linux主機上。

容器編排與排程

很多使用者都會選擇使用容器編排排程框架來執行容器化應用。Rancher包含了當前全部主流的編排排程引擎,例如Docker SwarmKubernetes, 和Mesos。同一個使用者可以建立Swarm或者Kubernetes叢集。並且可以使用原生的Swarm或者Kubernetes工具管理應用。

除了Swarm,Kubernetes和Mesos之外,Rancher還支援自己的Cattle容器編排排程引擎。Cattle被廣泛用於編排Rancher自己的基礎設施服務以及用於Swarm叢集,Kubernetes叢集和Mesos叢集的配置,管理與升級。

應用商店

Rancher的使用者可以在應用商店裡一鍵部署由多個容器組成的應用。使用者可以管理這個部署的應用,並且可以在這個應用有新的可用版本時進行自動化的升級。Rancher提供了一個由Rancher社群維護的應用商店,其中包括了一系列的流行應用。Rancher的使用者也可以建立自己的私有應用商店

企業級許可權管理

Rancher支援靈活的外掛式的使用者認證。支援Active Directory,LDAP, Github等 認證方式。 Rancher支援在環境級別的基於角色的訪問控制 (RBAC),可以通過角色來配置某個使用者或者使用者組對開發環境或者生產環境的訪問許可權。

下圖展示了Rancher的主要元件和功能:

Rancher Overview


功能

1、基礎設施協調
包括網路,儲存,負載平衡器,DNS和安全性的管理
2、docker編排
Rancher支援多種容器編排和排程框架,包括Docker Swarm,Kubernetes和Mesos。同一使用者可以建立多個Swarm或Kubernetes群集。然後,他們可以使用本地Swarm或Kubernetes工具來管理其應用程式。
除了Swarm,Kubernetes和Mesos之外,Rancher還支援自己的容器編排和排程框架,稱為“Cattle”。由Rancher廣泛使用cattle來協調基礎設施服務,以及建立,管理和升級Swarm,Kubernetes和Mesos群集
3、一鍵部署
Rancher使用者可以從應用程式目錄中部署整個多容器叢集應用程式,只需單擊一個按鈕。當新版本的應用程式可用時,使用者可以管理部署的應用程式並執行全自動升級
4、企業級控制
Rancher支援靈活的使用者驗證外掛,並與Active Directory,LDAP和GitHub 進行預先建立的使用者身份驗證整合。Rancher在環境層面支援基於角色的訪問控制(RBAC),允許使用者和組分享或拒絕訪問例如開發和生產環境。
下圖顯示了Rancher的主要元件和功能
準備 Linux 主機
先安裝一個64位的 Ubuntu 14.04 Linux 主機,其核心必須高於 3.10 。或者其它同等的 Linux 發行版。你可以使用一臺筆記本、一個虛擬機器或者一臺物理的伺服器。請確保目標安裝 Linux 主機的記憶體至少1GB。
然後安裝 Docker 在這個 Linux 主機上, 可以參考 Docker安裝說明。
啟動 Rancher 伺服器
啟動 Rancher 伺服器所需要做的動作就只有一條命令。在啟動了這個容器之後,我們將能檢視到這個執行中的伺服器的日誌。
$ sudo docker run -d --restart=always -p 8080:8080 rancher/server
# 顯示 Rancher 伺服器的容器 ID,替換containerid
$ sudo docker ps
# 顯示並檢視 Rancher 伺服器的日誌
$ sudo docker logs -f containerid
啟動 Rancher 伺服器可能需要花幾分鐘時間。這取決於您下載 Rancher Server映象的速度。當日志中顯示 “…. Startup Succeeded, Listening on port…” 以後,Rancher UI 圖形介面現在就能正常訪問了。
Rancher 伺服器的圖形介面訪問埠是 8080 ,通過在瀏覽器中訪問這個網址 http://linux_host_ip:8080 , 您就可以開啟 Rancher 伺服器的圖形介面。如果您的瀏覽器和 Rancher 伺服器都執行在同一臺伺服器上,你需要使用主機的真實 Ip 地址,如: http://192.168.1.100:8080 , 而不是 http://localhost:8080 或者http://127.0.0.1:8080
    注意: Rancher 的訪問控制在初始安裝時並沒有配置,你的 Rancher 伺服器圖形介面和 API 能在任何能訪問到您的 IP 地址的地方被訪問到。我們建議配置訪問控制參考 訪問控制.
新增主機
為簡化操作,我們將新增執行 Rancher 伺服器容器的主機。而在實際的生產環境中,我們建議使用專用的主機來執行 Rancher 伺服器。
通過點選圖形介面的 Infrastructure 標籤來新增主機,然後您將會看到 Hosts 頁面。Rancher 會提示您選擇一個 IP 地址。這個 IP 地址必須可以被所有即將新增的主機訪問到。把 Rancher 伺服器的埠通過防火牆的 NAT 或者負載均衡器暴露出來,或者暴露到 Internet上在有些情況下是很有用的。如果你的主機有一個私有或者本地 IP 地址,例如: 192.168.*.*;Rancher 將列印一個提示資訊,告訴您是否確認這個 IP 地址可以被正常訪問到。
現在我們新增 Rancher 伺服器主機自身,因此我們可以忽略這個提示資訊。點選 Save ;您將進入預設的Custom 選項頁面,您在這可以得到執行 rancher/agent 容器的命令。這裡還有其它的公有云的選項,使用這個選項可以實現通過 docker-machine 去啟動主機節點。在 Web 介面上,Rancher 提供的用於新增主機的命令如下:


    $ sudo docker run -d –privileged -v /var/run/docker.sock:/var/run/docker.sock rancher/agent:v0.7.9 http://192.168.0.130:8080/v1/scripts/DB121CFBA836F9493653:1434085200000:2ZOwUMd6fIzz44efikGhBP1veo
由於我們正在新增 Rancher 伺服器的主機,我們需要新增這個主機所使用的共有 IP。Rancher agent 命令中如果沒有這個引數,這個主機的 IP 很可能會是個錯誤的配置。您可以新增這個 IP 地址在Step 4,這將會修改命令,並加入一個環境變數。
    $ sudo docker run -e CATTLE_AGENT_IP=192.168.0.130 -d –privileged -v /var/run/docker.sock:/var/run/docker.sock rancher/agent:v0.7.9 http://192.168.0.130:8080/v1/scripts/DB121CFBA836F9493653:1434085200000:2ZOwUMd6fIzz44efikGhBP1veo
在執行 Rancher 伺服器的主機上執行這個命令。
當您在 Rancher 的頁面中點選 Close 按鈕後,您會被返回到 Infrastructure -> Hosts 頁面。在一兩分鐘後,這個主機將自動出現在這裡。


使用圖形介面建立一個容器
進入 Applications -> Stacks 頁面,如果這裡還沒有服務,你可以點選 “Add Service” 按鈕。你可以輸入一個類似 “firstcontainer” 的名字。您現在使用預設配置並點選 Create 。Rancher 將開始在這個主機上啟動兩個容器。一個容器是您所建立的名為**_first_container ;另外一個容器是Network Agent**,這是個由 Rancher 建立的系統容器,它用來處理擴主機聯網和健康檢查等任務。
不管你的主機是什麼 IP 地址,first_container 和 Network Agent 將會的到 192.168.*.* 網段的 IP 地址。Rancher 已經建立了能在不同主機之上的讓所有容器可以相互通訊的覆蓋網路。
如果你點選 first_container的下拉選單,你可以執行各種動作,例如:停止容器,檢視日誌,或者進入容器的 控制檯。
使用 Docker 原生命令建立一個容器
Rancher 會顯示所有在主機上的容器,即使有些容器是在圖形介面之外建立的。在主機的 shell 命令列裡建立一個容器。
$ docker run -it --name=second_container ubuntu:14.04.2
在圖形介面中,你將看到 second_container 在你的主機上出現!如果你通過退出命令列來退出用命令方式建立的容器,在 Rancher 圖形介面中將立刻顯示這個容器的狀態為停止。
Rancher 可以對帶外發生的事件作出反應,並把當前的顯示狀況如實地整合在它的檢視中。
如果你檢視容器 second_container 的 IP 地址,你會注意到他不在 192.168.*.* 網段中。它的 IP 地址是通過 Docker 後臺服務獲得的。這是通過命令列方式建立容器的正常的結果。
如果我希望通過命令列建立的容器依然具有 Ranger 覆蓋網路的網路地址呢?我們所需要做的就僅僅是在命令中加一個標籤。
$ docker run -it --label io.rancher.container.network=true ubuntu:14.04.2

相關文章