docker swarm 部署服务网络问题
docker swarm 服务部署问题
docker swarm 部署服务时可能会出现,启动服务特别慢的情况,甚至一个service 启动后,容器会长时间处于 preparing 状态,直到 状态切换成 running 状态后,才会启动下一个service。然后查询资料发现
如果您发现容器在一段时间后仍然停留在Preparing状态,可能是由于多种因素导致的。以下是一些可能导致这种问题的原因以及可能的解决方案:
- 网络问题:如果您的网络连接不稳定或有延迟,则容器可能在准备过程中需要更多的时间才能与外部世界通信。您可以考虑优化网络设置或使用负载均衡器来加快数据传输的速度。
- 容器数量过多:如果您的集群中有太多容器,那么每个容器都需要花费更多的时间来进行初始化操作。您可以通过限制容器的数量、缩小镜像大小或其他策略来减轻这个问题。
- 容器配置不正确:如果容器中的某个组件(例如操作系统)运行缓慢或不稳定,这也可能会导致容器一直停留在Preparing状态。您可以检查容器是否满足最低系统要求并且是否有足够的可用存储空间。
- 集群规模过大
问题排查
Docker Swarm的启动服务速度会受到网络连接的影响。这是因为在启动一个容器时,需要将容器的镜像文件上传到主机上的存储库中进行验证和构建。如果主机上没有足够的带宽或延迟较低的网络连接,则可能需要更长的时间来完成这些步骤。
此外,当使用Swarm集群管理多个容器时,每个容器都需要通过网络相互通信。因此,网络的性能也会影响整个系统的响应时间和吞吐量。为了优化Swarm的启动服务和网络性能,可以使用负载均衡器、缓存等技术来提高系统效率和可靠性。
解决方案
如果您想使用本地网络而不是公共互联网来运行您的应用程序,那么您需要在Swarm集群中使用本地网络模式(也称为局域网模式)或专用网络模式(也称为专用网络模式)。下面是这两种模式的简要介绍以及如何在Swarm中使用它们:
本地网络模式(Local Network Mode)
该模式下,所有Swarm节点的IP地址都是相同的,并且所有的流量都经过同一台服务器进行转发。
在本地网络模式下,Swarm可以通过VPN或其他安全协议与其他Swarm节点进行通信。
您可以使用本地网络模式来搭建私有云环境,以便更好地控制和管理您的应用程序和资源。
networks:- local-netmode: LocalNetworkMode
专用网络模式(Private Network Mode)
该模式下,每个Swarm节点都有自己的独立IP地址,并且所有的流量都必须经过其他Swarm节点才能到达目标节点。
在专用网络模式下,Swarm无法直接访问外部网络,只能通过其他Swarm节点之间的通信来进行通信。
您可以使用专用网络模式来搭建虚拟专用网络(VPN)环境,以便在不同的地点之间建立安全的远程访问通道。
networks:- private-netmode: PrivateNetworkMode
补充
虽然使用本地网络或专用网络可以提供更高的可靠性和安全性,但也存在一些缺点:
- 网络拓扑复杂性高:由于每个节点都有独立的IP地址,所以网络拓扑相对来说比较复杂,需要进行更多的管理和监控工作。
- 带宽限制:如果您使用的是专用网络,则可能面临更大的带宽限制,因为只有少数几个节点能够同时访问网络。
- 管理成本较高:相对于使用公共互联网,使用本地网络或专用网络需要更多的人力和物力投入,包括硬件设备、软件支持和安全保障等方面。
- 安全风险:使用本地网络或专用网络会带来额外的安全风险,比如攻击者可以利用内部网络漏洞入侵系统。
在单节点情况下也可以使用本地网络或专用网络,但相比于多节点情况下的使用方式,仍然存在以下问题:
- 网络拓扑简单:单节点情况下,网络拓扑相对来说更加简单,只需要一台服务器来处理所有的网络请求即可。
- 带宽限制较小:由于只有一个节点,所以带宽的限制相对较小,但是仍然需要注意避免过高的带宽消耗。
- 管理成本较低:单节点情况下不需要额外的人力和物力投入,但是也需要关注单点故障问题,确保服务器稳定运行。
- 安全风险较大:单节点情况下更容易遭受单点故障攻击,而且一旦出现安全问题,后果也可能更为严重。
我就是在单节点情况下遇到的这个问题,还有种简单方式,就是拔掉 网线,你会发现服务启动速度蹭一下子就上来了。然后服务启动完了之后再把网线插上去
相关文章:

docker swarm 部署服务网络问题
docker swarm 服务部署问题 docker swarm 部署服务时可能会出现,启动服务特别慢的情况,甚至一个service 启动后,容器会长时间处于 preparing 状态,直到 状态切换成 running 状态后,才会启动下一个service。然后查询资…...

1.00001git源码clone后进行编译(带调试)
– 新建用户 useradd postgres passwd postgres – 用户加入sude组 先cd到/etc/sudoers目录下 由于sudoers文件为只读权限,所以需要添加写入权限,chmod uw sudoers vim sudoers 找到root ALL (ALL) ALL这一行,在下一行加入username ALL (A…...

使用StorageClass动态创建pv
rook-ceph安装部署到位后,就可以开始来尝试使用StorageClass来动态创建pv了。 有状态的中间件在kubernetes上落地基本上都会用到StorageClass来动态创建pv(对于云上应用没有那么多烦恼,云硬盘很好用,但是对于自己学习和练习来说还…...

数据结构(Java实现)-ArrayList与顺序表
什么是List List是一个接口,继承自Collection。 List的使用 List是个接口,并不能直接用来实例化。 如果要使用,必须去实例化List的实现类。在集合框架中,ArrayList和LinkedList都实现了List接口。 线性表 线性表(lin…...

性能优化维度
CPU 首先检查 cpu,cpu 使用率要提升而不是降低。其次CPU 空闲并不一定是没事做,也有可能是锁或者外部资源瓶颈。常用top、vmstat命令查看信息。 vmstat 命令: top: 命令 IO iostat 命令: Memory free 命令: 温馨提示:…...

【C++】map的奇葩用法:和函数结合
2023年8月26日,周六下午 今天才发现map居然还能这样用... #include <iostream> #include <map> #include <functional>void printOne() {std::cout << "已经打印出1" << std::endl; }void printTwo() {std::cout <<…...

关于JVM的参数类型
JVM参数类型,主要是可以分为三类。分别是: 标准参数 例如: -help-server-client-version-showversion-cp-classpath 等等,这类参数的特点是在jdk各版本里基本不会变的,相对稳定。 X参数 X参数也就是非标准化参数&am…...

HTTP协议中的Content-Type及其常见类型
什么是Content-Type? Content-Type是HTTP协议中的一个头部字段,用于指示请求或响应中所传输的实体的媒体类型。 为什么使用Content-Type? 使用Content-Type可以告知接收方如何解析和处理传输的数据,确保数据能够正确地被解析和…...

android Junit4编写自测用例
10多年的android开发经验,一直以来呢,也没有使用过android自带的测试代码编写。说来也惭愧。今天也花了点时间稍微研究了下。还挺简单。接下来就简单的说一下。 新建工程 直接默认新建一个工程,就会有两个目录androidTest和test(unitTest)两…...

arcgis:画一幅自己城市的shp地图
首先打开ArcGis10.6,点击带黄底的小加号,添加底图。 可以选择中国地图彩色版,然后双击,转动鼠标滑轮找到属于自己的城市。 点击-目录,在新建的文件夹里右击-新建-shapefile。 格式选择折线,先把主要河流道路…...

采购油封时要考虑的因素
对于依赖机械和设备的行业来说,油封的选择是一个关键的决定,以确保平稳运行并防止流体泄漏。由于有多种选择,了解购买油封时要考虑的关键因素对于确保适合特定应用至关重要。让我们深入研究一下在此选择过程中发挥关键作用的考虑因素。 1、运…...

【无标题】科目一笔记
载人超过核定人数 校车/公路客运汽车/旅游客运汽车 未达到20%,-6超过20%以上,-12 七座以上载客汽车 1. 超过20%以上未达到50%,-6 2. 超过50%以上未达到100%,-9 其他载客汽车 1. 超过20%以上未达到50%,-3 2. 超过50…...

java八股文面试[数据结构]——HashMap和HashTable区别
HashMap源码中的重要常量 DEFAULT_INITIAL_CAPACITY: HashMap的默认容量,16 MAXIMUM_CAPACITY: HashMap的最大支持容量,2^30 TREEIFY_THRESHOLD:Bucket中链表长度大于该默认值,转化为红黑树。 UNTREEIFY_THRESHOLD…...

乐趣无限:10款基于Pygame的经典游戏合集
引言 游戏开发一直是许多程序员和游戏爱好者追求的梦想。而Pygame作为一款功能强大的游戏开发库,为我们提供了实现各种有趣游戏的工具和接口。在本文中,我将向大家介绍10款基于Pygame的经典游戏合集,从简单的猜数字到刺激的飞机…...

php检测数组是否存在某个键,和是否存在某个变量
一、array_key_exists() array_key_exists() 是一个 PHP 内置的函数,用于判断数组中是否存在指定的键。该函数接收两个参数,第一个是键名,第二个是数组。 $arr array(name > Jack, age > 20, country > China);if (array_key_exi…...

c++中的const与constexpt的区别
c中的const与constexpr的区别 const const 是一种修饰符,用于声明一个只读的常量。它可以用于变量、函数参数和函数返回类型。声明为 const 的变量的值在初始化后就不能再改变。 适用场景: const 适用于声明运行时常量,在编译时无法确定值…...

android系统启动流程之SystemServer运行过程
SystemServer进程的启动流程:直接看代码: SystemServer是Java中的一个进程,执行入口是SystemServer.java.main(); SystemServer.java.main();-->new SystemServer().run();-->createSystemContext();//创建系统上下文:虽然SystemServe…...

Leetcode 1812。判断国际象棋棋盘中一个格子的颜色
国际棋盘问题: 给你一个坐标 coordinates ,它是一个字符串,表示国际象棋棋盘中一个格子的坐标。下图是国际象棋棋盘示意图。 如果所给格子的颜色是白色,请你返回 true,如果是黑色,请返回 false 。 给定坐标…...

9个python自动化脚本,PPT批量生成缩略图、添加图片、重命名
引言 最近一番在整理资料,之前买的PPT资源很大很多,但归类并不好,于是一番准备把这些PPT资源重新整理一下。统计了下,这些PPT资源大概有2000多个,一共30多G,一个一个手动整理这个投入产出比也太低了。 作为…...

计算机竞赛 基于大数据的社交平台数据爬虫舆情分析可视化系统
文章目录 0 前言1 课题背景2 实现效果**实现功能****可视化统计****web模块界面展示**3 LDA模型 4 情感分析方法**预处理**特征提取特征选择分类器选择实验 5 部分核心代码6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于大数据…...

基于Java的旅游信息推荐系统设计与实现,springboot+vue,MySQL数据库,前后端分离,完美运行,有三万字论文。
基于Java的旅游信息推荐系统设计与实现,springbootvue,MySQL数据库,前后端分离,完美运行,有三万字论文。 前台主要功能:登录注册、旅游新闻、景区信息、美食信息、旅游线路、现在留言、收藏、预定旅游线路…...

合宙Air724UG LuatOS-Air LVGL API控件--曲线 (Arc)
曲线 (Arc) 曲线控件,也可以称为弧。因为 Arc 本身就是弧,弧形的意思。根据控件的样子也能推测出它的使用场景,一般用在加载器(就是等待界面转的圈圈)或者数值显示,数值调节这些场景。曲线控件分了两个部分,前景和背…...

09-微信小程序 网络请求API(实现轮播广告和简易的聊天窗口)
09-微信小程序API网络请求(实现轮播广告和简易的聊天窗口) 文章目录 微信小程序API服务器域名配置注意网络相关APIrequestRequestTask 请求任务对象object.success 回调函数object.fail 回调函数案例代码(实现轮播图) WebSocket案例代码(实现…...

Visual Studio 2017安装和项目配置
目录 前言1. What、Why and How1.1 What1.2 Why1.3 How 2. 安装3. 创建新项目4. 配置OpenCV库4.1 下载opencv安装包4.2 配置系统环境变量4.3 VS项目环境配置4.4 总结 5. 已有项目添加6. Tips6.1 常用快捷键6.2 字体和颜色选择6.3 配置编译路径 结语下载链接参考 前言 最近因为项…...

【提升接口响应能力的最佳实践】常规操作篇
文章目录 1. 并行处理简要说明CompletableFuture是银弹吗?测试案例测试结论半异步,半同步总结 2. 最小化事务范围简要说明编程式事务模板 3. 缓存简要说明 4. 合理使用线程池简要说明使用场景线程池的创建参数的配置建议 线程池的监控线程池的资源隔离 5…...

Vue使用ffmpeg,报ReferenceError: SharedArrayBuffer is not defined 如何解决
“SharedArrayBuffer is not defined” 错误是因为在浏览器环境中,SharedArrayBuffer 对象被认为是一种潜在的安全风险。为了防止 Spectre 攻击等漏洞,现代浏览器通常会禁用或限制对 SharedArrayBuffer 的使用。 SharedArrayBuffer 是一种 JavaScript 对…...

【OpenCV实战】1.OpenCV环境搭建,Mac M1系统,C++开发环境
OpenCV环境搭建,Mac系统,C开发环境 一、步骤VSCode C环境安装运行CMake安装运行OpenCV 安装CMakeList 一、步骤 VSCode C环境安装CMake 安装OpenCV 安装CmakeList.txt VSCode C环境安装运行 访问官网 CMake安装运行 CMake官网 参考文档 OpenCV 安…...

Hyperf 如何做到用两个端口 9501/9502 都能连接 Websocket 服务以及多 Worker 协作实现聊天室功能
为何 Hyperf 能够在两个端口上监听 WebSocket 连接? 源码角度来看,在配置了多个 Servers 时,实际上,只启动了一个 Server 注:我之前接触的代码都是启动一个服务绑定一个端口,之前也看过 swoole 扩展的文档…...

网络映射会遇到哪些困难
网络映射通过将复杂的网络划分为更小、可管理的块,帮助 IT 管理员获得对其网络的更大控制和可见性,它有助于可视化不同的网络组件(如服务器、交换机端口和路由器)如何互连以执行其功能,通过表示网络设备的通信方式&…...