一、Rancher概述
1、rancher平臺
? ? ? ? Rancher是一個開源的企業級容器管理平臺,它可以幫助企業在生產環境中輕松快捷地部署和管理容器,也可以輕松管理各種環境的Kubernetes,并提供對DevOps的支持。
? ? ? ? Rancher目前已經具備全棧化一鍵部署應用、各種編排調度工具、多租戶、多種基礎架構的能力,包括網絡服務、存儲服務、主機管理、負載均衡、服務發現和資源管理等,可以管理DigitalOcean、AWS、OpenStack等云主機,自動創建Docker運行環境,實現跨云管理。
? ? ? ? Rancher可以通過Web界面或命令行方式進行操作。
2、Rancher的組成
? ? ? ? Rancher主要由基礎設施編排、容器編排與調度、應用商店和企業級權限管理4個部分組成,其主要組件和功能如圖所示。
1)、基礎設施編排
????????Rancher的基礎設施服務可通過容器進行部署,也可運行在Linux 主機上,Linux主機可以是虛擬機,也可以是物理機。基礎設施服務包括網絡服務、存儲服務、負載均衡、DNS務和安全模塊。
2)、容器編排與調度
????????Rancher是一個容器集群的編排工具,默認通過整合Cattle、 Swarm、 Kubernetes 、MesOS等容器編排集群服務。
3)、應用商店
????????Rancher的用戶可以利用“應用商店”來部署各種應用,并可以在應用有新版本時實現自升級。“應用商店”包括官方的應用服務和社區庫,都采用Git庫的方式存儲在GitHub中。
4)、企業級權限管理
????????Rancher支持多種授權管理方式,支持環境級別的基于角色的訪問控制,可以通過角,色來配置某個用戶/用戶組對開發環境或生產環境的訪問權限。
二、Rancher單容器部署和應用
1、Swarm集群基礎環境
主機名 | IP地址 | 角色 |
master | 192.168.51.101 | 管理節點 |
node1 | 192.168.51.102 | 工作節點 |
node2 | 192.168.51.103 | 工作節點 |
2、安裝docker
? ? ? ? 2.1?安裝必要的一些系統工具
[root@master ~]# sudo yum install -y yum-utils
Loaded plugins: fastestmirror
Determining fastest mirrors* base: mirrors.aliyun.com* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com
base | 3.6 kB 00:00:00
docker-ce-stable | 3.5 kB 00:00:00
epel | 4.3 kB 00:00:00
extras | 2.9 kB 00:00:00
kubernetes | 1.4 kB 00:00:00
updates | 2.9 kB 00:00:00
Package yum-utils-1.1.31-54.el7_8.noarch already installed and latest version
Nothing to do
? ? ? ? 2.2?添加軟件源信息
[root@master ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
Loaded plugins: fastestmirror
adding repo from: https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
grabbing file https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
? ? ? ? 2.3?安裝Docker
[root@master ~]# sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y[root@master ~]# rpm -q docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
docker-ce-26.1.4-1.el7.x86_64
docker-ce-cli-26.1.4-1.el7.x86_64
containerd.io-1.6.33-3.1.el7.x86_64
docker-buildx-plugin-0.14.1-1.el7.x86_64
docker-compose-plugin-2.27.1-1.el7.x86_64
? ? ? ? 2.4?開啟Docker服務
[root@master ~]# systemctl start docker
[root@master ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[root@master ~]# systemctl status docker
● docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)Active: active (running) since Fri 2025-07-04 04:06:56 EDT; 1min 11s agoDocs: https://docs.docker.comMain PID: 8934 (dockerd)CGroup: /system.slice/docker.service└─8934 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
????????2.5 配置鏡像加速器
[root@master ~]# vi /etc/docker/daemon.json
[root@master ~]# cat /etc/docker/daemon.json
{"registry-mirrors":["http://docker.m.daocloud.io"],"dns":["8.8.8.8"]
}## 重啟docker服務
[root@master ~]# systemctl restart docker
[root@master ~]# systemctl daemon-reload
????????2.6?查看docker版本
[root@master ~]# docker version
Client: Docker Engine - CommunityVersion: 26.1.4API version: 1.45Go version: go1.21.11Git commit: 5650f9bBuilt: Wed Jun 5 11:32:04 2024OS/Arch: linux/amd64Context: defaultServer: Docker Engine - CommunityEngine:Version: 26.1.4API version: 1.45 (minimum version 1.24)Go version: go1.21.11Git commit: de5c9cfBuilt: Wed Jun 5 11:31:02 2024OS/Arch: linux/amd64Experimental: falsecontainerd:Version: 1.6.33GitCommit: d2d58213f83a351ca8f528a95fbd145f5654e957runc:Version: 1.1.12GitCommit: v1.1.12-0-g51d5e94docker-init:Version: 0.19.0GitCommit: de40ad0
3、搭建并訪問rancher平臺
? ? ? ? 3.1? 分別在三個節點上,獲取rancher鏡像
## 這里小編拉取的是stable穩定版的rancher鏡像,讀者可自行根據需求拉取不同版本的鏡像
[root@master ~]# docker pull rancher/server:stable
stable: Pulling from rancher/server
bae382666908: Pull complete
29ede3c02ff2: Pull complete
da4e69f33106: Pull complete
8d43e5f5d27f: Pull complete
b0de1abb17d6: Pull complete
422f47db4517: Pull complete
79d37de643ce: Pull complete
69d13e08a4fe: Pull complete
2ddfd3c6a2b7: Pull complete
bc433fed3823: Pull complete
b82e188df556: Pull complete
dae2802428a4: Pull complete
07bf18e8eec0: Pull complete
339e24088f91: Pull complete
9372455de0b8: Pull complete
5a33b348bf45: Pull complete
3286997d8874: Pull complete
bd79bfb954de: Pull complete
ba7c19991a31: Pull complete
0c19aca4f8a1: Pull complete
e03fc76c8997: Pull complete
Digest: sha256:95b55603122c28baea4e8d94663aa34ad770bbc624a9ed6ef986fb3ea5224d91
Status: Downloaded newer image for rancher/server:stable
docker.io/rancher/server:stable
????????3.2 在管理節點上,利用rancher鏡像生成rancher容器
[root@master ~]# docker run -d --restart=unless-stopped -p 8080:8080 rancher/server:stable
4cb3495e062e1037ce0531bb6a3827e83a9e65411b6efdf2dec3209ad8b7139a## 查看容器狀態,注意一定是要處于“UP”狀態
[root@master ~]# docker ps -n1
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4cb3495e062e rancher/server:stable "/usr/bin/entry /usr…" 11 seconds ago Up 9 seconds 3306/tcp, 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp gallant_wozniak
????????3.3 利用瀏覽器訪問rancher平臺
## 瀏覽器訪問(http://管理節點IP:端口號)
http://192.168.51.100:8080
## 初始登錄平臺時的語言默認是英文,這里大家可以在頁面的右下角處手動修改
????????3.4?創建admin用戶
????????3.5 創建完成后,注銷當前用戶,使用admin用戶登錄平臺
4、搭建Swarm集群
????????4.1 創建一個環境模板:mySwarm,并將其添加到環境中
## 添加環境模板## 將mySwarm模板添加到環境中
????????4.2 添加主機到mySwarm
##? 先切換到mySwarm環境中## 復制主機添加地址
在主機上運行復制的腳本,將管理節點master主機、工作節點node1和node2主機添加到mySwarm集群中(三個節點均要執行)
- 若出現以下報錯:
- 原因:
????????當前系統安裝的是 Docker 26.1.4 版本(API 版本 1.45),而 Rancher Agent v1.2.11 要求的最低 API 版本為 1.2414。雖然你的 Docker 版本理論上兼容(1.45 > 1.24),但 Rancher 舊版本可能對高版本 Docker 存在兼容性問題。主機的docker api版本為1.45,rancher支持的最新api版本為1.24,不兼容,所以需要對主機的docker api版本降級。
- 解決方案:
1. 完全卸載舊版 Docker
# 卸載所有 Docker 相關軟件包
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine docker-ce docker-ce-cli containerd.io# 刪除 Docker 相關文件和目錄
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
sudo rm -rf /etc/docker/
sudo rm -f /usr/bin/docker /usr/local/bin/docker2. 安裝必要工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm23. 添加 Docker 官方倉庫
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo4. 安裝特定版本 Docker (18.09.9)
sudo yum install -y docker-ce-18.09.9 docker-ce-cli-18.09.9 containerd.io5. 啟動 Docker 并設置開機啟動
sudo systemctl start docker
sudo systemctl enable docker
sudo systemc tl daemon-reload6. 驗證安裝
sudo docker --version
# 應該顯示: Docker version 18.09.9, build xxxxxxx
????????4.3?檢驗,查看集群是否添加成功
添加成功!Swarm集群搭建完成!!
5、在集群中添加容器
## 在此處將容器添加到工作節點node1主機中,大家可自行根據需求添加
## 在面板里可以看到容器添加成功,并正常運行
##? 也可以在Swarm CLI命令行查看