docker swarm集群

news2024/9/25 21:21:45

集群构建

不包含在任何 Swarm 中的 Docker 节点,称为运行于单引擎(Single-Engine)模式。一旦被加入 Swarm 集群,则切换为 Swarm 模式。第一步我们要做的就是初始化 Swarm。

初始化swarm集群

将本机作为manager节点

docker swarm init --advertise-addr 192.168.xxx.xxx

docker warm init会通知 Docker 来初始化一个新的 Swarm,并将自身设置为第一个管理节点,同时也会使该节点开Swarm 模式。

--advertise-addr 参数配置当前管理节点的发布地址,其他节点必须能连接这个地址。在机器只有一个ip的情况下可以省略,如果由多个ip则必须手动指定。

可以通过以下命令查看集群和节点的状态

docker info

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

节点加入集群

其它节点可以以工作节点管理节点的方式加入集群,执行的命令,可以在管理节点运行以下命令查看:

docker swarm join-token worker # 查看工作节点加入集群的指令和令牌
docker swarm join-token manager # 查看管理节点加入集群的指令和令牌

swarm集群管理基本命令

docker swarm

在这里插入图片描述

  • docker swarm init
    初始化集群
  • docker swarm join-token worker|manager
    管理令牌,可查看刷新令牌,只能在管理节点执行
  • docker swarm join HOST:PORT
    将一个节点机器人加入集群
  • docker swarm update
    更新集群状态,只能在管理节点执行
    • -autolock:修改管理节点的自动锁定功能配置,可用值有: true、false
    • -cert-expiry:验证节点之间的通讯令牌的间隔,默认时2160小时,可用单位: ns|us|ms|s|m|h
    • -dispatcher-heartbeat:心跳包间隔时长,默认5秒,可用单位:ns|us|ms|s|m|h
    • -task-history-limit:任务历史记录保留限制
  • docker swarm leave
    脱离集群,docker swarm leave -f 强制离开
  • docker swarm unlock-key
    管理解锁码,可查看,刷新解锁码
    • -q:只输出解锁码
    • -rotate:刷新解锁码
  • docker swarm unlock
    解锁一个管理节点

docker node

docker node常用命令如下
在这里插入图片描述

  • docker node ls
    列出集群中的节点,只能在管理节点操作
  • docker node inspect <节点名>
    查看节点的详细信息,只能在管理节点操作
  • docker node demote 节点名
    对节点进行降级
  • docker node promote 节点名
    对节点进行升级
  • docker node ps [OPTIONS] [NODE…]
    查看节点上正在执行的任务,可以通过节点名称查看某一节点的任务,默认是当前节点,只能在管理节点操作
  • docker node rm [OPTIONS] NODE [NODE…]
    通过节点名称移除节点,只能在管理节点操作,可以一次移除多个节点,一个节点使用docker swarm leave命令脱离集群之后还可以用docker node ls命令看到,使用docker node rm移除的节点将彻底不再集群中

部署服务

基本部署操作

docker swarm 搭建好集群,我们目的在集群中部署应用。swarm集群部署应用最基本的命令是docker service,它的使用方式类似 docker container,也适用于部署单个应用,都不能进行编排(后续引入docker stack类似集群下的docker compose),只不过一个用于单机,一个用于集群

下面以在swarm集群中部署nginx为例:

默认的情况下,管理节点也是一个工作节点,服务也会部署在了管理节点上,如果我们不希望服务部署在管理节点上的话,可以将管理节点设置为darin状态。
在这里插入图片描述
执行以下命令将管理节点设置威darin

docker node update --availability drain server

我这里因为只有一台机子,因此我就不设置为drain了
之后执行以下命令部署nginx应用:

docker service create --name nginx-test --replicas 2  -p 8080:80 nginx:1.21.6

在这里插入图片描述
swarm集群中进行应用部署使用docker swarm create命令,该命令与熟悉的 docker container run 命令的许多参数是相同的,上面的命令中声明基于nginx镜像部署应用,服务名称为nginx-test,将容器内部的80端口映射到集群网络的8080端口,–replicas 2在集群节点之中保持2个服务副本(即两个容器)。

运行以下命令查看服务以及查看服务详情

docker service ls
docker service ps nginx-test

在这里插入图片描述
我们创建的所有服务都会被 Swarm 持续监控,Swarm 会在后台进行轮训检查(Reconciliation Loop),来持续比较服务的实际状态和期望状态是否一致。如果一致,则无须任何额外操作;如果不一致,Swarm 会使其一致。换句话说,Swarm 会一直确保实际状态能够满足期望状态的要求。

例如这里的两个nginx的容器其中一个宕机了,swarm会重新启动一个副本,让正常运行的nginx容器始终保持在两个,这使得服务在面对节点宕机等问题时具有自愈能力。
在这里插入图片描述
这里如果有多台机器加入了集群,每个机器的ip:8080都能访问到nginx服务
因为默认情况下swarm集群采用ingress模式发布端口,通过路由网格模式让我们发布的端口在集群每一个节点上口都可以访问,再通过内部的负载均衡自动转发到实际的运行的容器之中。具体可参考这篇文章

我们的应用在实际的应用中可能会根据访问量进行扩容、缩容,即根据实际情况调整容器启动的数量,通过docker service scale命令可以很方便得进行操作。例如下面将nginx容器扩展到4个

docker service scale nginx-test=4

在这里插入图片描述
有些时候我们会对服务的配置进行修改,例如增加一个映射端口:

docker service update --publish-add 8081:80 nginx-test

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

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

相关文章

小谈设计模式(4)—单一职责原则

小谈设计模式&#xff08;4&#xff09;—单一职责原则 专栏介绍专栏地址专栏介绍 单一职责原则核心思想职责的划分单一变化原则高内聚性低耦合性核心总结 举例图书类&#xff08;Book&#xff09;用户类&#xff08;User&#xff09;图书管理类&#xff08;Library&#xff09…

强信创,高实用:SuperMap开发者线上训练营9月25日起航

当前&#xff0c;信创工作全面开展&#xff0c;从细分领域延展至所有领域&#xff0c;自主GIS技术也迈入新的发展阶段。2023年9月25日至9月27日&#xff0c;北京超图软件股份有限公司、917书院GIS学堂将主办以“强信创、高实用”为主题的SuperMap开发者训练营&#xff08;以下简…

路由器ip地址设置

当你使用路由器时&#xff0c;你可以按照以下步骤设置路由器的IP地址。这样可以确保你的网络连接正常并允许其他设备连接到你的路由器。 **步骤一&#xff1a;登录路由器管理界面** 首先&#xff0c;你需要登录到路由器的管理界面。打开你的浏览器&#xff0c;并输入路由器的…

【校招VIP】java语言考点之switch和default

考点介绍&#xff1a; switch、default是 校招Java岗位面试时常考的关键字组合之一。 java语言考点之switch和default-相关题目及解析内容可点击文章末尾链接查看&#xff01; 一、考点试题 1、switch语句能否作用在byte上&#xff0c;能否作用在long上&#xff0c;能否作用…

ubuntu 22.04通过apt-get安装的apache2将http改造为https的方法

目录 一、安装apache2 二、启动apache2服务 三、访问http网页 四、改造https &#xff08;一&#xff09;查看apache2是否安装了ssl模块 &#xff08;二&#xff09;安装apache2-dev &#xff08;三&#xff09;配置SSL访问 1. 生成私有证书 2. 新增ssl配置文件 3. 重…

ubunutu20/18/22 编译android 5相关的问题汇总-千里马framework开源代码平板编译过程

hi&#xff0c;粉丝朋友们&#xff1a; 闲鱼50块钱淘到了一个开源平板&#xff0c;注意这个平板是有源码的&#xff0c;可以进行相关的编译修改。哈哈哈&#xff0c;马哥这边就体验了一下50块钱平板是否可以拿来做framework呢&#xff1f; 哈哈&#xff0c;说好就开干了&#x…

Android13 通知栏和设置显示中添加副屏亮度条,调节副屏亮度

由于台式的Android设备&#xff0c;存在着两个屏幕显示的情况&#xff0c;故需要对Android系统开发一个可以调节副屏亮度的功能。 提交副屏亮度调节的效果如下&#xff1a; 涉及修改的文件如下&#xff1a; frameworks/base/services/core/java/com/android/server/am/Acti…

扔掉你的开发板,跟我玩Mcore-全志h616

本文转载自WhyCan Forum(哇酷开发者社区)&#xff1a; https://whycan.com/t_10024.html 作者leefei 这是一个1.69寸触摸小电视。使用全志H616芯片&#xff0c;板上硬件有mpu6050陀螺仪&#xff0c;USB转ttl调试串口&#xff0c;一个USB接口&#xff0c;WIFI&蓝牙&#x…

Promethus(普罗米修斯)安装与配置(亲测可用)

1. 普罗米修斯概述 Prometheus(是由go语言(golang)开发)是一套开源的监控&报警&时间序列数 据库的组合。适合监控docker容器。 Prometheus是最初在SoundCloud上构建的开源系统监视和警报工具包 。自2012年成立以来&#xff0c;许多公司和组织都采用了Prometheus&#…

Matlab图像处理-Lab模型

Lab模型 Lab模型是由CIE&#xff08;国际照明委员会&#xff09;制定的一种彩色模型。该模型与设备无关&#xff0c;弥补了RGB模型和CMYK模型必须依赖于设备颜色特性的不足&#xff1b; 另外&#xff0c;自然界中的任何颜色都可以在Lab空间中表现出来&#xff0c;也就是说RGB和…

http-server的安装、前端使用http-server启本地服务

http-server 简介 http-server 是一个简单的零配置的命令行http服务器&#xff0c;它足够强大便于生产和使用&#xff0c;用于本地测试和开发。 有时候我们打开一个文档使用file协议打开的时候&#xff0c;不能发送ajax请求&#xff0c;只能使用http协议才能请求资源&#xff…

河道水位监测,助力守护河流生态可持续发展

河流是地球生命的源泉&#xff0c;它们滋养着万物&#xff0c;为生态系统提供源源不断的能量。然而&#xff0c;随着全球气候变化和人类活动的加剧&#xff0c;河流面临的问题也日益严重&#xff0c;如水位剧烈波动、水质恶化等。河道水位监测对于保护河流生态环境&#xff0c;…

jsp tag文件使用入门

Tag文件是拓展名为.tag的文件&#xff0c;其内容中可以有普通的HTML标记符、某些特殊的指令标记、成员变量声明和方法的定义、java程序片和java表达示。 Tag文件可以实现代码的复用&#xff0c;即一个Tag文件可以被多个jsp页面使用。 在WEB服务目录下创建如下目录&#xff0c; …

Docker 容器设置为自动重启

Docker自动重启原因 Docker自动重启通常是由以下几个原因导致的&#xff1a; 程序崩溃系统内存不足系统进程使用过多CPU和RAM导致的阻塞docker容器被杀死或重新启动&#xff0c;导致应用程序中断网络中断 当这些问题出现时&#xff0c;Docker会自动重启运行中的服务来尝试解…

图解 LeetCode 算法汇总——双指针

双指针算法是一种比较常用于搜索链表或数组相关的问题&#xff0c;很多算法的基本的解题思路就是使用暴力搜索法。而双指针是对暴力搜索的一种优化&#xff0c;通过双指针可以减少数据的遍历次数。通常双指针是有两个指针&#xff0c;叫做 light 左指针和 right 右指针&#xf…

redis 核心数据结构

一、简述 redis是一个开源的使用C语言编写的一个kv存储系统&#xff0c;是一个速度非常快的非关系远程内存数据库。它支持包括String、List、Set、Zset、hash五种数据结构。 除此之外&#xff0c;通过复制、持久化和客户端分片等特性&#xff0c;用户可以很方便地将redis扩展…

Ansys Zemax | 如何建立二向分色分光镜

分光镜(Beam splitter)可被运用在许多不同的场合。一般而言&#xff0c;入射光抵达二向分色分光镜(dichroic beam splitter)时&#xff0c;会根据波长的差异产生穿透或反射的现象。这篇文章将说明如何在OpticStudio的非序列模式(non-sequential mode)中建立二向分色分光镜&…

IT技术总监的成长之路

目录 1.CIO之说 2.新职业机会的出现 3.IT主管的两个发展机会 4.七分管理三分技术的CIO 5.七分技术三分管理的CTO 6.CIO的职业规划要求 6.1. 企业战略管理 6.2.信息资源规划 6.3.生产过程管理 6.4. 项目管理 6.5.物流管理 6.6.网络规划与建设 6.7.信息安全技术 6.…

zabbix网络管理安装教程

安装&#xff1a; apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent 参考资源&#xff1a; 官网&#xff1a; 下载&#xff1a; 其它&#xff1a; 常用指令&#xff1a; 目标与应用价值&#xff1a; 部署难点&#…

友思特新闻|友思特与IDS深化战略合作伙伴关系

尊敬的客户和合作伙伴&#xff0c; 我们非常高兴地宣布&#xff0c;友思特已经与国际领先的机器视觉解决方案提供商 IDS 深化了我们的合作关系。 作为 IDS 的长期合作伙伴&#xff0c;友思特一直致力于为国内客户提供最先进的机器视觉技术和解决方案。 自从友思特与 IDS 合作…