Docker-swarm 这样集群搭建,保证万无一失(六)

2024-06-16 10:38

本文主要是介绍Docker-swarm 这样集群搭建,保证万无一失(六),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 创建docker swarm 集群
    • 创建集群命令
    • 集群加入 worker
    • 集群加入manager
    • 小心踩坑

官网
https://docs.docker.com/engine/swarm/
文档地址:
文档

节点工作原理
https://docs.docker.com/engine/swarm/how-swarm-mode-works/nodes/
在这里插入图片描述

创建docker swarm 集群

四台机器为例,2 个 manager 2个 worker。 但建议是 3个manager 以上,这样容错率更高,2台 down 了其中一台集群就不行,多个worker 。

虚拟机状态备注
192.168.116.129manager用这台创建集群
192.168.116.130manager加入成manager
192.168.116.131worker
192.168.116.132worker
  1. 首先安装 docker,安装docker 不再演示,请看我博客写的 docker第一节内容。
  2. 配置阿里加速镜像和开放防火墙或者开启安全组,请看我博客写的 docker第二节的内容。

docker swarm 命令:

docker swarm --help

创建集群:
docker swarm init --advertise-addr 虚拟机IP

查看增加 manager的授权命令:
docker swarm join-token manager

查看增加 worker 的授权命令:
docker swarm join-token worker

管理器节点离开 docker swarm 模式:
docker swarm leave --force

普通节点离开Docker Swarm模式
docker swarm leave

在这里插入图片描述

创建集群命令

初始化一个集群
docker swarm init --advertise-addr IP地址
如下两图

在这里插入图片描述
docker swarm init --advertise-addr 192.168.116.129 --listen-addr 192.168.116.129:2377,–listen-addr 192.168.116.129:2377【可选】
在这里插入图片描述

查询和开放端口
firewall-cmd --query-port=8080/tcp
firewall-cmd --permanent --add-port=8080/tcp重启防火墙
firewall-cmd --reload防火墙命令:
# 查看防火状态
systemctl status firewalld
service  iptables status# 暂时关闭防火墙
systemctl stop firewalld
service  iptables stop

在这里插入图片描述
注意:
一定要开放当前创建集群集器的端口(阿里云开通安全组),然后重启防火墙,不然加入worker 会报如下错误:

Error response from daemon: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp 192.168.116.129:2377: connect: no route to host"

集群加入 worker

用创建集群生成的命令,把 192.168.116.130、192.168.116.131 加入 worker。
在这里插入图片描述
查看集群节点:

docker node ls

万一忘记加入worker 的命令,用如下命令查看

docker swarm join-token worker

在这里插入图片描述

集群加入manager

加入 manager 的命令也非常简单

docker swarm join-token manager

在这里插入图片描述

小心踩坑

在这里插入图片描述
当加入 manager 时报错:

Error response from daemon: manager stopped: can’t initialize raft node: rpc error: code = Unknown desc = could not connect to prospective new cluster member using its advertised address: rpc error: code = Unavailable desc = connection error: desc = “transport: Error while dialing dial tcp 192.168.116.130:2377: connect: no route to host”

我在网上找错误解决方案,好几个都是互相抄袭说参考一个帖子,然后进入官网解决了,实质上他们自己根本没有动手实践,抄袭党实在是可恶至极,误导他人,费了一番周折,依然没有解决问题。
https://docs.docker.com/config/daemon/systemd/#httphttps-proxy

后来,我仔细思考报错信息,察觉不对啊,我 192.168.116.129 创建集群,邀请 192.168.116.130 加入 manager ,一直提示我 RPC连接130失败。我抱着试试的心态,可能是防火墙问题。最后确实解决了。
在这里插入图片描述
加入集群成功,设置为 manager。docker node ls 查看集群。
在这里插入图片描述
搭建 docker swarm 集群就基本完成了。 欢迎留言交流,转载请说明原处地址。

这篇关于Docker-swarm 这样集群搭建,保证万无一失(六)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1066238

相关文章

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

java实现docker镜像上传到harbor仓库的方式

《java实现docker镜像上传到harbor仓库的方式》:本文主要介绍java实现docker镜像上传到harbor仓库的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 前 言2. 编写工具类2.1 引入依赖包2.2 使用当前服务器的docker环境推送镜像2.2

Redis分片集群、数据读写规则问题小结

《Redis分片集群、数据读写规则问题小结》本文介绍了Redis分片集群的原理,通过数据分片和哈希槽机制解决单机内存限制与写瓶颈问题,实现分布式存储和高并发处理,但存在通信开销大、维护复杂及对事务支持... 目录一、分片集群解android决的问题二、分片集群图解 分片集群特征如何解决的上述问题?(与哨兵模

如何使用Haporxy搭建Web群集

《如何使用Haporxy搭建Web群集》Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多如LVS和Nginx,本案例介绍使用Haproxy及Nginx搭建一套Web群集,感兴趣的... 目录一、案例分析1.案例概述2.案例前置知识点2.1 HTTP请求2.2 负载均衡常用调度算法 2.

SpringBoot连接Redis集群教程

《SpringBoot连接Redis集群教程》:本文主要介绍SpringBoot连接Redis集群教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 依赖2. 修改配置文件3. 创建RedisClusterConfig4. 测试总结1. 依赖 <de

浅析如何保证MySQL与Redis数据一致性

《浅析如何保证MySQL与Redis数据一致性》在互联网应用中,MySQL作为持久化存储引擎,Redis作为高性能缓存层,两者的组合能有效提升系统性能,下面我们来看看如何保证两者的数据一致性吧... 目录一、数据不一致性的根源1.1 典型不一致场景1.2 关键矛盾点二、一致性保障策略2.1 基础策略:更新数

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热