一、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命令行查看