Docker Swarm 管理

news/2024/9/18 15:03:47/ 标签: 云原生, docker

案例一概述及前置知识点

概述:

创鑫公司给云计算工程师提出新的要求,可将集群中所有Docker Engine整合进一个虚拟的资源池,通过执行命令与单一的主Swarm进行沟通,而不必分别和DockerEngine沟通。在灵活的调度策略下,IT团队可以更好地管理可用的主机资源,保证应用容器的高效运行

  1. DockerSwarm是Docker公司2014年出品的基于Docker集群管理调度工具,能够将多台主机构建成一个Docker集群,并结合Overlay网络实现容器调度和互访
  2. 用户可以通过Swarm API来管理多个主机的Docker
  3. Swarm集群包含Manager和Worker两类节点,基于Docker Engine可以部署任何类型的工作节点
  4. 在Swarm集群中部署镜像创建一个服务时,一些大型的应用上下文环境(运行环境)中需要各种服务配合工作,这些服务称之为微服务
  5. 创建服务时,可以指定要使用的容器镜像以及容器中要运行的命令,同事可以定义以下选项:
    1. 群集要对外服务的端口
    2. 在群集中用于服务之间相连的Overlay网络
    3. 滚动更新策略
    4. 群集总运行的副本数量、
  6. Docker Swarm基本特性
    1. 去中心化设计
    2. 声明式服务模型
    3. 协调预期转台与实际状态的一致性
    4. 多主机网络
    5. 负载均衡
    6. 安全策略(使用TLS对数据进行保护)
    7. 滚动更新
  7. Docker Swarm架构图
    1. Docker Swarm提供强大的集群能力,能够使多个Docker Engine组合形成一个group,提供多容器服务
    2. Swarm使用标准的Docker API

案例一:Docker Swarm群集部署

  1. 把需要的镜像同步到三个主机

  1. 初始化一个集群,指定一个节点并生成一个集群

(使用上述docker swarm join 命令那一行语句,在其他的worker节点上执行这个语句,即可将此节点加入到swarm集群当中,并作为一个worker节点)

  1. 创建完成之后,可以使用docker info 命令来查看当前集群的节点信息

2377:TCP端口,建立集群使用的端口

7946:TCP/UDP,节点之间进行通信的端口

4789:TCP/UDP端口,数据存储使用的端口

也可使用docker node ls 查看节点的信息

Active:能运行容器

pause:当前容器继续执行,新调度过来的容器不接收

drain:(污点)新调度过来的容器不接收,原有的容器调度走,保持自身没有容器运行

  1. 改变Manager管理节点的状态

  1. 给节点打标签,将指定的容器运行在指定的节点之上

--label-add:添加标签

group=g2:这是一个完整的标签名,是一个键值对

  1. 查看指定节点的详细信息

  1. 在swarm中跑一个服务

  1. 查看服务创建是否成功

  1. 给其他worker节点提权

提权过后,他们有一些特点定的权限,但不是实际的Leader

  1. 给其他集群降权

  1. 脱离集群。解散集群的命令

若是想节点脱离集群,在worker节点上执行此命令即可

若是想解散该集群,在Manager节点上执行此命令

--force:强制执行

  1. 创建服务并且指定副本数量

  1. 查看服务日志

扩容

缩容

删除服务

滚动更新

更新已创建服务的镜像

Docker的四种网络模式:

  1. bridge
  2. host
  3. none
  4. container

创建网络

创建服务端的时候指定网络

创建数据卷以实现数据共享

一、直接创建数据卷,将创建的数据卷直接在创建服务的时候指定给服务

(这种方式的弊端是,需要到每个节点依次修改数据)

1、先创建数据卷

2、创建的数据卷的位置:/var/lib/docker/volumes/

2、创建服务时直接指定数据卷

3、查看创建的数据卷

二、共享存储(NFS)数据卷

  1. 先创建一个共享目录(所有的节点都要创建)

  1. 给每个节点安装NFS,以便实现卷数据的共享

  1. 在Manager节点,设置配置文件(/etc/exports)

  1. 修改配置文件里边的内容

  1. 在Manager节点上开启以下两种服务

  1. 在worker节点上挂载目录

  1. 在Manager节点上创建新的服务,并重新指定挂载类型,以及来源共享目录

  1. 查看创建的结果

  1. 在Manager节点创建一个测试文件,会发现其他的worker节点会有相同的数据内容
    1. 在Manager节点创建测试内容
      1. echo "test" > /var/vhost/www/aa/index.html
    2. 在worker节点创建测试内容
      1. echo "test" > /var/share/nginx/html/index.html

经过对比,发现无论在那个节点上创建测试文件,最终都会共享到所有节点上,因为在Manager节点把创建的共享目录已经挂载到其他的worker节点上的目录当中


http://www.ppmy.cn/news/1524762.html

相关文章

MongoDB基本语法

MongoDB 基本语法详解 MongoDB 是一种面向文档的 NoSQL 数据库,支持灵活的数据结构和高扩展性,广泛应用于现代应用程序开发。MongoDB 采用 BSON(Binary JSON)格式存储数据,使得其能够存储复杂嵌套的结构。 1. 数据库…

大数据安全之Kerberos

Kerberos 是一个网络身份验证协议,旨在提供强身份验证,尤其是在开放网络环境中。它最早由麻省理工学院(MIT)开发,用于在不安全的网络环境中安全地验证用户身份。Kerberos 协议的设计旨在防止窃听、重放攻击和网络中的其…

2024年9月12日(k8s环境及测试 常用命令)

一、环境准备及测试 1、报错处理: kube-system calico-node-5wvln 0/1 Init:0/3 0 16h kube-system calico-node-d7xfb 0/1 Init:0/3 0 16h ku…

mysql学习教程,从入门到精通,SQL AND OR 运算符(12)

1、SQL AND & OR 运算符 在本教程中,您将学习如何在子句中使用ASELECT column1_name, column2_name, columnN_nameFROM table_nameWHERE condition1 AND condition2;ND&OR运算符,WHERE以根据多个条件过滤记录。 1.1、根据条件选择记录 …

专注LabVIEW 做好一件事

在一次LabVIEW的系统改造项目中,遇到一个设备,操作手册居然还是基于DOS系统的。不难看出,这套设备虽然年代久远,但背后的技术积淀极为深厚。事实证明,这套系统在业内享有很高的认可度,由国外团队开发&#…

asio中的异步accept分析

简介 主要分析linux平台下的&#xff0c;即reactive_socket_service_base和reactive_socket_service 发起 由basic_socket_acceptor调用async_accept&#xff0c;前提是需要调用open创建socket添加到reactor中。其定义为 template <typename SocketService, typename Ac…

高级 ECharts 技巧:自定义图表主题与样式

ECharts 是一个强大的数据可视化库&#xff0c;提供了多种内置主题和样式&#xff0c;但你也可以根据项目的设计需求&#xff0c;自定义图表的主题与样式。本文将介绍如何使用 ECharts 自定义图表主题&#xff0c;以提升数据可视化的吸引力和一致性。 1. 什么是 ECharts 主题&…

开源免费的工贸一体行业ERP管理系统

引言 在当今数字化浪潮汹涌澎湃的时代&#xff0c;中小企业面临着前所未有的挑战与机遇。如何实现数字化转型发展&#xff0c;成为了众多中小企业主心头的大事。 据相关数据显示&#xff0c;目前我国中小企业数量已经超过了 4000 万户&#xff0c;然而成功实现数字化转型的比例…

B2064 斐波那契数列

题目描述 斐波那契数列是指这样的数列&#xff1a;数列的第一个和第二个数都为 11&#xff0c;接下来每个数都等于前面 22 个数之和。 给出一个正整数 aa&#xff0c;要求斐波那契数列中第 aa 个数是多少。 输入格式 第 11 行是测试数据的组数 nn&#xff0c;后面跟着 nn 行…

C++20 协程:异步编程的新纪元

C20 引入了协程&#xff08;coroutines&#xff09;&#xff0c;这是一种全新的异步编程模型&#xff0c;使得编写异步代码变得更加简洁和直观。本文将详细介绍 C20 协程的概念、功能演变及其在实际项目中的应用。通过本文&#xff0c;你将了解到协程的基本原理、语法和如何利用…

阿里巴巴1688中国站商品搜索API返回值深度解析与实战应用

在电商数据分析和市场调研中&#xff0c;阿里巴巴中国站&#xff08;现常指1688.com&#xff09;的商品搜索API扮演着至关重要的角色。这些API提供了丰富的商品信息&#xff0c;为商家和开发者在商品定价、营销策略制定、市场调研等方面提供了强有力的数据支持。本文将深入探讨…

有关WSL和docker的介绍

目录标题 如何利用在windows上配置docker实现linux和windows容器修改WSL默认安装&#xff08;也就是linux子系统&#xff09;目录到其他盘 如何利用在windows上配置docker实现linux和windows容器 wsl的基本命令&#xff1a;参考网页 docker入门到实践&#xff1a;参考网页 官方…

PDF扫描版文字识别OCR

PDF扫描版文字识别OCR 最近需要有对PDF扫描版进行文字可识别的需求&#xff0c;这里介绍一款工具挺好用的 这是一款开源的OCR工具 github地址 https://github.com/hiroi-sora/Umi-OCR 主要功能及特点 免费&#xff1a;本项目所有代码开源&#xff0c;完全免费。方便&#…

前端封装组件可视化库

在 Vue 项目中&#xff0c;如果你希望封装的组件库能够可视化并调整默认参数&#xff0c;你可以考虑使用以下工具和库&#xff1a; Storybook: Storybook 是一个非常流行的工具&#xff0c;用于构建和展示 UI 组件。它允许你以独立的方式开发组件&#xff0c;并能够直观地调整组…

发送成绩的app或小程序推荐

老师们&#xff0c;新学期的第一次月考马上开始&#xff0c;是不是还在为如何高效、便捷地发布成绩而头疼呢&#xff1f;别担心&#xff0c;都2024年了&#xff0c;我们有更智能的方式来解决这个问题&#xff01; 给大家安利一个超级实用的工具——易查分小程序。这个小程序简…

数据结构之数组矩阵存储

目录 一、数组存储 1. 一维数组 2. 二维数组 二、特殊矩阵存储 1. 对称矩阵 2. 三角矩阵 3. 三对角矩阵 三、总结 一、数组存储 1. 一维数组 2. 二维数组 二维数组按列优先存储的下标对应关系&#xff08;A _m*_n&#xff09; 二、特殊矩阵存储 1. 对称矩阵 上、下三…

MySQL--库的操作

文章目录 1.创建数据库2.创建数据库案例3.字符集和校验规则3.1默认字符集3.2默认校验规则3.3查看系统默认字符集以及校验规则3.4查看数据库支持的字符3.5查看数据库支持的字符集校验规则3.6校验规则对数据库的影响不区分大小写查询&#xff1a;排序结果&#xff1a;区分大小写查…

HTML5( HTML5 、CSS3) 第一天

HTML5 第一天 HTML5 第一天一、什么是 HTML5二、HTML5 新增标签三、多媒体音频标签四、多媒体视频标签五、新增 input 标签六、新增表单属性七、CSS3 新特性八、CSS3 属性选择器九、结构伪类选择器十、nth-child 参数详解十一、nth-child 和 nt-of-type 的区别十二、伪元素选…

苹果账号登录后端验证两种方式 python2

import time import jwt import requests import json import base64def decode_jwt(jwt_token):try:h,p,s jwt_token.split(.)except:return {},{},{},"","",""header json.loads(base64.urlsafe_b64decode(h )) # 可能需要调整填充pa…

Golang | Leetcode Golang题解之第401题二进制手表

题目&#xff1a; 题解&#xff1a; func readBinaryWatch(turnedOn int) (ans []string) {for i : 0; i < 1024; i {h, m : i>>6, i&63 // 用位运算取出高 4 位和低 6 位if h < 12 && m < 60 && bits.OnesCount(uint(i)) turnedOn {ans …