利用Rancher平台搭建Swarm集群
一、Rancher概述
1、rancher平台
2、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集群搭建完成!!