Docker 哲学 - docker swarm

2024-04-05 07:12
文章标签 docker swarm 哲学

本文主要是介绍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

这篇关于Docker 哲学 - docker swarm的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/877947

相关文章

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

禅道Docker安装包发布

禅道Docker安装包发布 大家好, 禅道Docker安装包发布。 一、下载地址 禅道开源版:   /dl/zentao/docker/docker_zentao.zip  备用下载地址:https://download.csdn.net/download/u013490585/16271485 数据库用户名: root,默认密码: 123456。运行时,可以设置 MYSQL_ROOT_P

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群 华为云最近正在举办828 B2B企业节,Flexus X实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求,一定不要错过这个机会。赶紧去看看吧! 什么是华为云Flexus X实例 华为云Flexus X实例云服务是新一代开箱即用、体

docker-compose安装和简单使用

本文介绍docker-compose的安装和使用 新版docker已经默认安装了docker-compose 可以使用docker-compose -v 查看docker-compose版本 如果没有的话可以使用以下命令直接安装 sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-c

01 Docker概念和部署

目录 1.1 Docker 概述 1.1.1 Docker 的优势 1.1.2 镜像 1.1.3 容器 1.1.4 仓库 1.2 安装 Docker 1.2.1 配置和安装依赖环境 1.3镜像操作 1.3.1 搜索镜像 1.3.2 获取镜像 1.3.3 查看镜像 1.3.4 给镜像重命名 1.3.5 存储,载入镜像和删除镜像 1.4 Doecker容器操作 1.4

Windows与linux中docker的安装与使用

windos中安装使用docker 下载Docker_Desktop 安装包进入docker官网下载Docker_Desktop: https://www.docker.com/ 启用wsl 我们搜索“启用或关闭Windows功能”,打开后勾选适用于Linux的Windows 子系统 Docker_Desktop设置 出现Docker Engine stopped的解决

docker学习系列(四)制作基础的base项目镜像--jdk+tomcat

前面已经完成了docker的安装以及使用,现在我们要将自己的javaweb项目与docker结合 1.1准备jdk+tomcat软件 ​​我下载了apache-tomcat-7.0.68.tar.gz和jdk-7u79-linux-x64.tar.gz,存储于Linux机器的本地目录/usr/ect/wt/下(利用xshell上传)。利用linux命令 tar -zxvf apache-tom

docker学习系列(三)docker使用

紧接着之前的博客,这一篇主要写如何使用docker 系列1:docker简介:http://blog.csdn.net/u013469562/article/details/72864323 系列2: docker安装:http://blog.csdn.net/u013469562/article/details/72865167 一、docker镜像的获取 1.1搜索可用镜像

docker学习系列(二)docker安装

接着之前的博客http://blog.csdn.net/u013469562/article/details/72864323,今天写一下docker的安装和使用 1.1docker的安装前置需求 首先docker目前的版本已经到了v17.03 本文采用centos6.6版本安装docker,其他操作系统可以参考其他博客,首先docker对于centos的需求如下 C

docker学习系列(一)初识docker

在第一版本上线之后公司,我们决定将之前使用的开源api文档项目转移到本公司的服务器之上,之前用的是showdoc,showdoc利用的是php技术,作为java程序员表示需要快速部署php环境以及apach容器都需要时间,所以采用第二种方法,即利用docker进行快速部署(虽然学习成本也不比php少)。 一、docker简介 docker的官网是https://www.docker.com,