利用Rancher平台搭建Swarm集群

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/96964.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/96964.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Debezium日常分享系列之:MongoDB 新文档状态提取

Debezium日常分享系列之:MongoDB 新文档状态提取变更事件结构行为配置数组编码嵌套结构展平MongoDB $unset 处理确定原始操作添加元数据字段选择性应用转换的选项配置选项已知限制Debezium MongoDB 连接器会发出数据变更消息,以表示 MongoDB 集合中发生的…

OpenCV:图像透视变换

文章目录一、透视变换是什么?二、透视变换的核心原理1. 关键概念:透视变换矩阵2. 核心条件:4对对应点三、OpenCV实现透视变换的关键步骤步骤1:读取并预处理图像步骤2:寻找目标物体的4个顶点步骤3:计算透视变…

commons-csv

maven依赖<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-csv --><dependency><groupId>org.apache.commons</groupId><artifactId>commons-csv</artifactId><version>1.14.1</version></dependency…

LeetCode 1446.连续字符

给你一个字符串 s &#xff0c;字符串的「能量」定义为&#xff1a;只包含一种字符的最长非空子字符串的长度。 请你返回字符串 s 的 能量。 示例 1&#xff1a; 输入&#xff1a;s “leetcode” 输出&#xff1a;2 解释&#xff1a;子字符串 “ee” 长度为 2 &#xff0c;只包…

CTFHub SSRF通关笔记9:302跳转 Bypass 原理详解与渗透实战

目录 一、SSRF与302跳转 1、SSRF 2、302响应 3、SSRF与302结合 &#xff08;1&#xff09;SSRF源码分析 &#xff08;2&#xff09;攻击链条&#xff08;Flow of Exploit&#xff09; 二、渗透实战 1、打开靶场 2、尝试127.0.0.1访问 3、file协议分析源码 &#xff…

Windows-Use实战:AI驱动的Windows自动化

Windows-Use实战:AI驱动的Windows自动化 前言 项目介绍与准备工作 Windows-Use是什么? 系统要求 必需环境 步骤一:安装Python和基础环境 1.1 安装Python 检查Python版本 Python安装步骤 1.2 创建项目目录 步骤二:安装Windows-Use 2.1 使用pip安装(推荐) 步骤三:运行和基…

STM32-FreeRTOS操作系统-二值信号量与计数信号量

引言在嵌入式开发领域&#xff0c;任务同步与通信是系统稳定运行的核心。STM32配合FreeRTOS操作系统&#xff0c;为开发者提供了强大的工具支持。其中&#xff0c;二值信号量和计数信号量作为FreeRTOS的关键同步机制&#xff0c;分别用于任务间的简单同步和资源计数控制。二值信…

MarTech营销技术全景解析:概念、图谱与最新实践案例

一、引言&#xff1a;为什么企业越来越依赖MarTech&#xff1f;在数字化浪潮下&#xff0c;企业营销环境正发生深刻变化&#xff1a;客户触点增加&#xff1a;从官网、社交媒体到短视频、展会&#xff0c;信息渠道呈指数级增长。决策链条复杂&#xff1a;B2B客户通常需要多轮调…

服务器 - 从一台服务器切换至另一台服务器(损失数十条访客记录)

服务器 - 从一台服务器切换至另一台服务器(损失数十条PV记录为代价) 看着四年的服务器正式到期&#xff0c;没什么轰轰烈烈的告别&#xff0c;就像目送老朋友转身走远&#xff0c;只默默记下&#xff1a;哦&#xff0c;原来它陪了我这么久啊。 前言 一台陪伴了我4年的服务器昨…

《云原生边缘与AI训练场景:2类高频隐蔽Bug的深度排查与架构修复》

在云原生技术向边缘计算与AI训练场景渗透的过程中&#xff0c;基础设施层的问题往往会被场景特性放大——边缘环境的弱网络、异构硬件&#xff0c;AI训练的高资源依赖、分布式协作&#xff0c;都可能让原本隐藏的Bug以“业务故障”的形式爆发。这些问题大多不具备直观的报错信息…

【51单片机】【protues仿真】基于51单片机数控直流稳压电源系统

目录 一、主要功能 二、使用步骤 三、硬件资源 四、软件设计 五、实验现象 一、主要功能 1、数码管显示输出电压值 2、滑动电阻调节输出电压 3、电压输出范围0-15V&#xff0c;步进值1 二、使用步骤 基于51单片机的数控直流稳压电源是一种通过数字控制实现电压调节的智…

xtuoj Rectangle

题目思路将矩形间的相交情况通过投影转化为x、y两个方向下的线段是否相交&#xff0c;即前面的题目&#xff0c;判断两个区间是否相交&#xff0c;x投影的每个区间的左端点是每个矩形x的min&#xff0c;右端点是每个矩形的x的max&#xff0c;y投影情况同理&#xff0c;只要x轴的…

【深度学习踩坑实录】从 Checkpoint 报错到 TrainingArguments 精通:QNLI 任务微调全流程复盘

作为一名深度学习初学者&#xff0c;最近在基于 Hugging Face Transformers 微调 BERT 模型做 QNLI 任务时&#xff0c;被Checkpoint 保存和TrainingArguments 配置这两个知识点卡了整整两天。从磁盘爆满、权重文件加载报错&#xff0c;到不知道如何控制 Checkpoint 数量&#…

Java面试小册(3)

21【Q】: 什么是Java的SPI机制&#xff1f;【A】&#xff1a;SPI 是一种插件机制&#xff0c;用于在运行时动态加载服务的实现。它通过定义接口&#xff08;服务接口&#xff09;并提供一种可扩展的方式来让服务的提供着&#xff08;实现类&#xff09;在运行时注入&#xff0c…

P1150 Peter 的烟

记录20#include <bits/stdc.h> using namespace std; int main(){int n,k;cin>>n>>k;int cnt0;while(n>k){cntk;nn-k1;}cntn;cout<<cnt;return 0; }突破口每吸完一根烟就把烟蒂保存起来&#xff0c;k&#xff08;k>1&#xff09;个烟蒂可以换一个…

Cursor和Hbuilder用5分钟开发微信小程序

分享一个5分钟搞定微信小程序开发的技能&#xff0c;需要用到两个工具&#xff1a;Cursor和Hbuilder。 第1步、下载HBuilder。Hbuilder可以实现一套代码直接生成安卓、苹果、鸿蒙各个平台APP。访问Hbuilder的官方网站&#xff0c;HBuilderX-高效极客技巧&#xff0c;选择适合…

k8s的dashboard

找一个装有docker的机器&#xff0c;在一个rocky linux的虚拟机里弄拉取一个rancher镜像建立一个目录&#xff0c;目的&#xff1a;和里面数据做持久化关联后台运行&#xff0c;让他有权限&#xff0c;8080端口和容器80端口映射&#xff0c;443和443做映射查看一下删掉&#xf…

桥接模式,打造灵活可扩展的日志系统C++

一、为什么用桥接模式在企业开发中&#xff0c;日志系统几乎是标配。常见需求&#xff1a;日志有多种类型&#xff08;Info、Warning、Error 等&#xff09;&#xff1b;日志需要支持多种输出方式&#xff08;控制台输出、写文件、远程上传、数据库存储等&#xff09;。如果把这…

kafka--基础知识点--5.3--producer事务

1 事务简介 Kafka事务是Apache Kafka在流处理场景中实现Exactly-Once语义的核心机制。它允许生产者在跨多个分区和主题的操作中&#xff0c;以原子性&#xff08;Atomicity&#xff09;的方式提交或回滚消息&#xff0c;确保数据处理的最终一致性。例如&#xff0c;在流处理中…

利用DeepSeek实现服务器客户端模式的DuckDB原型

在网上看到韩国公司开发的一款GooseDB&#xff0c;DuckDB™ 的功能扩展分支&#xff0c;具有服务器/客户端、多会话和并发写入支持&#xff0c;使用 PostgreSQL 有线协议&#xff0c;但它是Freeware而不是开源&#xff0c;所以让DeepSeek实现之。 首先把readme页面发给他翻译&a…