首页 > 其他分享 >Docker之Swarm集群管理

Docker之Swarm集群管理

时间:2024-12-30 16:51:41浏览次数:1  
标签:节点 Swarm manager 集群 Docker docker

Swarm简介

1、Swarm是一个集群化任务编排工具,使用声明式的配置,配置文件接近docker-compose
2、Swarm是Docker引擎内置(原生)的集群管理和编排工具,Docker Swarm是Docker官方三剑客项目之一(但现在用的不是特别多了)

Docker swarm的特点:
1、集群化任务编排工具
2、声明式配置方式
3、支持扩缩容
4、支持故障自愈
Docker swarm的概念图:

·task:最小部署单元(一个task代表一个实例)
·services:一个运行中的服务可以有多个task(副本)
·stack:Services服务的集合

Swarm运行机制

Swarm集群需要至少一个manager节点,manager将任务分配个woker节点,manager节点本身也可以处理任务

Swarm节点类型:
manager节点:管理集群
worker节点:运行容器任务
Swarm运行原理:
·manager节点收到任务会将任务调度到work节点
·work节点收到命令后启动任务
·如果任务数量少于期望值,会自动重建任务

Swarm应用部署模式:

Swarm有两种应用部署模式,副本应用和全局副本应用,下图显示三个副本服务(黄色)和全局服务(灰色)

副本服务:任何节点都可以部署满足期望值即可
全局副本:不需要指定期望值每一个节点自动会启用全局副本

Swarm集群搭建

准备环境
服务器准备
我的三台测试机

IP地址 角色 主机名
IP1 manager node1
IP2 worker node2
IP3 worker node3

1、服务器端口开放:
在创建集群前,如果开启了防火墙,需要确认三台主机的防火墙能让swarm需求的端口开放,需要打开主机之间的端口,以下端口必须可用。在某些系统上,这些端口默认为打开。

2377:TCP端口2377用于集群管理通信
7946:TCP和UDP端口7946用于节点之间的通信
4789:TCP和UDP端口4789用于覆盖网络流量

2、测试环境直接禁用防火墙

systemctl stop firewalld(立即生效)
systemctl disable firewalld(重启生效)

3、初始化Swarm集群

#初始化Swarm集群
docker swarm init --advertise-addr 【本机IP地址】
#查看swarm节点
docker node ls
因为hostName不好区分,修改hostName
#修改主机名
hostnamectl set-hostname master
# 查看主机名
hostnamectl status

4、将其他节点加入master节点

docker swarm join --token SWMTKN-1-53p5t2rt9ud5j0owkl14boj2z8im6r60ddlzotgc4a8y93u1c2-8f6crxgyc9umayhxva1jv9t1w 【master节点IP】:2377

5、查看Swarm节点

docker node ls
AVAILABILITY状态说明
Active 意味着调度程序可以将任务分配给节点。
Pause 意味着调度程序不会将新任务分配给节点,但现有任务仍在运行。
Drain 意味着调度程序不会向节点分配新任务,调度程序关闭所有现有任务并在可用节点上调度它们。

MANAGER STATUS状态说明
显示节点是属于manager或者worker
没有值 :表示不参与群管理的工作节点。
Leader :意味着该节点是使得群的所有群管理和编排决策的主要管理器节点。
Reachable: 意味着节点是管理者节点正在参与Raft共识,如果领导节点不可用,则该节点有资格被选为新领导者。
Unavailable :意味着节点是不能与其他管理器通信的管理器,如果管理器节点不可用,您应该将新的管理器节点加入群集,或者将工作器节点升级为管理器。

5、添加节点标签
因为用到了节点约束,所以在启动服务之前需要添加节点标签
使用节点约束的意义:
比如某个节点下部署了mysql,当这个mysql容器异常时,Swarm会自动启动一个新的但是如果节点的位置从node1到了node2会造成数据丢失这种问题
所以需要添加节点约束,确保重新启动的节点只在有指点标签的节点上部署。这样mysql就跟节点进行了绑定确保不会出现异常问题

#添加标签
docker node update --label-add role=data node1
#查看节点标签信息
docker node inspect node1|grep role

Swarm部署服务

标签:节点,Swarm,manager,集群,Docker,docker
From: https://www.cnblogs.com/Eduhg/p/18641180

相关文章

  • docker自学入门教程
    目录1docker的安装1.1卸载旧版本docker1.2下载相关依赖1.3配置docker的安装源地址1.4安装docker1.5设置开机启动1.6简单命令检验是否安装成功1.7配置镜像加速器(官网属于国外网站,下载镜像会比较慢,推荐阿里云)1.8docker官网的镜像仓库地址2docker基......
  • Docker与K8S的区别
    目录 1定义角度2虚拟化角度虚拟化技术的发展过程VirtualMachinesVS.Docker3部署角度4其他角度4.1系统角度4.2功能角度4.3各自优势X参考文献回到顶部(BacktoTop)1定义角度Docker是一种开放源码的应用容器引擎,允许开发人员将其应用和依赖......
  • 纯配时效服务-双Redis集群设计
    作者:京东物流王运成一、概述纯配时效服务作为物流下单环节中计算时效的重要组成部分,直接决定了下单的成功与否。其性能与稳定性至关重要,因为它们直接影响整个物流下单系统的运行效率及客户满意度。一个高效且稳定的纯配时效服务能够确保预计送达时间准确无误地展示给用户,从而提......
  • Docker镜像优化 (转)
    Docker镜像优化 1、概述Docker作为一款广受欢迎的容器化技术,为开发者提供了极大的便利。它能够将应用程序以及其全部的依赖项整合并打包,形成一个标准化的独立单元——镜像。对Docker镜像进行优化意义非凡,一方面可以显著降低镜像的存储空间占用,进而大幅提升其......
  • Docker compose安装
    1.通过以下命令自动下载并安装适应系统版本的Compose:到:https://github.com/docker/compose/releases/查找最新版release,替换路径的1.10.0curl-L"https://github.com/docker/compose/releases/download/1.10.0/docker-compose-$(uname-s)-$(uname-m)"-o/usr/local/bin/......
  • docker镜像篇
    Dokcer镜像Docker镜像概念镜像:是一种轻量级、可执行的独立软件包,它包含运行在某个软件所需的所有内容,我们把应用程序和配置以来打包好形成一个可交付的运行环境(包括代码、运行时需要的库、环境变量和配置文件等),这个打包好的运行环境就是image镜像文件。只有通过这个镜像文件......
  • Docker(4.36)学习笔记
    1.什么是DockerDocker是基于Go语言实现的开源容器引擎,诞生于2013年年初,用于将应用程序及其依赖项打包为容器,以便在云或本地环境中自动部署和运行。Docker通过操作系统层面的虚拟化技术,将软件与其依赖项隔离,确保应用程序能够在不同的环境中一致地运行。Docker的特点容器化:D......
  • 记录:wsl2 安装 CentOS8-stream 安装docker 安装redis-cluster集群 一些步骤及问题
     一。解压  下载的CentOS8-stream.zip压缩包,双击安装   (下载地址记录:wsl2安装centOS7一些问题解决并使用shell工具连接)  二。修改root密码 (安装后直接进入root 不知道密码所以修改)  直接passwd即可修改   三。yumli......
  • redis-2(集群模式)
    主从模式(master-slave)实战规划图实际配置1,克隆主机,以redis1为基础,克隆出redis2和32,配置IP和主机名称,重启,使用xshell链接vi/etc/sysconfig/network-scripts/ifcfg-ens33:1521->22vi/etc/hostname:1redis2reboot重启使用xshell或者finalShell链接......
  • Cloudera集群运维手册-开启Kerberos认证篇(Active Directory)
    [前]关于本文大数据安全模块主要包含认证,授权,审计,加密四大子模块,其中认证是所有模块的基础。没有认证作为前提,其他三大模块都毫无意义。本文详细介绍了为Cloudera集群开启Kerberos认证的整个过程。[〇]Kerberos协议入门1-关于Kerberos定义:Kerberos是一种网络认证协议,用于通......