【应用】Docker Swarm

news2024/9/20 1:22:01

Docker Swarm

  • Docker Swarm 集群配置
    • 配置前准备
    • 初始化 Swarm
    • Swarm 常用命令
    • Portainer 集群管理

Docker Swarm 集群配置

masternode1node2
192.168.86.133192.168.86.131192.168.86.139

配置前准备

关闭各个节点服务器的防火墙

systemctl stop firewalld
systemctl disable firewalld

关闭各个服务器节点的 selinux,修改配置文件/etc/selinux/config,关注SELINUX属性

SELINUX=disabled

配置三台机器 host 文件相互解析

master执行:hostnamectl set-hostname master
node01执行:hostnamectl set-hostname node01
node02执行:hostnamectl set-hostname node02

在每台服务器的 host 配置文件(/etc/hosts)中添加

192.168.86.133 master
192.168.86.131 node01
192.168.86.139 node02

初始化 Swarm

将 master 节点作为管理节点,在该节点执行初始化命令

docker swarm init --advertise-addr 192.168.86.133

输出的结果即为其他工作节点加入集群的命令

Swarm initialized: current node (get5cq8zb3hrelstzf72awfie) is now a manager.

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

    docker swarm join --token SWMTKN-1-34eiblqi14x64pjnmno9ayppnfrmkxtkn12fptq5mcjfj0tpwu-4m4ef5oedq5wnasybbx03h5fy 192.168.86.133:2377

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

将两个工作节点 node1 和 node2 分别加入集群

docker swarm join --token SWMTKN-1-34eiblqi14x64pjnmno9ayppnfrmkxtkn12fptq5mcjfj0tpwu-4m4ef5oedq5wnasybbx03h5fy 192.168.86.133:2377

在管理节点查看集群节点信息

docker node ls

查询结果如下,配置成功

ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
get5cq8zb3hrelstzf72awfie *   master              Ready               Active              Leader              18.03.1-ce
ztlexjj1iu1v8y6960f9shz9z     node01              Ready               Active                                  18.03.1-ce
e4acehmt657d9mo5xd8nbrxm7     node02              Ready               Active                                  18.03.1-ce

为实现集群的高可用,将两个工作节点升级为管理节点,在管理节点执行下列两条命令

docker node promote node01
docker node promote node02

重新查询集群节点信息,结果如下,工作节点状态变为 Reachable,即候选者

ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
get5cq8zb3hrelstzf72awfie *   master              Ready               Active              Leader              18.03.1-ce
ztlexjj1iu1v8y6960f9shz9z     node01              Ready               Active              Reachable           18.03.1-ce
e4acehmt657d9mo5xd8nbrxm7     node02              Ready               Active              Reachable           18.03.1-ce

在集群管理节点manage1上,创建以overlay为驱动的自定义网络

docker network create --driver overlay my-multi-host-network

测试在集群中部署服务

docker service create --replicas 1 --name 别名 镜像ID

# replicas:指定运行服务的数量
# 例如 以下命令将nginx容器中的端口80发布到群集中任何节点的端口8080
docker service create \
  --network my-multi-host-network \
  --name nginx \
  --publish published=8080,target=80 \
  --replicas 3 \
  nginx

查看集群服务

docker service ls

Swarm 常用命令

集群节点相关

Manage Swarm nodes

Options:


Commands:
  demote      Demote one or more nodes from manager in the swarm
  inspect     Display detailed information on one or more nodes
  ls          List nodes in the swarm
  promote     Promote one or more nodes to manager in the swarm
  ps          List tasks running on one or more nodes, defaults to current node
  rm          Remove one or more nodes from the swarm
  update      Update a node

集群网络相关

Usage:  docker network COMMAND

Manage networks

Options:


Commands:
  connect     Connect a container to a network
  create      Create a network
  disconnect  Disconnect a container from a network
  inspect     Display detailed information on one or more networks
  ls          List networks
  prune       Remove all unused networks
  rm          Remove one or more networks

集群 stack 相关

Usage:  docker stack COMMAND

Manage Docker stacks

Options:


Commands:
  deploy      Deploy a new stack or update an existing stack
  ls          List stacks
  ps          List the tasks in the stack
  rm          Remove one or more stacks
  services    List the services in the stack

集群服务相关

Usage:  docker service COMMAND

Manage services

Options:


Commands:
  create      Create a new service
  inspect     Display detailed information on one or more services
  logs        Fetch the logs of a service or task
  ls          List services
  ps          List the tasks of one or more services
  rm          Remove one or more services
  rollback    Revert changes to a service's configuration
  scale       Scale one or multiple replicated services
  update      Update a service

Portainer 集群管理

在小规模的 Docker Swarm 节点上,可以使用 Portainer 的 Agent 模式对集群进行管理。Portainer 是一个 Docker 集群管理 UI 工具,有 CE 版和商业版。其中 CE 版本已经足够使用,此处使用的是 CE 版。

本示例中在本地的虚拟机进行配置,各节点防火墙关闭,在生产环境中需要注意开放对应端口。

在配置好的 swarm 集群的 master 节点编写 compose 文件,对服务进行定义

version: '3'
services:
  portainer:
    image: portainer/portainer
    command: -H tcp://tasks.portainer_agent:9001 --tlsskipverify
    ports:
      - 9000:9000
    networks:
      - my-multi-host-network
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    deploy:
      placement:
        constraints:
          - node.hostname == master

  agent:
    image: portainer/agent
    environment:
       AGENT_CLUSTER_ADDR: tasks.portainer_agent
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /var/lib/docker/volumes:/var/lib/docker/volumes
    networks:
      - my-multi-host-network
    deploy:
      mode: global

networks:
  my-multi-host-network:
    driver: overlay

使用docker stack命令启动服务

docker stack deploy -c docker_portainer.yml portainer
Creating network portainer_my-multi-host-network
Creating service portainer_portainer
Creating service portainer_agent

查看服务是否启动成功

docker service ls
ID                  NAME                  MODE                REPLICAS            IMAGE                        PORTS
z6zs9nei55f8        portainer_agent       global              3/3                 portainer/agent:latest
69nrafn0w3ec        portainer_portainer   replicated          1/1                 portainer/portainer:latest   *:9000->9000/tcp

浏览器登录<master_ip>:9000,注册管理员账号即可登录使用,Portainer 可以直接查看并管理Stack\Service\Containers\Inages\Networks\Volumes

在这里插入图片描述
下面将配置的私有仓库注册进来,就可以通过 Portainer 直接从私有仓库中拉取镜像

在这里插入图片描述
配置完成后即可在 Images 菜单拉取镜像

在这里插入图片描述
拉取镜像成功将在右上角有绿色的提示框,在对应节点即可查看到镜像

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

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

相关文章

ATF问题二则:EL3可能没有实现吗? aarch32中的S-EL1是什么?

最近两个问题&#xff0c;戳到了我的知识盲点&#xff0c;当然我这个菜鸡ATF哪里都是盲点。 问题一&#xff1a;EL3可能没有实现吗&#xff1f; 问题二&#xff1a;bl2是aarch32, 那么bl2是S-EL1&#xff0c;bl31也是S-EL1? 1、EL3可能没有实现吗&#xff1f; The Armv8-A …

基于MATLAB的一级倒立摆控制仿真,带GUI界面操作显示倒立摆动画,控制器控制输出

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 一个可以活动的小车上立着一根不稳定随时会倒下的杆。小车的轮子由电机控制&#xff0c;可以控制小车电机的转动力矩M。同时&#xff0c;也可以获取小车轮子转动的圈数N&#xff08;可以精确到小…

java计算机毕业设计ssm实验室设备管理系统5k648(附源码、数据库)

java计算机毕业设计ssm实验室设备管理系统5k648&#xff08;附源码、数据库&#xff09; 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xf…

162.基于Django-rest_framework的身份验证和权限

1. 概述 到目前为止&#xff0c;程序的API对任何人都可以编辑或删除&#xff0c;没有任何限制。我们希望有一些更高级的行为&#xff0c;进行身份验证和权限分配&#xff0c;以确保&#xff1a; 数据始终与创建者相关联只有经过身份验证的用户才能创建数据只有数据的创建者可…

嵌入式Linux上ifpulgd的使用配置与qemu模拟验证

问题引入 最近在项目开发中收到了一个非常简单的需求&#xff0c;我们的嵌入式Linux板卡需要在检测到网口插拔后重新配置网络&#xff0c;这在pc环境中非常常见。但是在这个项目的默认SDK中并没有相关配置&#xff0c;稍微查询了一下&#xff0c;在一般pc上通常使用Ifpulgd,并…

[附源码]Python计算机毕业设计Django企业售后服务管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

【数据结构】树的概念与堆的实现

树的概念与堆的实现1、什么是树1.1 树的概念1.2 树的相关概念1.3 树的表示2、二叉树概念及结构2.1 概念2.2 特殊的二叉树2.3 二叉树的性质2.4 二叉树的存储结构3、二叉树的顺序结构及实现3.1 二叉树的顺序结构3.2 堆的概念及结构3.3 堆的实现3.3.1 创建一个堆3.3.2 初始化堆3.3…

【计算机毕业设计】基于JSP的网上购物系统的设计与实现

分类号&#xff1a;TP315 U D C&#xff1a;D10621-408-(2007)5883-0 密 级&#xff1a;公 开 编 号&#xff1a;2003214012 学位论文 基于JSP的网上购物系统的设计与实现 基于JSP的网上购物系统的设计与实现 摘 要 近年来&#xff0c;随着Internet的迅速崛起&#xff0c…

内存 分页、交换空间

目录 1. 分页 1.1 地址转换 1.2 页表存在哪里 1.3 列表中究竟有什么 1.4 分页的优缺点 2. 快速地址转换&#xff08;TLB&#xff09; 2.1 TLB 的基本算法 2.2 谁来处理 TLB 未命中 2.2.1 硬件处理 2.2.2 软件&#xff08;操作系统&#xff09;处理 2.3 TLB 的内容 …

[附源码]Python计算机毕业设计SSM精准扶贫系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

(免费分享)基于springboot,vue公司财务系统

该系统是一个简单的公司财务管理系统&#xff0c;包含用户基本信息管理&#xff08;员工管理&#xff0c;管理员管理&#xff09;&#xff0c;工资管理&#xff08;员工工资管理&#xff0c;管理员工资管理&#xff09;&#xff0c;业务管理&#xff08;员工业务管理&#xff0…

Windows server 2012搭建用户隔离FTP站点

Windows server 2012搭建用户隔离FTP站点 系统添加FTP功能创建FTP登陆账户和其使用的文件夹D盘根目录下创建FTP站点主目录ftp文件夹ftp下创建用户主目录localuser&#xff08;名称不可更改&#xff0c;实现用户隔离必要步骤&#xff09;Localuser文件夹下创建对应用户的文件夹…

opencv入门笔记(二)

目录图像运算位运算位与运算位或运算取反运算异或运算位运算特点示例&#xff1a;位运算示例加法运算示例&#xff1a;查看三种加法运算的区别滤波器均值滤波中值滤波高斯滤波双边滤波示例&#xff1a;查看多种滤波器的处理效果视频处理示例&#xff1a;打开笔记本电脑内置摄像…

轻量化神经网络(移动设备上的神经网络)的整体框架

提示&#xff1a;不断更新中 文章目录一、为什么要引入轻量化神经网络二、模型压缩(Model Compression)参数修建低秩因子分解参数量化知识蒸馏人工神经架构设计三、自动压缩和神经架构搜索(Automated Compression and Neural Architecture Search)自动模型压缩(Automated Model…

【软件工程】白盒测试:基本路径测试

基本路径测试是在程序控制流图的基础上&#xff0c;通过分析控制构造的环路复杂性&#xff0c;导出基本可执行的路径集合&#xff0c;从而设计测试用例的方法。 步骤(以一段代码为例)&#xff1a; &#xff08;1&#xff09;画出控制流图 void sort(int num,int t) 1. { 2. i…

MySQL数据库的SQL语句

MySQL数据库的SQL语句MySQL的常用数据类型MySQL数据类型及含义char与varchar的区别MySQL的基本命令登录数据库查看MySQL数据库版本查看当前服务器中的数据库查看MySQL库中的表查看表的结构&#xff08;字段&#xff09;SQL语句SQL简介及分类创建新的数据库创建新的表添加表中各…

卡尔曼滤波之基本概念和状态观测器

图裂参考原文&#xff1a;https://www.cnblogs.com/odesey/p/16937124.html 1. 为什么使用 Kalman Filters&#xff1f; 1.1 什么是 Kalman Filters&#xff1f; Kalman Filters 是一种优化估计算法。下面使用使用两个例子说明 Kalman Filters 的用处。 例子1&#xff1a; …

电子学会2021年3月青少年软件编程(图形化)等级考试试卷(二级)答案解析

目录 一、单选题&#xff08;共25题&#xff0c;每题2分&#xff0c;共50分&#xff09; 二、判断题&#xff08;共10题&#xff0c;每题2分&#xff0c;共20分&#xff09; 三、编程题&#xff08;共2题&#xff0c;共30分&#xff09; 青少年软件编程&#xff08;图形化&a…

Java#32(异常, File)

目录 一.异常 异常: 代表程序出现问题 二.File 1.File的三种构造方法 2.File的常见的成员方法 一.异常 异常: 代表程序出现问题 图解: 从Java文件------>字节码文件的过程就是编译(在这期间的异常就是编译时异常) 从字节码文件------->运行结果的过程就是运行(在这期…

Linux系统调用与API

系统调用是应用程序与操作系统内核之间的接口&#xff0c;它决定了应用程序是如何与内核打交道的。无论程序是直接进行系统调用&#xff0c;还是通过运行库&#xff0c;最终还是会达到系统调用这个层面。 系统调用介绍 1、什么是系统调用 在现代的操作系统里&#xff0c;程序运…