Docker进阶:Docker Swarm(集群搭建) —实现容器编排的利器

news2024/10/11 10:17:39

Docker进阶:Docker Swarm(集群搭建) —实现容器编排的利器

  • 1、什么是Docker Swarm?
  • 2、Docker Swarm 与 Docker Compose的区别
  • 3、创建一个Swarm集群(1-Manager,2-Worker)
    • 1、资源准备
    • 2、初始化Swarm集群 Manager 节点
    • 3、添加Worker节点到Swarm集群
    • 4、 Manager 节点查看集群状态
  • 4、Docker Swarm 中常用的一些命令


💖The Begin💖点点关注,收藏不迷路💖

1、什么是Docker Swarm?

Docker Swarm是Docker官方提供的容器编排工具,用于管理多个Docker容器的集群。通过Docker Swarm,用户可以轻松地部署、扩展和管理容器化应用程序。
在这里插入图片描述

1、Manager节点和Worker节点的角色和功能:

Manager节点:

1、Manager节点是Swarm集群的控制中心,负责管理整个集群的状态、调度任务和维护集群的一致性。
2、Manager节点负责接收用户的命令和请求,并将它们分发给Worker节点执行。
3、Manager节点还负责监控集群中的节点状态、服务状态和任务状态,并在需要时进行自动修复。

Worker节点:

1、Worker节点是Swarm集群中的工作节点,负责运行容器化的应用程序和服务。
2、Worker节点接收来自Manager节点的任务分配,并执行这些任务。
3、Worker节点可以根据需要动态扩展或缩减容器实例的数量,以满足应用程序的需求。

2、Swarm集群的通信机制和数据存储方式:

通信机制:

1、Swarm集群中的节点之间通过Docker的内置通信机制进行通信,这包括使用Raft一致性算法来保持集群状态的一致性。
2、Manager节点之间通过Raft协议进行通信和协调,以确保集群中的状态信息保持一致。
3、Worker节点通过Manager节点来获取任务分配和更新集群状态。

数据存储方式:

1、Swarm集群中的状态信息、配置信息和任务信息等数据存储在Manager节点的本地存储中。
2、Manager节点使用Raft协议来保持这些数据的一致性,并在集群中的所有Manager节点之间进行复制和同步。

3、Swarm模式和服务、任务(Task)的概念:

Swarm模式:

1、Swarm模式是一种用于部署和管理容器化应用程序的模式,它允许用户将多个Docker主机组成一个虚拟的集群。
2、Swarm模式提供了高可用性、负载均衡和自动扩展等功能,使得用户可以更轻松地管理大规模的容器化应用程序。

服务:

1、在Swarm集群中,服务是指用户定义的容器化应用程序或服务的逻辑单元。
2、服务可以包含一个或多个容器实例,并可以指定运行这些容器实例的规则、配置和策略。
3、用户可以通过定义服务来部署应用程序,并通过Swarm集群来管理和扩展这些服务。

任务(Task):

任务(Task)是指在集群中运行的容器实例的基本单位。任务是由服务定义的,每个服务可以包含一个或多个任务。任务代表了一个容器实例的运行,它在集群中的某个Worker节点上执行。

任务的特点:

1、任务是由Swarm集群调度和管理的最小单位,它代表了一个容器实例的运行。
2、每个任务都有一个唯一的标识符,用于在集群中进行识别和管理。
3、任务可以在集群中的任何Worker节点上运行,Swarm集群会根据调度策略将任务分配给合适的节点。

任务与服务的关系:

1、任务是由服务定义的,每个服务可以包含一个或多个任务。
2、当用户创建一个服务时,Swarm集群会根据服务的配置自动创建并运行相应数量的任务。
3、用户可以通过调整服务的副本数量或更新服务的配置来控制任务的数量和行为。

任务的生命周期:

1、任务的生命周期包括创建、运行、完成和销毁等阶段。
2、当用户创建一个服务时,Swarm集群会为该服务创建相应数量的任务,并将它们分配给Worker节点运行。
3、如果任务失败或节点故障,Swarm集群会自动重新调度任务,确保服务的高可用性。

任务的监控和管理:

1、用户可以通过Swarm集群的命令行工具或API来监控和管理任务的状态和行为。
2、用户可以查看任务的日志、状态和元数据信息,以便及时发现和解决问题。
3、用户还可以手动创建、更新或销毁任务,以满足特定的需求或调整服务的配置。

2、Docker Swarm 与 Docker Compose的区别

1、Docker Swarm
用途: Docker Swarm是Docker官方提供的容器编排工具,用于管理多个Docker主机上的容器集群。

特点:

1、可以将多个Docker主机组成一个集群,统一管理容器的部署、伸缩和高可用性。
2、支持服务发现、负载均衡等功能,可以实现跨主机的容器通讯。
3、具有集群管理和调度能力,可以自动处理节点故障、容器重启等情况。

2、Docker Compose

用途: Docker Compose是用于定义和运行多容器Docker应用程序的工具,通常用于单个主机上的容器编排、开发和测试环境中。

特点:

1、使用YAML文件定义多个服务、网络和卷的关系,方便快速搭建多容器应用。
2、适用于单个主机上的容器编排,不支持跨主机集群管理。
3、主要用于本地开发、测试和构建环境,简化了多容器应用的部署过程。

区别总结:

1、Docker Swarm适用于生产环境中的分布式容器编排,支持多主机集群管理和高可用性需求。
2、Docker Compose适用于开发、测试环境中的单主机多容器应用部署,帮助开发人员快速搭建和运行应用。

总的来说,Docker Swarm更适合于生产环境中复杂的容器编排需求,而Docker Compose更适合于单个主机上的容器编排、本地开发和测试环境中的快速部署应用。根据具体需求选择合适的工具使用会更加高效和方便。

3、创建一个Swarm集群(1-Manager,2-Worker)

1、资源准备

前提先安装Docker、Docker Compose。

[root@k8s-master ~]# docker -v
Docker version 24.0.5, build ced0996
[root@k8s-master ~]#

[root@k8s-master ~]# docker-compose --version
Docker Compose version v2.20.2
[root@k8s-master ~]#

名称IP
k8s-master192.168.234.20
k8s-node01192.168.234.21
k8s-node02192.168.234.22

2、初始化Swarm集群 Manager 节点

1、在要作为 Swarm Manager 的节点上执行以下命令来初始化 Swarm:

## 命令语法
docker swarm init --advertise-addr <MANAGER_IP>
[root@k8s-master ~]# docker swarm init --advertise-addr 192.168.234.20
Swarm initialized: current node (tgzgokeov6mrfip4q66kraiww) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-599natjku2knn7p4wtvkkb0am201nowyvhpu7a73oj3m9wdksp-2sfgdfyr8yhivwjcsiry8a7ht 192.168.234.20:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

[root@k8s-master ~]# 

在这里插入图片描述

3、添加Worker节点到Swarm集群

1、在其他节点上执行以下命令来加入 Swarm 集群:

## 命令语法
docker swarm join --token <TOKEN> <MANAGER_IP>:2377

这里 <TOKEN> 是在上一步初始化 Swarm 时生成的 token,<MANAGER_IP> 是 Swarm Manager 的 IP 地址。

docker swarm join --token SWMTKN-1-599natjku2knn7p4wtvkkb0am201nowyvhpu7a73oj3m9wdksp-2sfgdfyr8yhivwjcsiry8a7ht 192.168.234.20:2377

在这里插入图片描述
在这里插入图片描述

4、 Manager 节点查看集群状态

可以通过以下命令查看 Swarm 集群中所有节点的状态:

docker node ls

在这里插入图片描述

ID:节点的唯一标识符。
HOSTNAME:节点的主机名。
STATUS:节点的状态,包括Ready表示节点正常运行。
AVAILABILITY:节点的可用性状态,Active表示节点处于活动状态。
MANAGER STATUS:节点的管理者状态,Leader表示该节点是Swarm集群的Leader节点,负责管理集群。
ENGINE VERSION:Docker引擎的版本号。

4、Docker Swarm 中常用的一些命令

1、初始化和管理Swarm集群

初始化Swarm:docker swarm init --advertise-addr <MANAGER_IP>
加入节点到Swarm:docker swarm join --token <TOKEN> <MANAGER_IP>:2377
查看Swarm节点列表:docker node ls
查看Swarm服务列表:docker service ls

2、服务管理

创建服务:docker service create <SERVICE_NAME> <IMAGE>
查看服务详情:docker service inspect <SERVICE_ID>
扩容服务:docker service scale <SERVICE_NAME>=<REPLICAS>
更新服务:docker service update --image <NEW_IMAGE> <SERVICE_NAME>
删除服务:docker service rm <SERVICE_NAME>

3、容器管理

查看容器列表:docker ps
查看容器日志:docker logs <CONTAINER_ID>
进入容器:docker exec -it <CONTAINER_ID> /bin/bash
停止容器:docker stop <CONTAINER_ID>
删除容器:docker rm <CONTAINER_ID>

4、节点管理

提升节点为Manager:docker node promote <NODE_ID>
降级节点为Worker:docker node demote <NODE_ID>
从Swarm中删除节点:docker node rm <NODE_ID>

5、其他常用命令

查看Swarm信息:docker info
查看Swarm配置:docker swarm inspect
查看Swarm服务日志:docker service logs <SERVICE_NAME>

🍀🍀🍀 续下一篇:Docker进阶:Docker Swarm —弹性伸缩调整服务的副本数量

在这里插入图片描述


💖The End💖点点关注,收藏不迷路💖

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

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

相关文章

机器人姿态估计-IMU、互补滤波算法应用

机器人姿态估计-IMU、互补滤波算法应用 附赠自动驾驶学习资料和量产经验&#xff1a;链接 机器人的姿态测量对于许多应用至关重要&#xff0c;如导航、运动控制等。在这篇文章中&#xff0c;我们将介绍如何利用MPU6050传感器以及互补滤波和卡尔曼滤波算法来实现自平衡车的姿态…

vue 实现自定义分页打印 window.print

首先这里是我自定义了打印界面才实现的效果&#xff0c;如果不用自定义界面实现&#xff0c;应该是一样的吧。具体可能需要自己去试试看 我的需求是界面有两个表格&#xff0c;点击全部打印&#xff0c;我需要把第一表格在打印是第1页&#xff0c;第二个表格是第二页 如图&…

二十二、软考-系统架构设计师笔记-真题解析-2018年真题

软考-系统架构设计师-2018年上午选择题真题 考试时间 8:30 ~ 11:00 150分钟 1.在磁盘调度管理中&#xff0c;应先进行移臂调度&#xff0c;再进行旋转调度。假设磁盘移动臂位于21号柱面上&#xff0c;进程的请求序列如下表所示。如果采用最短移臂调度算法&#xff0c;那么系统…

ensp中pc机访问不同网络的服务器

拓扑图如下&#xff0c;资源已上传 说明&#xff1a;pc通过2个路由访问server服务器 三条线路分别是192.168.1.0网段&#xff0c;192.168.2.0网段和192.168.3.0网段&#xff0c;在未配置的情况下&#xff0c;pc设备是访问不到server的 具体操作流程 第一&#xff1b;pc设备…

C# 操作 Word 全域查找且替换(含图片对象)

目录 关于全域查找且替换 Word应用样本 SqlServer数据表部分设计样本 范例运行环境 配置Office DCOM 设计实现 组件库引入 实现原理 查找且替换的核心代码 窗格内容 页眉内容 页脚内容 形状内容 小结 关于全域查找且替换 C#全域操作 Word 查找且替换主要包括如下…

CSGO赛事管理系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW&#xff0c;文末可获取本项目的所有资料。 推荐阅读100套最新项目持续更新中..... 2024年计算机毕业论文&#xff08;设计&#xff09;学生选题参考合集推荐收藏&#xff08;包含Springboot、jsp、ssmvue等技术项目合集&#xff09; 目录 1. 系…

QT数据类型和容器用法

Qt库提供了基于通用模板的容器类, 这些类可用于存储指定类型的数据项&#xff0c;Qt中这些容器类的设计比STL容器更轻&#xff0c;更安全且更易于使用。容器类也都是隐式共的&#xff0c;它们是可重入的&#xff0c;并且已针对速度/低内存消耗和最小的内联代码扩展进行了优化&a…

RabbitMQ基础笔记

视频链接&#xff1a;【黑马程序员RabbitMQ入门到实战教程】 文章目录 1.初识MQ1.1.同步调用1.2.异步调用1.3.技术选型 2.RabbitMQ2.1.安装2.1.1 Docker2.1.1 Linux2.1.1 Windows 2.2.收发消息2.2.1.交换机2.2.2.队列2.2.3.绑定关系2.2.4.发送消息 2.3.数据隔离2.3.1.用户管理2…

Elasticsearch:语义搜索即服务处于卓越搜索的中心

作者&#xff1a;来自 Elastic Sherry Ger, Stephen Brown 对于许多企业来说&#xff0c;搜索卓越中心&#xff08;center of excellence - COE&#xff09;向其用户提供搜索服务&#xff0c;从不同的数据源中整理知识&#xff0c;并将搜索功能集成到其内部和外部应用程序中。…

神策数据参与制定首份 SDK 网络安全国家标准

国家市场监督管理总局、国家标准化管理委员会发布中华人民共和国国家标准公告&#xff08;2023 年第 13 号&#xff09;&#xff0c;全国信息安全标准化技术委员会归口的 3 项国家标准正式发布。其中&#xff0c;首份 SDK 国家标准《信息安全技术 移动互联网应用程序&#xff0…

如何配置本地ssh连接远程Linux服务器

1.条件 本地操作系统Ubuntu远程服务器&#xff08;Linux都可以&#xff09; 本地如果是Window,其实也一样&#xff0c;但是需要先下载ssh和putty工具&#xff0c;然后操作步骤是一样的 2.生成ssh公私钥对 # 在本地重新生成SSH公私钥对非常简单&#xff0c;在你的命令行终端&a…

词令关键词口令直达工具:打开「词令」输入关键词直达口令怎么使用?

词令是一款关键词口令直达工具&#xff1b;使用词令关键词口令直达工具&#xff0c;输入指定的词令关键词直达口令&#xff0c;搜索直达该词令关联的网站、页面、程序、应用、服务或功能等等&#xff0c;实现一键直达目标&#xff0c;避免繁琐的查找点击行为&#xff0c;提高用…

报错 /core/library/think/cache/driver/File.php 第 126 行左右(已解决)

报错 /core/library/think/cache/driver/File.php 第 126 行左右 解决方法&#xff1a; 网站后台版本低于v1.5.2出现的缓存问题&#xff0c;如果无法登录后台了&#xff0c;就通过FTP&#xff0c;把 /data/runtime 里的都删掉&#xff0c;然后进后台升级到最新版 一、进入宝…

初步了解JavaSE

目录 前言&#xff1a; 一、Java SE主要包含模块&#xff1a; 二、JavaSE的环境搭建 三、JavaSE简单入门 1&#xff09;文件名称不对&#xff0c;如果有一个叫 helloworld.java&#xff0c;但是class命名为HelloWord. 2&#xff09;如果希望我们文件名称和类名不一致&…

光耦合器电路基本概述

在当今快速发展的技术环境中&#xff0c;光耦合器电路在确保电信号跨隔离电路的无缝传输方面发挥着关键作用。这些半导体器件通常被称为光电隔离器&#xff0c;具有许多优点&#xff0c;包括电路隔离、信号传输和精确的电路控制。然而&#xff0c;如果不全面了解市场上各种光耦…

【漏洞复现】通天星CMSV6 admin 弱口令漏洞(CVE-2024-29666)

0x01 产品简介 CMSV6平台是基于车辆位置信息服务和实时视频传输服务的创新技术和开放运营理念。为GPS运营商车辆硬件设备制造商、车队管理企业等车辆运营相关企业提供核心基础数据服务。 0x02 漏洞概述 CMSV6 7.31.0.2、7.32.0.3版本中存在弱密码漏洞&#xff0c;未授权的攻…

俄罗斯深陷芯片自主困境,良率仅5成 |百能云芯

俄罗斯的芯片产业一直以来都面临着诸多挑战&#xff0c;尤其是在当前的国际形势下&#xff0c;这些挑战更加凸显。随着俄乌冲突的爆发&#xff0c;西方国家对俄罗斯实施了一系列经济制裁&#xff0c;导致俄罗斯科技产业受到了严重影响。据了解&#xff0c;俄国最大的本土芯片厂…

GooglePlay无法下载应用问题

问题如下 解决方法 1、实际上是因为google尚未添加apk downloader扩展程序 2、添加该扩展程序后&#xff0c;在应用中搜索应用名即可 欧克&#xff01;下载完成

KSD测试系统使用方法和注意事项

①下载链接在最顶部&#xff1b; ②安装方法&#xff1a;应该先将测试设备绑定在假人身上&#xff0c;测试设备不能过度往下拉&#xff0c;传感器绑在脖子上&#xff0c;切记最后才开传感器开关&#xff01;&#xff01;&#xff01;开传感器后3秒内不要碰测试设备衣服&#x…

2024年电商圈大地震!腾讯带着视频号小店,杀进电商市场了!

大家好&#xff0c;我是电商糖果 今年的电商圈真的是热闹非凡&#xff0c;各个平台之间硝烟四起。 当几大平台打的火热的时候&#xff0c;腾讯却偷偷的推出了视频号小店&#xff0c;想要加入混战&#xff0c;吃到电商这盘大蛋糕。 可能大部分人都不知道什么是视频号小店&…