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

相关文章

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

Docker镜像pull失败两种解决办法小结

《Docker镜像pull失败两种解决办法小结》有时候我们在拉取Docker镜像的过程中会遇到一些问题,:本文主要介绍Docker镜像pull失败两种解决办法的相关资料,文中通过代码介绍的非常详细... 目录docker 镜像 pull 失败解决办法1DrQwWCocker 镜像 pull 失败解决方法2总

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

关于Docker Desktop的WSL报错问题解决办法

《关于DockerDesktop的WSL报错问题解决办法》:本文主要介绍关于DockerDesktop的WSL报错问题解决办法的相关资料,排查发现是因清理%temp%文件夹误删关键WSL文件,... 目录发现问题排查过程:解决方法其实很简单:重装之后再看就能够查到了:最后分享几个排查这类问题的小www.cp

使用DeepSeek搭建个人知识库(在笔记本电脑上)

《使用DeepSeek搭建个人知识库(在笔记本电脑上)》本文介绍了如何在笔记本电脑上使用DeepSeek和开源工具搭建个人知识库,通过安装DeepSeek和RAGFlow,并使用CherryStudi... 目录部署环境软件清单安装DeepSeek安装Cherry Studio安装RAGFlow设置知识库总

Linux搭建Mysql主从同步的教程

《Linux搭建Mysql主从同步的教程》:本文主要介绍Linux搭建Mysql主从同步的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux搭建mysql主从同步1.启动mysql服务2.修改Mysql主库配置文件/etc/my.cnf3.重启主库my

国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)

《国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)》本文给大家利用deepseek模型搭建私有知识问答库的详细步骤和遇到的问题及解决办法,感兴趣的朋友一起看看吧... 目录1. 第1步大家在安装完ollama后,需要到系统环境变量中添加两个变量2. 第3步 “在cmd中

如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件

《如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件》本文介绍了如何使用Docker部署FTP服务器和Nginx,并通过HTTP访问FTP中的文件,通过将FTP数据目录挂载到N... 目录docker部署FTP和Nginx并通过HTTP访问FTP里的文件1. 部署 FTP 服务器 (

解读docker运行时-itd参数是什么意思

《解读docker运行时-itd参数是什么意思》在Docker中,-itd参数组合用于在后台运行一个交互式容器,同时保持标准输入和分配伪终端,这种方式适合需要在后台运行容器并保持交互能力的场景... 目录docker运行时-itd参数是什么意思1. -i(或 --interactive)2. -t(或 --