1、Rancher簡介
Rancher是一個開源的企業級容器管理平臺。經過Rancher,企業不再必本身使用一系列的開源軟件去從頭搭建容器服務平臺。Rancher提供了在生產環境中使用的管理Docker和Kubernetes的全棧化容器部署與管理平臺。主要包括服務管理,公有云節點管理,支持第三方用戶權限管理,應用商店,api非常靈活,只是文檔較少,讓你更多的去參考官方文檔。
html
中文文檔:https://www.rancher.cn/docs/mysql
Rancher結構
一、基礎設施編排
Rancher可使用任何公有云或者私有云的Linux主機資源。Linux主機能夠是虛擬機,也能夠是物理機。Rancher僅須要主機有CPU,內存,本地磁盤和網絡資源。從Rancher的角度來講,一臺雲廠商提供的雲主機和一臺本身的物理機是同樣的。
Rancher爲運行容器化的應用實現了一層靈活的基礎設施服務。Rancher的基礎設施服務包括網絡, 存儲, 負載均衡, DNS和安全模塊。Rancher的基礎設施服務也是經過容器部署的,因此一樣Rancher的基礎設施服務能夠運行在任何Linux主機上。nginx
二、容器編排與調度
不少用戶都會選擇使用容器編排調度框架來運行容器化應用。Rancher包含了當前所有主流的編排調度引擎,例如Docker Swarm, Kubernetes, 和Mesos。同一個用戶能夠建立Swarm或者Kubernetes集羣。而且可使用原生的Swarm或者Kubernetes工具管理應用。
除了Swarm,Kubernetes和Mesos以外,Rancher還支持本身的Cattle容器編排調度引擎。Cattle被普遍用於編排Rancher本身的基礎設施服務以及用於Swarm集羣,Kubernetes集羣和Mesos集羣的配置,管理與升級。sql
三、應用商店
Rancher的用戶能夠在應用商店裏一鍵部署由多個容器組成的應用。用戶能夠管理這個部署的應用,而且能夠在這個應用有新的可用版本時進行自動化的升級。Rancher提供了一個由Rancher社區維護的應用商店,其中包括了一系列的流行應用。Rancher的用戶也能夠建立本身的私有應用商店。docker
四、企業級權限管理
Rancher支持靈活的插件式的用戶認證。支持Active Directory,LDAP, Github等 認證方式。 Rancher支持在環境級別的基於角色的訪問控制 (RBAC),能夠經過角色來配置某個用戶或者用戶組對開發環境或者生產環境的訪問權限。shell
下圖展現了Rancher的主要組件和功能:數據庫
Rancher的特性
一、採用圖形化方式
易用的Web管理界面,在Docker易用性的基礎上,再一次下降了使用容器技術部署容器應用的難度。json
二、支持多種調度器
經過環境模板,很容易地建立和部署Cattle、Swarm、K8S、Mesos容器集羣管理調度平臺。ubuntu
三、管理主機集羣
管理對象是多臺主機的集羣,而不只僅是單臺容器主機,建立和管理幾臺、幾十臺應用服務器集羣,只須要Ctrl+C、Ctrl+V,複製粘貼就解決了。vim
四、內置應用商店
使用其中的WordPress模板,建立一個WordPress博客系統,只需點點鼠標,部署難度不高於申請一個免費的電子郵箱!
五、資源彈性分配
內置應用負載均衡器,「服務」最小隻需1個容器實例,當負載不夠/或過剩時,只需點點鼠標,增長/減小「服務」中容器的實例數,便可解決問題,應用系統具備天生的彈性擴容能力。
2、安裝Rancher服務器
關於硬件要求,請參考官方連接:
https://www.rancher.cn/docs/rancher/v2.x/cn/install-prepare/requirements/
環境介紹
操做系統 | ip | docker版本 | 角色 |
ubuntu-16.04.4-server-amd64 | 192.168.10.104 | Docker 18.09.2 | rancher-server |
ubuntu-16.04.4-server-amd64 | 192.168.10.108 | Docker 18.09.2 | rancher-agent |
注意:2臺服務器已經安裝好docker了!
安裝Rancher主機
在安裝server以前,咱們先配置一下阿里雲的docker鏡像加速地址,不然鏡像的下載會很慢:
vim /etc/docker/daemon.json
內容以下:
{"registry-mirrors": ["https://xwx6wxd1.mirror.aliyuncs.com"]}
從新加載docker
/etc/init.d/docker reload
建立數據庫掛載目錄
mkdir -p /data/rancher_server/mysql
推薦數據庫數據外置。即便容器壞了,數據還在,從新再建一個容器便可
docker run -d -v /data/rancher_server/mysql:/var/lib/mysql --restart=always -p 8080:8080 rancher/server
查看運行狀況
root@ubuntu:~# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 27e65bb6ae54 rancher/server "/usr/bin/entry /usr…" 45 minutes ago Up 45 minutes 3306/tcp, 0.0.0.0:8080->8080/tcp hopeful_rosalind
查看日誌
root@ubuntu:~# docker logs -f fbac96ddb14c Running mysql_install_db... ... time="2019-09-03T07:33:40Z" level=info msg="Listening on :8090" time="2019-09-03T07:33:43Z" level=info msg="Waiting for machinedriver.activate event" service=gms ...
當出現 Listening on :8090 表示啓動成功了
查看rancher服務監聽端口
root@ubuntu:~# netstat -antupl | grep 8080 tcp6 0 0 :::8080 :::* LISTEN 5563/docker-proxy
訪問測試
http://192.168.10.104:8080
效果以下:
點擊右下角的Deutsch,選擇語言,選擇中文
中文效果以下:
3、Rancher 服務器配置
添加帳號
首次登陸,尚未配置訪問權限,爲了安全期間,首先點擊上面的 系統管理-->訪問控制 來新建一個本地帳號和密碼。
選擇Local,輸入用戶名和密碼
點擊啓用本地驗證。
提示已經啓用了
4、添加主機
點擊 基礎架構-->主機
添加主機
直接點擊保存
copy這段命令
登陸到 192.168.10.108這臺機器,也就是rancher-agent
在安裝agent以前,咱們先配置一下阿里雲的docker鏡像加速地址,不然鏡像的下載會很慢:
vim /etc/docker/daemon.json
內容以下:
{"registry-mirrors": ["https://xwx6wxd1.mirror.aliyuncs.com"]}
從新加載docker
/etc/init.d/docker reload
運行加入命令,注意:每一個環境,命令是不同的。請以頁面顯示爲主。
sudo docker run --rm --privileged -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/rancher:/var/lib/rancher rancher/agent:v1.2.11 http://192.168.10.104:8080/v1/scripts/89EA1D52A25C98723969:1546214400000:XODniKMfCrisNwBj3gF24syj0
頁面再次點擊基礎架構-->主機,就會看到新加入的主機
注:說明agent-1節點添加成功!有多少個節點就添加幾個,節點添加方式和agent-1的添加方式同樣,就很少說了,只不過執行命令時,是在不一樣ip的節點主機上!切記每次點擊添加主機生成的rancher註冊腳本只限於一個節點,不能多個節點重複使用一個腳本。
5、添加容器
建立個nginx容器測試一下,點擊 基礎架構-->容器
點擊添加容器
輸入名稱,鏡像名,以及端口號
下面的,基本上,保持不變,點擊保存。
等待30秒,容器就運行起來了
登陸到agent服務器,查看nginx進程。
root@ubuntu:~# docker ps|grep nginx 26478f808e4e nginx:latest "/.r/r nginx -g 'dae…" 2 minutes ago Up 2 minutes r-nginx-6d0e2e27
使用agent ip加端口80,就能夠訪問頁面了
http://192.168.10.108/
效果以下:
6、rancher 應用商店使用
rancher 的應用商店是它的核心功能。經過應用商店,只須要2步界面操做就能夠完成一個應用的部署。
點擊應用商店,這裏以部署Alfresco爲例,點擊查看詳情
保持默認參數,點擊啓動
等待幾分鐘,就會變成Active狀態,點擊8080端口,會打開一個新的窗口
新窗口效果以下:
注意:若是是首次建立,agent 須要花幾分鐘下載鏡像,具體耗時取決於網速。
相信聰明的朋友已經猜到了。應用商店除了官方自帶的應用,咱們本身也能夠配置本身的應用商店哦。之後臨時部署一個新的測試服務,直接2步解決。
更多
除了這些基本功能,rancher 還有不少功能。基礎的有容器日誌查看、shell 訪問、資源佔用監控等,擴展的還有多環境管理、多主機服務部署管理等。同時對容器的各類操做,也均可以經過 rancher-cli 、 rancher-compose 命令行工具或者其自帶的 http api 進行控制。
擴展一下,還能夠經過容器替換+http api 調用,作到快速重置數據庫數據的效果(數據庫數據內容事先放好到鏡像中)。這對於一些常常須要 清空-從新初始化數據庫的操做(例如跑自動化測試前重置數據庫),能夠節省下很多初始化數據耗費的時間。同時,數據庫數據也經過鏡像的版本管理,初步得到了版本管理。
本文參考連接: