Docker九 | Swarm mode

目录

Swarm基本概念

节点

服务和任务

创建Swarm集群

创建管理节点 

增加工作节点

 查看集群

部署服务

新建服务 

 查看服务

服务伸缩

增加服务 

 减少服务

删除服务


Swarm基本概念

节点

节点分为管理节点(manager)和工作节点(worker)

管理节点

管理节点用于Swarm集群的管理,docker swarm命令大多只能在管理节点执行。一个swarm集群可以有多个管理节点,但只有一个管理节点可以成为leader

工作节点

工作节点是任务执行节点,管理节点将服务下发至工作节点执行,管理节点也默认为工作节点。节点退出集群命令 docker swarm leave 可以在工作节点执行

服务和任务

任务(Task) 是Swarm中的最小调度单位,目前来说是一个单一的容器

服务(Service)是指一组任务的集合,服务定义了任务的属性。服务有如下两种模式:

  • replicated services按照一定规则在各个工作节点上运行指定个数的任务
  • global services每个工作节点上运行一个任务

两种模式通过docker service create的--mode参数指定

创建Swarm集群

创建管理节点 

本次创建包含一个管理节点和两个工作节点的最小Swarm集群 

在192.168.117.131下执行docker swarm init命令的节点自动成为管理节点

[root@localhost ~]# docker swarm init --advertise-addr 192.168.117.131
Swarm initialized: current node (mn0xmlobseurosjh9ylsex0uq) is now a manager.To add a worker to this swarm, run the following command:docker swarm join --token SWMTKN-1-3x9heaku0p7o99e56rwng3opbvtgbrtfnpavdewbrpgu8joojn-cjv34fhoz2aaqeewe6ga0ceof 192.168.117.131:2377To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

增加工作节点

在192.168.117.130和192.168.117.132下执行如下命令使之成为工作节点加入到集群中

docker swarm join --token SWMTKN-1-3x9heaku0p7o99e56rwng3opbvtgbrtfnpavdewbrpgu8joojn-cjv34fhoz2aaqeewe6ga0ceof 192.168.117.131:2377

成功会有如下反应

 查看集群

在管理节点执行如下命令

[root@localhost ~]# docker node ls
ID                            HOSTNAME                STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
mn0xmlobseurosjh9ylsex0uq *   localhost.localdomain   Ready     Active         Leader           24.0.7
pifvf9mr1ggvez9o92067gv60     localhost.localdomain   Ready     Active                          24.0.6
xdedgykahub32jyh09yeupbim     localhost.localdomain   Ready     Active                          24.0.6

部署服务

新建服务 

 在创建的Swarm集群中运行nginx服务

[root@localhost ~]# docker service create --replicas 3 -p 80:80 --name nginx nginx:1.13.7-alpine
hzb8ckdfjjrq7lmrgplhclblm
overall progress: 3 out of 3 tasks 
1/3: running   
2/3: running   
3/3: running   
verify: Service converged 

发现三种ip节点都可以访问nginx

 查看服务

 查看当前Swarm集群运行的服务

[root@localhost ~]# docker service ls
ID             NAME      MODE         REPLICAS   IMAGE                 PORTS
hzb8ckdfjjrq   nginx     replicated   3/3        nginx:1.13.7-alpine   *:80->80/tcp

查看某个服务的详情

[root@localhost ~]# docker service ps nginx 
ID             NAME      IMAGE                 NODE                    DESIRED STATE   CURRENT STATE            ERROR     PORTS
s18jve694hof   nginx.1   nginx:1.13.7-alpine   localhost.localdomain   Running         Running 15 minutes ago             
kukdiwkwzbk0   nginx.2   nginx:1.13.7-alpine   localhost.localdomain   Running         Running 15 minutes ago             
dutte36gcuqq   nginx.3   nginx:1.13.7-alpine   localhost.localdomain   Running         Running 15 minutes ago  

查看某个服务的日志

[root@localhost ~]# docker service logs nginx

服务伸缩

增加服务 

[root@localhost ~]# docker service scale nginx=5
nginx 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@localhost ~]# 

 减少服务

[root@localhost ~]# docker service scale nginx=2
nginx scaled to 2
overall progress: 2 out of 2 tasks 
1/2: running   
2/2: running   
verify: Service converged 
[root@localhost ~]# 

删除服务

[root@localhost ~]# docker service rm nginx
nginx

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

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

相关文章

Linux驱动学习—pinctl和gpio子系统

1、pinctl和gpio子系统&#xff08;一&#xff09; 1.1pinctrl 子系统主要工作内容 <1>获取设备树中 pin 信息&#xff0c;管理系统中所有的可以控制的 pin&#xff0c; 在系统初始化的时候&#xff0c; 枚举所有可以控制的 pin&#xff0c; 并标识这些 pin。 <2>…

nginx+keepalived实现七层负载

目录 一、部署nginx01、nginx02 二、keepalived配置&#xff08;抢占模式、master- backup模式&#xff09; 三、测试 四、非抢占模式&#xff08;backup-backup模式&#xff09; nginx01 11.0.1.31nginx0211.0.1.32虚拟IP&#xff08;VIP&#xff09;11.0.1.30 一、部署ngin…

SpringBoot+MyBatis+MySQL增删改查(一)(IDEA创建SpringBoot项目)

使用IDEA创建SpringBootMyBatisMySQL进行项目搭建 1.创建项目 文件 --> 新建 --> 项目 填写项目基本信息 项目名称、存放位置、项目语言、项目类型、JDK版本、打包 Web选项选择Spring Web SQL选项中勾选JDBC API、MyBatis Framework、MySQl Driver选项 至此一个空项目…

SpringBoot用JDK1.8的依赖设置pom.xml

pom.xml的修改主要是两个地方&#xff1a; 1.修改springframework的版本为2.5.0&#xff0c;版本太高可能和其他插件搭配有冲突&#xff1b; 2.Java的版本修改成8&#xff0c;也就是对应JDK1.8。

【编程语言】协程比较

一、比较五种编程语言&#xff08;Python、C、Go、C、Java&#xff09;的协程实现和特点。 Python Python从3.5版本开始通过async 和 await 关键字提供了原生协程支持&#xff0c;主要用于简化异步I/O操作。在Python中&#xff0c;协程是由事件循环&#xff08;event loop&am…

【Spring实战】14 Web表单校验

文章目录 1. 依赖2. 实体类3. 控制器4. 页面5. 启动6. 验证1&#xff09;访问页面2&#xff09;后台校验 7. 优点8. 代码详细总结 在 Web 应用中&#xff0c;表单是用户与后端交互的主要界面之一。为了确保数据的有效性和一致性&#xff0c;我们经常需要对提交的表单数据进行验…

学生管理系统(vue + springboot)

学生管理系统&#xff08;vuespringboot&#xff09;资源-CSDN文库 项目介绍 这是一个采用前后端分离开发的项目&#xff0c;前端采用 Vue 开发、后端采用 Spring boot Mybatis 开发。 项目部署 ⭐️如果你有 docker 的话&#xff0c;直接 docker compose up 即可启动&#…

计算机基础面试题 |01.精选计算机基础面试题

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

第4课 FFmpeg读取本地mp4文件并显示

在上节课&#xff0c;我们使用FFmpeg实现了一个最简单的rtmp播放器&#xff0c;它看起来工作正常。这节课&#xff0c;我们尝试让它来播放本地的mp4文件试试。 1.压缩备份上节课工程文件夹为demo3.rar&#xff0c;并修改工程文件夹demo3为demo4&#xff0c;重要的事情再说一遍…

使用anaconda创建notebook工程

1.由于每个工程使用的环境都可能不一样&#xff0c;因此一个好的习惯就是不同的工程都创建属于自己的环境&#xff0c;在anaconda中默认的环境是base&#xff1a; //括号中名字&#xff0c;代表当前的环境 (base)dragonmachine: $ conda create --nameexample2.激活环境 // 环…

Kubernetes网络-VXLAN

一. 网络基础 1. 计算机网络的分层 如今连接方式也越来也丰富&#xff0c;网线、WiFi、蓝牙、光纤&#xff0c;甚至我们普通的电线、照明所用的灯光&#xff0c;都可以作为接入网络的介质。如此庞大的网络&#xff0c;丰富多样的设备&#xff0c;计算机网络技术能把它们统一起…

回味2023

2023年的元旦假期我是在南京度过的&#xff0c;1月2日&#xff0c;我特别前往南京博物院&#xff0c;为了看一个特展——《墨田》。 时代发展&#xff0c;有些东西变了&#xff0c;但是有些东西没有变。 比如书写的方式变了&#xff0c;我们这一代&#xff0c;不再耕耘在真的“…