Docker 哲学 - docker swarm

Docker Swarm 模式下的集群管理和服务恢复机制

Docker Swarm 是 Docker 的集群管理和编排功能。在 Swarm 模式下,你可以将多个 Docker 主机组合成一个虚拟主机,称为 Swarm 集群。Swarm 集群由一个或多个管理节点(manager nodes)和工作节点(worker nodes)组成。

管理节点负责集群的管理任务,包括维护集群的状态,调度服务,处理加入或离开集群的节点等。管理节点中有一个节点充当领导者(leader),负责协调集群的所有管理任务。

在这段话中,描述的是 Swarm 集群的服务恢复机制。当你在 Swarm 集群中创建一个服务,并设置该服务运行 10 个副本(replicas)时,Swarm 会在集群的工作节点上启动 10 个容器。如果某个工作节点崩溃,导致运行在该节点上的两个副本停止运行,Swarm 的管理节点会检测到这个状态变化,并采取行动恢复服务的状态。

具体来说,管理节点会创建两个新的副本,以替换崩溃的副本。然后,管理节点会将新的副本分配给运行正常的工作节点。这样,即使有工作节点崩溃,你的服务仍然可以保持在 10 个副本的运行状态,这就是 Swarm 的服务恢复机制。

docker service create --name=nginx --replicas=3 -p 80:80 nginx mannger是 drain模式 。还有两个 worker 节点,也就意味着一个 node会运行两个容器,swarm是怎么样控制 端口冲突的情况

为什么 swarm 模式下 容器端口展示 和 直接 run 不一致

swarm 下的 nginx 服务

由于在 docker swarm 模式下 ,只有在创建一个服务 时候指定 节点的端口,网络情况由 swarm 管理,基于 routing mesh 。在节点 通过 docker ps 看不到主机暴露端口,这时只能通过 docker service inspect serviceID 查看主机暴露端口

关于这个服务 我只起了 一个副本

运行在 node gyk-133

我的 cluster 配置

此时只有 gyk-133 节点有 88端口的 服务,但是得益于 docker swarm 的 routing mesh 管理

在该 cluster的所有节点 的 88 端口,都可以访问到 这个服务,

swarm 核心

这时 如果在 25 跑一个容器 mapping到 88端口 会显示被占用

service => task =>container

相关推荐
xfan_me6 分钟前
维修保养记录精准版 API 对接实战指南
java·大数据·python
Keven-zhou8 分钟前
不用先学前端框架,Java后端也能独立交付项目?飞算JavaAI实测
java
海上小飞龙10 分钟前
改一个数,右边全得重算,这题怎么扛住两万次查询
java·c++·python
Leo.yuan10 分钟前
从“看全局“到“评成效“:央国企穿透式监管六步链路,哪些厂商能真正闭环
java·大数据·人工智能
小马哥程序开发28 分钟前
[点赞收藏免费领取 · 项目源码]57105基于Spring Boot的充电桩管理系统的设计与实现
java·spring boot·源码·课程设计·毕设·大作业·课设
九皇叔叔1 小时前
【09】SpringBoot4 MyBatisPlus 增删改查(CRUD)
java·mybatis·mybatisplus
白杨尚青1 小时前
C++入门篇(十):string(上)——认识string:构造与三大遍历(一条龙讲透operator[]、迭代器、auto、范围for)
java·开发语言·c++·笔记·stl
anew___2 小时前
《从零手写操作系统 (11):文件系统初探——initrd与VFS抽象层》
java·javascript·算法
天天向上2912 小时前
Spring AI 实战:14 个踩坑记录,其中一个让我的测试全绿但产品是坏的
java·开源
正在走向自律2 小时前
从只写接口到独立交付前后端,飞算JavaAI能给Java后端工程师多少溢价?
java·springboot·ai编程·全栈开发·java求职·飞算javaai·金九银十