[Docker]十一.Docker Swarm集群raft算法,Docker Swarm Web管理工具

一.Docker Swarm集群raft算法讲解

Raft :一致性算法,在保证大多数管理节点存活的情况下,集群才能使用, 所以就要求如果集群的话, manager 节点必须 >=3 ,如果是两个台,其中一台宕机,剩余的一台也将不可用,以致整个集群不可用
Manager : 管理节点,用于管理工作节点,为了利用 swarm 模式的容错特性, Docker 建议根据组织的高可用性要求实现 奇数个节点, 当有多个管理器时,可以从管理器节点的故障中恢复而无需停机
  • 一个有三台管理器集群最多可以容忍一台管理器的宕机
  • 一个有五台管理器集群最多可以同时丢失两个管理器节点宕机
  • 一个有N台管理器集群最多可以容忍丢失 (N-1)/2管理器宕机
  • Docker 建议一个 swarm 最多使用七个管理器节点

 

可以在前面章节的基础上,再次创建2台服务器,作为manager,这样就有3台机器作为mananger了,分别为:192.168.31.81,192.168.31.82,192.168.31.83, 在192.168.31.81机器上创建一个集群,命令: 

docker swarm init --advertise-addr 192.168.31.81

然后执行命令: docker swarm join-token manager,获取增加manager管理节点的命令,如下:

[root@manager_81 conf.d]# docker swarm join-token managerTo add a manager to this swarm, run the following command:docker swarm join --token SWMTKN-1-5hts6hqq9ooww75omdfdd2v4tx9vpy20cpjcoc4ieetdys4tc3-8zth4t1az8rbg4yaj1quantoo 192.168.31.81:2377

把上面命令分别在192.168.31.82,192.168.31.83上执行,这样这三台机器就是集群的manager了,其中一台为Leader,可以通过命令docker node ls查看集群状态,然后可以对这几台manager就行操作

二.Docker Swarm Web管理工具

当Docker部署规模逐步变大后,可视化监控容器环境的性能和健康状态将会变得越来越重要,Docker的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录用户管理和控制等功能,常用工具如下:

  • docker UIlocal
  • portainer
  • daocloud

1.使用portainer可视化管理工具

使用portainer不仅可以管理docker swarm,还可以管理k8s,官网:https://www.portainer.io/  

(1).安装portainer

需要在manager节点docker pull portainer/portainer,这里以192.168.31.81这个manager节点为例 

[root@manager_81 conf.d]# docker pull portainer/portainer
docker: 'pull portainer/portainer' is not a docker command.
See 'docker --help'
[root@manager_81 conf.d]# docker pull portainer/portainer
docker: 'pull portainer/portainer' is not a docker command.
See 'docker --help'
[root@manager_81 conf.d]# 
[root@manager_81 conf.d]# 
[root@manager_81 conf.d]# docker pull portainer/portainer
Using default tag: latestlatest: Pulling from portainer/portainer
772227786281: Pull complete 
96fd13befc87: Pull complete 
0bad1d247b5b: Pull complete 
b5d1b01b1d39: Pull complete 
Digest: sha256:47b064434edf437badf7337e516e07f64477485c8ecc663ddabbe824b20c672d
Status: Downloaded newer image for portainer/portainer:latest
docker.io/portainer/portainer:latest
[root@manager_81 conf.d]# [root@manager_81 conf.d]# docker images
REPOSITORY            TAG       IMAGE ID       CREATED         SIZE
gowebimg              v1.0.1    be3c1ee42ce2   2 days ago      237MB
mycentos              v1        4ba38cf3943b   3 days ago      434MB
nginx                 latest    a6bd71f48f68   3 days ago      187MB
mysql                 latest    a3b6608898d6   4 weeks ago     596MB
portainer/portainer   latest    5f11582196a4   12 months ago   287MB
[root@manager_81 conf.d]# 

(2).然后再使用如下命令运行Portainer容器

portainer其实就是一个web网站,只不过把它制作成为了一个容器而已

docker run -p 9000:9000 --name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /mydata/portainer/data:/data \
-d portainer/portainer
[root@manager_81 ~]# docker run -p 9000:9000 --name portainer \
> --restart=always \
> -v /var/run/docker.sock:/var/run/docker.sock \
> -v /mydata/portainer/data:/data \
> -d portainer/portainer
be27e0d46d28fff3fc04f5fff3a57381ca5682e05397fcdb21c86237e245f4b7
[root@manager_81 ~]# 
[root@manager_81 ~]# docker ps
CONTAINER ID   IMAGE                 COMMAND                  CREATED          STATUS          PORTS                                                           NAMES
be27e0d46d28   portainer/portainer   "/portainer"             30 seconds ago   Up 20 seconds   8000/tcp, 9443/tcp, 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp   portainer

(3).外部访问Portainer容器

访问192.168.31.81:9000

 

 

 

 

 

 

2.汉化portainer

官网地址:https://hub.docker.com/r/6053537/portainer-ce 

(1).下载

[root@manager_81 ~]# docker pull 6053537/portainer-ce
Using default tag: latest
latest: Pulling from 6053537/portainer-ce
795a208431d7: Pull complete 
...
b8d846b08218: Pull complete 
Digest: sha256:059e3de691409f22b1cdcc8ef36e2c12cd45f305652a7a163efe465d10af9473
Status: Downloaded newer image for 6053537/portainer-ce:latest
docker.io/6053537/portainer-ce:latest
[root@manager_81 ~]# 
[root@manager_81 ~]# 
[root@manager_81 ~]# 
[root@manager_81 ~]# 
[root@manager_81 ~]# docker images
REPOSITORY             TAG       IMAGE ID       CREATED         SIZE
gowebimg               v1.0.1    be3c1ee42ce2   2 days ago      237MB
mycentos               v1        4ba38cf3943b   3 days ago      434MB
nginx                  latest    a6bd71f48f68   3 days ago      187MB
6053537/portainer-ce   latest    b9c565f94ccc   4 weeks ago     322MB
mysql                  latest    a3b6608898d6   4 weeks ago     596MB
portainer/portainer    latest    5f11582196a4   12 months ago   287MB
[root@manager_81 ~]# 

(2).启动容器

在启动之前,先停止portainer

docker run -p 9000:9000 --name portainer-ce \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /mydata/portainer/data:/data \
-d 6053537/portainer-ce
[root@manager_81 ~]# docker run -p 9000:9000 --name portainer-ce \
> --restart=always \
> -v /var/run/docker.sock:/var/run/docker.sock \
> -v /mydata/portainer/data:/data \
> -d 6053537/portainer-ce
29d46940629a1ef0d385718d1b8ebcacdc39e72e718d84f5fb2c8a091afa35c4[root@manager_81 ~]# docker ps
CONTAINER ID   IMAGE                  COMMAND                  CREATED         STATUS          PORTS                                                           NAMES
29d46940629a   6053537/portainer-ce   "/portainer"             7 seconds ago   Up 3 seconds    8000/tcp, 9443/tcp, 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp   portainer-ce

(3).访问

该portainer工具可以帮助我们查看集群信息,容器信息,服务信息,以及一些简单的操作,比较直观, 如果要操作集群的话,还是推荐使用命令行工具

[上一节][Docker]十.Docker Swarm讲解

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分布式锁,分布式锁应该具备哪些条件,分布式锁的实现方式有:基于Zookeeper实现、Redis实现、数据库实现

文章目录 分布式锁0-1分布式锁--包含CAP理论模型概述分布式锁:分布式锁应该具备哪些条件:分布式锁的业务场景: 分布式锁的实现方式有:基于Zookeeper - 分布式锁实现思想优缺点基于Redis - 分布式锁实现思想实现思想的具体步骤&…

计算机体系结构概念总结

CH1 基本概念 课件补充 概念汇总 CH2 指令系统 课件补充 能够改变控制流的指令:分支、跳转、过程调用、过程返回 概念汇总 课后习题 CH3 流水线 课件补充 概念汇总 指令发射:指令从流水线的译码段进入执行段的过程称为指令发射。 向量处理机&#xf…

技术阅读周刊第第7️⃣期

技术阅读周刊,每周更新。 历史更新 20231013:第一期20231022:第二期20231027:第三期20231103:第四期20231107:第五期20231117:第六期 What is a JWT? Understanding JSON Web Tokens URL: http…

Leetcode—2824.统计和小于目标的下标对数目【简单】

2023每日刷题&#xff08;三十九&#xff09; Leetcode—2824.统计和小于目标的下标对数目 实现代码 class Solution { public:int countPairs(vector<int>& nums, int target) {int n nums.size();sort(nums.begin(), nums.end());int left 0, right left 1;i…

数据结构与算法编程题21

判别两棵树是否相等。 #define _CRT_SECURE_NO_WARNINGS#include <iostream> using namespace std;typedef char ElemType; #define ERROR 0 #define OK 1typedef struct BiNode {ElemType data;BiNode* lchild, * rchild; }BiNode, * BiTree;bool Create_tree(BiTree&a…

数据库的事务的基本特性,事务的隔离级别,事务隔离级别如何在java代码中使用,使用MySQL数据库演示不同隔离级别下的并发问题

文章目录 数据库的事务的基本特性事务的四大特性(ACID)4.1、原子性&#xff08;Atomicity&#xff09;4.2、一致性&#xff08;Consistency&#xff09;4.3、隔离性&#xff08;Isolation&#xff09;4.4、持久性&#xff08;Durability&#xff09; 事务的隔离级别5.1、事务不…

STM32-SPI1控制AD7705(Sigma-Delta-ADC芯片)

STM32-SPI1控制AD7705&#xff08;Sigma-Delta-ADC芯片&#xff09; 原理图手册说明功能方框图引脚功能 片内寄存器通信寄存器&#xff08;RS2、RS1、RS00、0、0&#xff09;设置寄存器时钟寄存器数据寄存器&#xff08;RS2、RS1、RS00、1、1&#xff09;测试寄存器&#xff08…

CFO的GenAI应用指南

CFO应该采取的最重要行动是识别最大的创造价值的机会&#xff0c;然后确保他们获得所需的资金和其他资源。GenAI拥有成为革命性技术的潜力&#xff0c;但它不会改变金融和经济学的基本原则&#xff1a;一家公司必须产生高于资本成本的回报。 技术改变了每一项业务&#xff0c;往…

Java核心知识点整理大全13-笔记

Java核心知识点整理大全-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全2-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全3-笔记_希斯奎的博客-CSDN博客 Java核心知识点整理大全4-笔记-CSDN博客 Java核心知识点整理大全5-笔记-CSDN博客 Java核心知识点整理大全6…

设备管理系统-设备管理软件

一、为什么要使用设备管理系统 1.企业扩张快&#xff0c;设备配置多&#xff0c;管理混乱。 2.设备数量多&#xff0c;存放地点多&#xff0c;查找麻烦。 3.同类设备单独管理, 困难。 4.设备较多时相关信息统计容易出错&#xff0c;错误后修改困难。 二、凡尔码设备管理软件的…

LabVIEW绘制带有多个不同标尺的波形图

LabVIEW绘制带有多个不同标尺的波形图 通过在同一波形图上使用多个轴&#xff0c;可以使用不同的标尺绘制数据。请按照以下步骤操作。 将波形图或图表控件放在前面板上。 1. 右键点击您要创建多个标尺的轴&#xff0c;然后选择复制标尺。例如&#xff0c;如果要为一个…

Jenkins与Docker的自动化CI/CD流水线实践

Pipeline 有诸多优点&#xff0c;例如&#xff1a; 项目发布可视化&#xff0c;明确阶段&#xff0c;方便处理问题 一个Jenkins File文件管理整个项目生命周期 Jenkins File可以放到项目代码中版本管理 Jenkins管理界面 操作实例&#xff1a;Pipeline的简单使用 这里是比较…