一、Rancher簡介
Rancher是一個開源的企業級容器管理平台。通過Rancher,企業再也不必自己使用一系列的開源軟件去從頭搭建容器服務平台。Rancher提供了在生產環境中使用的管理Docker和Kubernetes的全棧化容器部署與管理平台。主要包括服務管理,公有雲節點管理,支持第三方用戶權限管理,應用商店,api很是靈活,只是文檔較少,讓你更多的去參考官方文檔。
中文文檔:https://www.rancher.cn/docs/
Rancher結構
1、基礎設施編排
Rancher可以使用任何公有雲或者私有雲的Linux主機資源。Linux主機可以是虛擬機,也可以是物理機。Rancher僅需要主機有CPU,內存,本地磁盤和網絡資源。從Rancher的角度來說,一台雲廠商提供的雲主機和一台自己的物理機是一樣的。
Rancher為運行容器化的應用實現了一層靈活的基礎設施服務。Rancher的基礎設施服務包括網絡, 存儲, 負載均衡, DNS和安全模塊。Rancher的基礎設施服務也是通過容器部署的,所以同樣Rancher的基礎設施服務可以運行在任何Linux主機上。
2、容器編排與調度
很多用戶都會選擇使用容器編排調度框架來運行容器化應用。Rancher包含了當前全部主流的編排調度引擎,例如Docker Swarm, Kubernetes, 和Mesos。同一個用戶可以創建Swarm或者Kubernetes集群。並且可以使用原生的Swarm或者Kubernetes工具管理應用。
除了Swarm,Kubernetes和Mesos之外,Rancher還支持自己的Cattle容器編排調度引擎。Cattle被廣泛用於編排Rancher自己的基礎設施服務以及用於Swarm集群,Kubernetes集群和Mesos集群的配置,管理與升級。
3、應用商店
Rancher的用戶可以在應用商店里一鍵部署由多個容器組成的應用。用戶可以管理這個部署的應用,並且可以在這個應用有新的可用版本時進行自動化的升級。Rancher提供了一個由Rancher社區維護的應用商店,其中包括了一系列的流行應用。Rancher的用戶也可以創建自己的私有應用商店。
4、企業級權限管理
Rancher支持靈活的插件式的用戶認證。支持Active Directory,LDAP, Github等 認證方式。 Rancher支持在環境級別的基於角色的訪問控制 (RBAC),可以通過角色來配置某個用戶或者用戶組對開發環境或者生產環境的訪問權限。
下圖展示了Rancher的主要組件和功能:
Rancher的特性
1、采用圖形化方式
易用的Web管理界面,在Docker易用性的基礎上,再一次降低了使用容器技術部署容器應用的難度。
2、支持多種調度器
通過環境模板,很容易地創建和部署Cattle、Swarm、K8S、Mesos容器集群管理調度平台。
3、管理主機集群
管理對象是多台主機的集群,而不僅僅是單台容器主機,創建和管理幾台、幾十台應用服務器集群,只需要Ctrl+C、Ctrl+V,復制粘貼就解決了。
4、內置應用商店
使用其中的WordPress模板,創建一個WordPress博客系統,只需點點鼠標,部署難度不高於申請一個免費的電子郵箱!
5、資源彈性分配
內置應用負載均衡器,“服務”最小只需1個容器實例,當負載不夠/或過剩時,只需點點鼠標,增加/減少“服務”中容器的實例數,即可解決問題,應用系統具有天生的彈性擴容能力。
二、安裝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,選擇語言,選擇中文
中文效果如下:
三、Rancher 服務器配置
添加賬號
首次登錄,還沒有配置訪問權限,為了安全期間,首先點擊上面的 系統管理-->訪問控制 來新建一個本地賬號和密碼。
選擇Local,輸入用戶名和密碼
點擊啟用本地驗證。
提示已經啟用了
四、添加主機
點擊 基礎架構-->主機
添加主機
直接點擊保存
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注冊腳本只限於一個節點,不能多個節點重復使用一個腳本。
五、添加容器
創建個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/
效果如下:
六、rancher 應用商店使用
rancher 的應用商店是它的核心功能。通過應用商店,只需要2步界面操作就可以完成一個應用的部署。
點擊應用商店,這里以部署Alfresco為例,點擊查看詳情
保持默認參數,點擊啟動
等待幾分鍾,就會變成Active狀態,點擊8080端口,會打開一個新的窗口
新窗口效果如下:
注意:如果是首次創建,agent 需要花幾分鍾下載鏡像,具體耗時取決於網速。
相信聰明的朋友已經猜到了。應用商店除了官方自帶的應用,我們自己也可以配置自己的應用商店哦。以后臨時部署一個新的測試服務,直接2步解決。
更多
除了這些基本功能,rancher 還有很多功能。基礎的有容器日志查看、shell 訪問、資源占用監控等,擴展的還有多環境管理、多主機服務部署管理等。同時對容器的各種操作,也都可以通過 rancher-cli 、 rancher-compose 命令行工具或者其自帶的 http api 進行控制。
擴展一下,還可以通過容器替換+http api 調用,做到快速重置數據庫數據的效果(數據庫數據內容事先放好到鏡像中)。這對於一些經常需要 清空-重新初始化數據庫的操作(例如跑自動化測試前重置數據庫),可以節省下不少初始化數據耗費的時間。同時,數據庫數據也通過鏡像的版本管理,初步獲得了版本管理。
本文參考鏈接:
https://blog.51cto.com/13043516/2299949
https://www.cnblogs.com/YatHo/p/7851758.html