当前位置: 首页 > news >正文

可以在什么网站做二建题目/上海网络推广渠道

可以在什么网站做二建题目,上海网络推广渠道,表情包制作生成器,做网站的怎么跑业务Swarm简介 Swarm是一套较为简单的工具,用以管理Docker集群,使得Docker集群暴露给用户时相当于一个虚拟的整体。Swarm使用标准的Docker API接口作为其前端访问入口,换言之,各种形式的Docker Client(dockerclient in go, docker_py…

Swarm简介

Swarm是一套较为简单的工具,用以管理Docker集群,使得Docker集群暴露给用户时相当于一个虚拟的整体。Swarm使用标准的Docker API接口作为其前端访问入口,换言之,各种形式的Docker Client(dockerclient in go, docker_py, docker等)均可以直接与Swarm通信。
Swarm的设计和其他Docker项目一样,遵循“batteries included but removable”原则

笔者对该原则的理解是:batteries included代表设计Swarm时,为了完全体现分布式容器集群部署、运行与管理功能的完整性,Swarm和Docker协同工作,Swarm内部包含了一个较为简易的调度模块,以达到对Docker集群调度管理的效果;“but removable”意味着Swarm与Docker并非紧耦合,同时Swarm中的调度模块同样可以定制化,用户可以按照自己的需求,将其替换为更为强大的调度模块,如Mesos等。另外,这套管理引擎并未侵入Docker的使用,这套机制也为其他容器技术的集群部署、运行与管理方式提供了思路。

Swarm 特点

对外以Docker API接口呈现,这样带来的好处是,如果现有系统使用Docker Engine,则可以平滑将Docker Engine切到Swarm上,无需改动现有系统。

Swarm对用户来说,之前使用Docker的经验可以继承过来。非常易上手,学习成本和二次开发成本都比较低。同时Swarm本身专注于Docker集群管理,非常轻量,占用资源也非常少。
“Batteries included but swappable”,简单说,就是插件化机制,swarm中的各个模块都抽象出了api,可以根据自己一些特点进行定制实现。

Swarm自身对docker命令参数支持的比较完善,Swarm目前与Docker是同步发布的。Docker的新功能,都会第一时间在Swarm中体现。

实验开始

实验环境

主机 IP 系统 角色

153 192.168.121.153 centos7 manager

154 192.168.121.154 centos7 worker

155 192.168.121.155 centos7 worker

命令介绍:

-d 后台运行
–name 指定server 名,不是容器名(容器命令默认 服务名.编号.随机id串)
-p 指定service映射的端口
–network 指定网络
–mode 指定容器分配的模式(replicated: 随机分配,可由 constraint约束分配到哪些节点 global:全局,确保每个节点都会有该服务的容器)
–constraint 约束容器分配到哪些节点
–replicas 指定当前services 下创建的 容器的数量
–replicas-max-per-node 指定每个节点可创建给service的容器的最大数
–restart-condition 重启条件,类似于 容器run的 --restart
–user 指定运行用户身份
–endpoint-mode 负载均衡模式 vip dns
nginx:latest 创建容器使用的镜像

首先准备好三台机子 ,我是用153、154 、155

每台主机都配置A记录相互解析

cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.121.153 server153
192.168.121.154 server154
192.168.121.155 server155

dcoker的安装

先卸载本机原来的docker,如果主机是干净的就不用执行这步,我是还原的机子,所以这步不执行也没什么

yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine

然后去官方下载docker的yum源

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

然后下载docker

sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

启动docker

sudo systemctl start docker

swarm集群的创建

然后我们指定一台153主机构建一个集群并成为管理节点

[root@server153 ~]# docker swarm init
Swarm initialized: current node (cul5m5m456oq9wwrbw91i5vsu) is now a manager.To add a worker to this swarm, run the following command:docker swarm join --token SWMTKN-1-15p6qvh2u2znrrcslz53inkdhleubl8x9m5xlcm27f9q2eimyl-enul5wbhb6qepej1nod6jdrq2 192.168.121.153:2377To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

集群构建好以后我们去154和155主机加入这个集群

[root@server154 ~]# docker swarm join --token SWMTKN-1-15p6qvh2u2znrrcslz53inkdhleubl8x9m5xlcm27f9q2eimyl-enul5wbhb6qepej1nod6jdrq2 192.168.121.153:2377
This node joined a swarm as a worker.
[root@server154 ~]# docker swarm join --token SWMTKN-1-15p6qvh2u2znrrcslz53inkdhleubl8x9m5xlcm27f9q2eimyl-enul5wbhb6qepej1nod6jdrq2 192.168.121.153:2377
This node joined a swarm as a worker.

然后去153管理主机查看集群情况

[root@server153 ~]# docker node   ls
ID                            HOSTNAME    STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
cul5m5m456oq9wwrbw91i5vsu *   server153   Ready     Active         Leader           24.0.7
fh23wcmmfmt7vyayh7bzx28ls     server154   Ready     Active                          24.0.7
5y468v8pk98ei79frycmz9fww     server155   Ready     Active  

可以看到集群情况都是健康的

然后开始我们项目的部署

首先在管理节点创建一个overlay网络给这个集群通信使用

[root@server153 ~]# docker  network create  --driver overlay  nginx-net
zwvmf0upuledjh2uarupfnzgt
[root@server153 ~]# docker network ls
NETWORK ID     NAME              DRIVER    SCOPE
db5d2975dd04   bridge            bridge    local
31eb2f0c4e92   docker_gwbridge   bridge    local
52a372541a65   host              host      local
ag7i6g1sb542   ingress           overlay   swarm
zwvmf0upuled   nginx-net         overlay   swarm
b95fd0863462   none              null      local

service的构建

然后在每个节点都拉取一个nginx的最新镜像

当然只在管理节点拉也行,管理节点会将镜像分发给其它节点来保证镜像的一致性

不过分发镜像需要时间,所以还是先拉取一样的镜像比较好

为了验证我故意在155节点不拉取镜像

[root@server153 ~]# docker pull nginx:latest
[root@server153 ~]# docker images
REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
nginx        latest    c20060033e06   3 days ago   187MB

然后开始构建service,其中参数不懂得可以对照上面写的,上面开头介绍了用到的参数

[root@server153 ~]# docker  service  create  -d  --name web -p80:80  --network nginx-net --replicas 3  --replicas-max-per-node 10  --restart-condition  any  --user root  --mode  replicated  nginx:latest

然后查看service web下容器的情况

因为我们指定创建三个容器,刚好每个节点一台

然后这里注意看155节点容器的运行时间比其它两个节点少一分钟

那就是因为分发镜像要花时间,他启动的就比其它两个节点晚一分钟,镜像越大分发的时间越长

[root@server153 ~]# docker service ps web 
ID             NAME      IMAGE          NODE        DESIRED STATE   CURRENT STATE           ERROR     PORTS
u4cxfrcd2t4q   web.1     nginx:latest   server153   Running         Running 9 minutes ago             
w22cnbrdjo24   web.2     nginx:latest   server154   Running         Running 9 minutes ago             
n2g4nma52mtg   web.3     nginx:latest   server155   Running         Running 8 minutes ago   

起来了以后我们访问去浏览器访问试试

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

可以看到访问每台机子都是可以的,而且还实现了负载均衡,因为内容一样看不出来,下面我来实验一下

给三台机子里的文件index.html编辑不同的内容

[root@server153 ~]# echo 33333333333333333 > ./index.html
[root@server153 ~]# docker cp ./index.html web.1.qydzc04d6vt4q2ux4uzokir6z:/usr/share/nginx/html/index.html
Successfully copied 2.05kB to web.1.qydzc04d6vt4q2ux4uzokir6z:/usr/share/nginx/html/index.html
[root@server154 ~]# echo 44444444444444 > ./index.html
[root@server154 ~]# docker cp ./index.html web.2.d2qto723yk3hqlb76leaps3u5:/usr/share/nginx/html/index.html
Successfully copied 2.05kB to web.2.d2qto723yk3hqlb76leaps3u5:/usr/share/nginx/html/index.html
[root@server155 ~]# echo 55555555555 > index.php
[root@server155 ~]# docker cp ./index.php web.3.b41rsxvjxw7br5vxk5d6i74ve:/usr/share/nginx/html/index.html
Successfully copied 2.05kB to web.3.b41rsxvjxw7br5vxk5d6i74ve:/usr/share/nginx/html/index.html

因为浏览器有缓存,测试不了,我直接用curl测试

[root@server153 ~]# curl 192.168.121.153
44444444444444
[root@server153 ~]# curl 192.168.121.153
55555555555
[root@server153 ~]# curl 192.168.121.153
33333333333333333
[root@server153 ~]# curl 192.168.121.153
44444444444444
[root@server153 ~]# curl 192.168.121.153
55555555555
[root@server153 ~]# curl 192.168.121.153
33333333333333333

可以看到我只是访问了153节点,但是却能访问到其它节点的docker的内容

所以这就是负载均衡的实现,swarm集群会自动实现负载均衡

docker service scale 的扩展

docker swarm还可以扩展或缩小容器服务

下面也展示一下,一开始我们不是指定三个容器而已吗,现在我们扩展为5个,并查看容器情况

[root@server153 ~]# docker service scale web=5
web scaled to 5
overall progress: 5 out of 5 tasks 
1/5: running   
2/5: running   
3/5: running   
4/5: running   
5/5: running   
verify: Service converged 
[root@server153 ~]# docker service ps web 
ID             NAME      IMAGE          NODE        DESIRED STATE   CURRENT STATE                ERROR     PORTS
qydzc04d6vt4   web.1     nginx:latest   server153   Running         Running 46 minutes ago                 
d2qto723yk3h   web.2     nginx:latest   server154   Running         Running 46 minutes ago                 
b41rsxvjxw7b   web.3     nginx:latest   server155   Running         Running 46 minutes ago                 
6tfah9y7hsvi   web.4     nginx:latest   server153   Running         Running about a minute ago             
a4jxhcyn33ui   web.5     nginx:latest   server155   Running         Running about a minute ago   

可以看到我们多出了两个容器,并且由swarm随机分配到其它节点上

我们去访问试试

[root@server153 ~]# curl 192.168.121.154
55555555555
[root@server153 ~]# curl 192.168.121.154
33333333333333333
[root@server153 ~]# curl 192.168.121.154
44444444444444
[root@server153 ~]# curl 192.168.121.154
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p><p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p><p><em>Thank you for using nginx.</em></p>
</body>
</html>

可以看到不仅访问到了原来我们修改的信息,还访问到了其它信息

那是因为我们扩展容器节点是创建新的容器,容器里的内容就是原本镜像生成的,所以内容就会变为原来的页面信息,后面真实生产环境中挂volume载数据券就可以保持数据一致了

docker service scale 的缩小

当然还有缩小docker服务,这个在高峰访问流量下来以后还是很有用的

[root@server153 ~]# docker service scale web=2
web scaled to 2
overall progress: 2 out of 2 tasks 
1/2: running   [==================================================>] 
2/2: running   [==================================================>] 
verify: Service converged 
[root@server153 ~]# docker service ps web 
ID             NAME      IMAGE          NODE        DESIRED STATE   CURRENT STATE               ERROR     PORTS
qydzc04d6vt4   web.1     nginx:latest   server153   Running         Running about an hour ago             
d2qto723yk3h   web.2     nginx:latest   server154   Running         Running about an hour ago             

可以看到将5个docker服务缩小为2个以后,155节点上的就没有了,这样就减少了资源的消耗

docker swarm的基本用法就是这样了

希望对大家有帮助

相关文章:

Docker Swarm实现容器的复制均衡及动态管理:详细过程版

Swarm简介 Swarm是一套较为简单的工具&#xff0c;用以管理Docker集群&#xff0c;使得Docker集群暴露给用户时相当于一个虚拟的整体。Swarm使用标准的Docker API接口作为其前端访问入口&#xff0c;换言之&#xff0c;各种形式的Docker Client(dockerclient in go, docker_py…...

Proteus仿真--1602LCD显示仿手机键盘按键字符(仿真文件+程序)

本文主要介绍基于51单片机的1602LCD显示仿手机键盘按键字符&#xff08;完整仿真源文件及代码见文末链接&#xff09; 仿真图如下 其中左下角12个按键模拟仿真手机键盘&#xff0c;使用方法同手机键一样&#xff0c;长按自动跳动切换键值&#xff0c;松手后确认选择&#xff…...

Rust语言和curl库编写程序

这是一个使用Rust语言和curl库编写的爬虫程序&#xff0c;用于爬取视频。 use std::env; use std::net::TcpStream; use std::io::{BufReader, BufWriter}; ​ fn main() {// 获取命令行参数let args: Vec<String> env::args().collect();let proxy_host args[1].clon…...

FSDiffReg:心脏图像的特征和分数扩散引导无监督形变图像配准

论文标题&#xff1a; FSDiffReg: Feature-wise and Score-wise Diffusion-guided Unsupervised Deformable Image Registration for Cardiac Images 翻译&#xff1a; FSDiffReg&#xff1a;心脏图像的特征和分数扩散引导无监督形变图像配准 摘要 无监督可变形图像配准是医学…...

音视频技术开发周刊 | 318

每周一期&#xff0c;纵览音视频技术领域的干货。 新闻投稿&#xff1a;contributelivevideostack.com。 日程揭晓&#xff01;速览深圳站大会专题议程详解 LiveVideoStackCon 2023 音视频技术大会深圳站&#xff0c;保持着往届强大的讲师阵容以及高水准的演讲质量。两天的参会…...

asp.net docker-compose添加sql server

打开docker-compose.yml 添加 sqldata:image: mysql:8.1.0 打开docker-compose.override.yml 添加 sqldata:environment:- MYSQL_ROOT_PASSWORDPasswordports:- "8080:8080"volumes:- killsb-one-sqldata:/etc/mysql/conf.d 在docker里面就有了sql server容器镜像…...

uniapp 微信小程序 uni-file-picker上传图片报错 chooseAndUploadFile

这个问题真的很搞&#xff0c; 原因是微信开发者工具更新了&#xff0c;导致图片上传问题。 解决方法&#xff1a; 将微信开发者工具的基础库改为2.33.0一下即可。 在微信开发者工具详情 - 本地设置中&#xff08;记得点击‘推送’按钮&#xff09;&#xff1a;...

《向量数据库指南》——用 Milvus Cloud和 NVIDIA Merlin 搭建高效推荐系统结论

如何搭建一个高效的推荐系统? 简单来说,现代推荐系统由训练/推理流水线(pipeline)组成,涉及数据获取、数据预处理、模型训练和调整检索、过滤、排名和评分相关的超参数等多个阶段。走遍这些流程之后,推荐系统能够给出高度个性化的推荐结果,从而提升产品的用户体验。 为…...

致:CSGO游戏搬砖人的一封信

最近大家还在坚持操作CSGO游戏搬砖项目不&#xff1f; 这个项目虽是稳赚项目&#xff0c;但也有行情好和行情不好的时候&#xff0c;平台的大中小各种活动的举办&#xff0c;都会对我们的项目造成一定影响。行情的上下波动势必然会影响卡价的波动&#xff0c;影响选品的快慢&a…...

MuLogin浏览器如何在一台设备上安全登录和管理多个LinkedIn账户?

一、LinkedIn多个账户的用处 LinkedIn作为世界上最大的专业人士社交平台&#xff0c;具有许多有用的功能&#xff0c;对于个人和企业来说都非常重要。以下是多个LinkedIn账户的一些典型用途&#xff1a; 1. 分行业账户&#xff1a;如果您在不同的行业从事职业活动&#xff0c…...

STM32_project:led_beep

代码&#xff1a; 主要部分&#xff1a; #include "stm32f10x.h" // Device header #include "delay.h"// 给蜂鸣器IO口输出低电平&#xff0c;响&#xff0c;高&#xff0c;不向。 //int main (void) //{ // // 开启时钟 // RC…...

[go 反射] 入门

[go 反射] 入门 首先认识go 反射的两大概念&#xff0c;反射之路少不了他们 reflect.Type(接口)获取类型&#xff0c;和列名就找它reflect.Value(结构体)获取值&#xff0c;设置值找它 [tips] 通常是用这两者手底下的方法&#xff0c;reflect.Value结构体中有什么自行查看 …...

【计算机网络】数据链路层-MAC和ARP协议

文章目录 1. 认识以太网2. MAC协议MAC帧的格式MAC地址和IP地址的区别MTU 3. 局域网通信原理碰撞检测和避免 4. ARP协议ARP数据报的格式ARP缓存 1. 认识以太网 网络层解决的是跨网络点到点传输的问题&#xff0c;数据链路层解决的是同一网络中的通信。 数据链路层负责在同一局域…...

本周三商店更新:多款套装下线,四款升级武器带异色皮肤返厂

本周三将迎来26.2版本更新与11商店大更新&#xff0c;版本更新可点击26.2版本更新公告进行查看&#xff0c;这里不一一赘述了&#xff0c;下面大概罗列一下商店更新&#xff0c;有皮肤下架&#xff0c;大家还能趁最后时间入手&#xff0c;最重要的是四款升级武器返厂咯。 危险玩…...

WindowsServer2019-搭建FTP服务器

这里写自定义目录标题 一、基础配置IP地址安装FTP服务检查连通性Windows10连接FTP服务 二、了解和使用FTP具体模块及其配置1、FTP IP地址和域限制2、FTP SSL设置3、FTP当前会话4、FTP防火墙5、FTP目录浏览6、FTP请求筛选7、FTP日志8、FTP身份验证9、FTP授权规则10、FTP消息11、…...

国际阿里云服务器买哪种好用点?

在当时数字化年代&#xff0c;云核算已经成为了企业进行事务运营和数据存储的重要东西。而阿里云作为我国最大的云核算服务供给商&#xff0c;其服务器产品线也适当丰厚。那么&#xff0c;对于用户来说&#xff0c;阿里云服务器买哪种好用点呢&#xff1f;这需求依据个人和企业…...

2023NOIP A层联测25 总结

T1 让你构造 40 40 40\times40 4040 的只含 r,y,x 的矩阵&#xff0c;含有 r y x ryx ryx 的个数恰好为 n n n&#xff0c; n ≤ 2222 n\le2222 n≤2222。看完题后就开始想构造&#xff0c;一开始想构造 3 ∗ 3 3*3 3∗3, 5 ∗ 5 5*5 5∗5 的单位矩阵的&#xff0c;但是始…...

Thread类的基本操作(JAVA多线程)

线程是操作系统中的概念&#xff0c;操作系统内核实现了线程这样的机制&#xff0c;并提供了一些API供外部使用。 JAVA中 Thread类 将系统提供的API又近一步进行了抽象和封装&#xff0c;所以如果想要使用多线程就离不开 Thread 这个类。 线程的创建(Thread类) 在JAVA中 创建…...

Redis 的三种部署模式

提前叠个 buff&#xff1a;这个文章不涉及图&#xff08;画起来比较麻烦&#xff09;&#xff0c;只是记录我的胡思乱想。 redis 从单点 -> 集群总共有三个部署模式&#xff1a;单机模式&#xff0c;主从模式&#xff0c;哨兵模式&#xff0c;集群模式 单机模式 新手入门模…...

【ArcGIS Pro二次开发】(73):使用NPOI库操作Excel

NPOI是一个开源的C#读写Excel、WORD等微软OLE2组件文档的项目。 NPOI可以在没有安装Office的情况下对Word或Excel文档进行读写操作。 相较于之前使用的Microsoft.Office.Interop.Excel&#xff0c;已经感觉到的优势&#xff0c;一是读写速度较快&#xff0c;虽然小数据量的读…...

python获取电脑所连接的wifi密码

电脑连接wifi后&#xff0c;很难直观地看到当前连接wifi的密码&#xff0c;需要借助命令行公管局才可以查看到相关信息。 CMD命令 查看所有已保存的wifi配置信息 netsh wlan show profiles查看某一个wifi的详细信息&#xff0c;需要输入wifi名称来查询 netsh wlan show pro…...

动态壁纸软件Live Wallpaper HD mac中文版功能特色

Live Wallpaper HD mac提供了一系列美丽的主题场景&#xff0c;将为您的桌面增添活力。从城市景观、日落到遥远的星系&#xff0c;每个屏幕都有特别的触感&#xff0c;可以定制您的天气小部件和时钟样式&#xff0c;并使用您喜爱的图片创建您自己的个性化壁纸。 Living Wallpap…...

Spring Boot 配置主从数据库实现读写分离

一、前言 现在的 Web 应用大都是读多写少。除了缓存以外还可以通过数据库 “主从复制” 架构&#xff0c;把读请求路由到从数据库节点上&#xff0c;实现读写分离&#xff0c;从而大大提高应用的吞吐量。 通常&#xff0c;我们在 Spring Boot 中只会用到一个数据源&#xff0…...

【MongoDB】索引 - 单字段索引

MongoDB支持在集合文档中的任意字段上创建索引&#xff0c;默认情况下所有的集合都有一个_id字段的索引&#xff0c;用户和应用可以新增索引用于查询和操作。 一、准备工作 这里准备一些学生数据 db.students.insertMany([{ _id: 1, name: "张三", age: 20, clas…...

评估大型语言模型:综述

论文地址&#xff1a;https://arxiv.org/pdf/2310.19736v2.pdf github&#xff1a; tjunlp-lab/awesome-llms-evaluation-… 发表团队&#xff1a;Tianjin University 摘要 将LLM评估划分三点&#xff1a;知识和能力评估、一致性评估和安全性评估。特定领域化评估benchmark评…...

设计模式之工厂模式(Factory)

任何可以产生对象的方法或类&#xff0c;都可以称为工厂。 下面的代码定义了Car这种交通工具: public class Car {public void go() {System.out.println("Car go wuwuwuwuw....");} }然后在main函数里面想要调用调用Car的go方法&#xff0c;就需要new一个car对象&…...

2023/11/6 JAVA学习

处理编译异常的两种方法 第一种 第二种 问题比较容易犯,编译时异常...

Android-JobService

JobService 这里写目录标题 JobService一、API详解1 onStartJob2 onStopJob 二、onStartJob | onStopJob 返回值case 1case 2case 3 ref: 深入理解JobScheduler与JobService的使用 - 掘金 (juejin.cn) (28条消息) JobService的使用介绍_TechMerger的博客-CSDN博客 (28条消息) J…...

GraphQL入门与开源的GraphQL引擎Hasura体验

背景 Hasura 是一个开源的 GraphQL 引擎&#xff0c;它可以帮助开发人员快速构建和部署现代应用程序的后端。它提供了一个自动化的 GraphQL API &#xff0c;可以直接连接到现有的数据库&#xff0c;并提供实时数据推送和订阅功能。 Hasura 团队总部位于印度。 下载安装 脚本…...

Javascript知识点详解:this关键字的指向问题

目录 this 关键字 涵义 实质 使用场合 使用注意点 避免多层 this 避免数组处理方法中的 this 避免回调函数中的 this 绑定 this 的方法 Function.prototype.call() Function.prototype.apply() Function.prototype.bind() 箭头函数中的 this this 关键字 涵义 t…...