当前位置: 首页 > news >正文

ES7.17由于IP变化导致的故障及恢复

背景 

1. k8s 升级,导致环境中的ES集群(7.17版本)重启

2. 集群由于在公有云环境,IP不固定(重启后IP可能发生变化),通过 svc 进行访问

curl xxx-master-svc:9200/_cat/health

3. 由多个sts一起维护一个ES集群(非operator的模式)

xxx-masterxxx-ingestxxx-data

注:一般开源的ES,无论在虚拟机还是容器中部署,最佳实践还是固定IP;

4. 集群重启之后,状态变成了 red

分析

1. 初步发现是掉了2个节点(_cat/nodes),元信息还可以访问,总体表现为red

2. 发现data节点无法加入集群,新扩出来的节点也无法加入集群

    - 排除网络影响,节点之间都是通的

    - 无法加入的节点 local:9200/ 发现节点活着,但是 cluster_uuid: "_na_"(空)

    - 对节点进行 unsafe的 detach 操作,脱离集群,重启(依然无法加入集群)

3.  日志(异常的data节点)表现为 `master not discovered or elected yet, an election requires at least 2 nodes with ids from`,以及各种访问master超时;

日志中打印的IP地址是先有master节点的IP(不存在IP错误)

4. 发现data节点存在readinessProbe策略(sts),要求_cluster/health=yellow才可以存活,将其改成red,依然无法加入集群

5. data节点无法加入集群,这里尝试修改data节点的配置,强行指定master的地址。结果data节点重启后依然无法加入集群。

cluster.initial_master_nodes: "xxx-master-1, xxx-master-2, ..."

注:

## 为了保证安全,对sts进行如下操作,对sts管理的部分节点生效(此处表示 pod 编号大于等于2 的才会执行操作,如果要sts管理的全部节点生效,改成0即可,或者去掉该配置)updateStrategy:rollingUpdate:partition: 2
type: RollingUpdate

6. 发现“正常”节点(master/ingest)的_cat/nodes命令的结果中包含个别data节点

    - 反复确认过,在全部的data节点,都无法访问集群元信息(没加入集群)

    - 怀疑元数据异常,整个集群已经挂了(没有形成集群)

7. 节点无法形成集群,一般有2种方法

    - 方案1: (unsafe)detach

su elasticsearch -g root./bin/elasticsearch-node unsafe-bootstrap./bin/elasticsearch-node detach-cluster

    - 方案2: 对全部master候选节点的配置进行修改,重启,重新形成集群

Bootstrapping a cluster | Elasticsearch Guide [7.17] | Elastic

cluster.initial_master_nodes: "xxx-master-1, xxx-master-2, ..."

解决方案

使用上面描述的方案2;

具体流程如下:

1. (容器环境才需要考虑)修改 readinessProbe,_cluster/health 需要访问元数据信息,集群已经挂掉的情况下不合理(由于集群已经挂了,所以会一直阻塞),这里改成 check 9200 端口(只需要访问本地进程/端口)。

2. 修改master节点的 initial_master_nodes 配置,指定master节点的节点name列表。

注:容器环境中滚动重启即可,不需要同时重启

疑惑

1.  如果是滚动重启,即使IP发生变化,ES也可以感知到,除非是一次重启多个节点(修改多个IP),比如超过一半的master节点,那么无法形成集群(k8s升级工艺已经无法追溯......)

2.  如果短时间太多节点变化IP,无法形成集群,为什么有些节点可以访问元数据( _cat/health,_cat/nodes 等),而不是全部节点访问ES集群元数据都是503.

(可能极端情况触发了ES的bug,该现象对前期排障造成巨大干扰。)


 

相关文章:

ES7.17由于IP变化导致的故障及恢复

背景 1. k8s 升级,导致环境中的ES集群(7.17版本)重启 2. 集群由于在公有云环境,IP不固定(重启后IP可能发生变化),通过 svc 进行访问 curl xxx-master-svc:9200/_cat/health 3. 由多个sts一…...

uniapp H5 touchstart touchend 切换背景会失效,或者没用

uniapp H5 touchstart touchend 切换背景会失效&#xff0c;或者没用 直接上代码 &#xff08;使用 class 以及 hover-class来设置样式&#xff09; class 设置默认的背景图或者样式 hover-class 来设置按下的背景图 或者样式 抬起 按下 <view class"mp_zoom_siz…...

【word visio绘图】关闭visio两线交叉的跳线(跨线)

【visio绘图】关闭visio两线交叉的跳线&#xff08;跨线&#xff09; 1 如何在Visio绘图中关闭visio两线交叉的跳线&#xff08;跨线&#xff09;第一步&#xff1a;打开Visio并创建您的图形第二步&#xff1a;绘制您的连接线第三步&#xff1a;关闭跳线第四步&#xff1a;手动…...

meson、ninja编译dpdk

解压目录meson编译dpdk meson buildmeson编译dpdk debug版 meson setup --buildtypedebug debugbuildmeson编译使用静态库&#xff0c;编译example meson .. --prefix/usr/local --buildtypedebugoptimized --default-librarystatic -Dexamplesallninja编译 ninjaninja安装…...

diff命令详解

diff是Unix系统的一个很重要的工具程序。 它用来比较两个文本文件的差异&#xff0c;是代码版本管理的基石之一。你在命令行下&#xff0c;输入&#xff1a; $ diff < 变动前的文件 > < 变动后的文件 >; diff就会告诉你&#xff0c;这两个文件有何差异。它的显示结…...

Backtrader 文档学习- Broker - Slippage

Backtrader 文档学习- Broker - Slippage 1.概述 回测无法保证真实的市场条件。无论市场模拟有多好&#xff0c;在真实市场条件下都可能发生滑点。这意味着&#xff1a; 请求的价格可能无法与真实市场的价格匹配 集成的回测broker支持滑点。以下参数可以传递给broker &#…...

三子棋游戏小课堂

&#x1fa90;&#x1fa90;&#x1fa90;欢迎来到程序员餐厅&#x1f4ab;&#x1f4ab;&#x1f4ab; 今天的主菜是&#xff0c;C语言实现的三子棋小游戏&#xff0c; 所属专栏&#xff1a; C语言知识点 主厨的主页&#xff1a;Chef‘s blog 前言&…...

golang开源的可嵌入应用程序高性能的MQTT服务

golang开源的可嵌入应用程序高性能的MQTT服务 什么是MQTT&#xff1f; MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;是一种轻量级的、开放的消息传输协议&#xff0c;设计用于在低带宽、高延迟或不可靠的网络环境中进行通信。MQTT最初由IBM开发&#xf…...

uniapp微信小程序-请求二次封装(直接可用)

一、请求封装优点 代码重用性&#xff1a;通过封装请求&#xff0c;你可以在整个项目中重用相同的请求逻辑。这样一来&#xff0c;如果 API 发生变化或者需要进行优化&#xff0c;你只需在一个地方修改代码&#xff0c;而不是在每个使用这个请求的地方都进行修改。 可维护性&a…...

UE4 C++ 结构体

先在UCLASS()前写入&#xff1a; USTRUCT(BlueprintType) struct FMyStruct //必须以"F"开头 {GENERATED_BODY() //必须添加“GENERATED_BODY()”UPROPERTY(EditAnywhere, BlueprintReadWrite, Category "MyStruct1")int32 Health;UPROPERTY(EditAnywher…...

软件工程知识梳理0-概述

学好软件工程就必须理解软件工程到底是干什么的&#xff0c;为什么需要软件工程&#xff0c;以及怎么干的&#xff01;只有理解了软件工程的本质&#xff0c;才能更好的理解软件工程中各种工程手段和方法的目的。 个人开发模式 —> 小作坊开发模式 —> 软件工程开发模式 …...

贪吃蛇---C语言---详解

引言 C语言已经学了不短的时间的&#xff0c;这期间已经开始C和Python的学习&#xff0c;想给我的C语言收个尾&#xff0c;想起了小时候见过别人的老人机上的贪吃蛇游戏&#xff0c;自己父母的手机又没有这个游戏&#xff0c;当时成为了我的一大遗憾&#xff0c;这两天发现C语…...

Airflow原理浅析

⭐️ airflow基本原理 Apache Airflow 是一个开源的工作流自动化工具&#xff0c;它用于调度和管理复杂的数据工作流。Airflow 的原理基于有向无环图&#xff08;DAG&#xff09;的概念&#xff0c;它通过编写和组织任务的有向图来描述工作流程。 以下是 Apache Airflow 的一…...

uniapp 使用canvas 画海报,有手粘贴即可用

html部分 <view click"doposter">下载海报</view> <canvas canvas-id"myCanvas" type2d style"width: 370px; height: 550px;opcity:0;position: fixed;z-index:-1;" id"myCanvas" />js 部分 drawBackground() {c…...

Vite+Vue3+TS 引入使用Cesium.js

申请 Cesium Token 进入Cesium 注册账号 cesium 离谱的是 E宝 (Epic) 居然可以快捷登录&#xff1f;&#xff01; 登录后点击导航栏的 Access Token 再右侧即可看到默认Token 安装&引入 # Cesium pnpm pnpm install cesium# 如果项目同时存在Three.js 需避免使用pnpm T…...

Cocos creator 动作系统

动作系统简介 是用于控制物体运动的一套系统&#xff0c;完全依赖代码进行实现&#xff0c;动态调节节点的移动。 移动 cc.moveTo 移动到某个坐标&#xff08;x,y&#xff09; //1秒时间内&#xff0c;移动到0,0let action1 cc.moveTo(1,0,0)this.node.runAction(action1)c…...

对Spring当中AOP的理解

AOP(面向切面编程)全称Aspect Oriented Programminge AOP就是把系统中重复的代码抽取出来&#xff0c;单独开发&#xff0c;在系统需要时&#xff0c;使用动态代理技术&#xff0c;在不修改源码的基础上&#xff0c;将单独开发的功能通知织入(应用)到系统中的过程&#xff0c;完…...

【Vue】2-8、Axios 网络请求

cdn&#xff1a;<script src"https://unpkg.com/axios/dist/axios.min.js"></script> 注&#xff1a;使用 CDN 链接就可以不需要去下载对应的 js 文件到本地&#xff0c;只需要联网即可使用&#xff0c;可以减少项目的体积 <!DOCTYPE html> <…...

Vue中嵌入原生HTML页面

Vue中嵌入html页面并相互通信 需求&#xff1a;b2b支付需要从后获取到数据放到form表单提交跳转&#xff0c;如下&#xff1a; 但是vue目前暂时没找到有类似功能相关文档&#xff0c;所以我采用iframe嵌套的方式 1. Vue中嵌入Html <iframe src"/static/gateway.htm…...

streampark+flink一键整库或多表同步mysql到doris实战

streamparkflink一键整库或多表同步mysql到doris实战&#xff0c;此应用一旦推广起来&#xff0c;那么数据实时异构时&#xff0c;不仅可以减少对数据库的查询压力&#xff0c;还可以减少数据同步时的至少50%的成本&#xff0c;还可以减少30%的存储成本&#xff1b; streampar…...

C166链接器Error L101段冲突解决方案

1. 问题现象与背景解析当使用C166开发工具链进行项目链接时&#xff0c;开发者可能会遇到L166链接器报出的Error L101&#xff08;Section Combination Error&#xff09;。这个错误通常表现为链接过程中突然中断&#xff0c;并显示类似以下的错误信息&#xff1a;L166 LINKER …...

国产系统(UOS/麒麟/方德)截图工具终极指南:从内置工具到第三方替代方案全解析

国产操作系统截图工具全攻略&#xff1a;从基础操作到高阶玩法在数字化办公时代&#xff0c;截图功能已成为日常工作中不可或缺的生产力工具。对于统信UOS、麒麟KOS、方德NFS等国产操作系统的用户而言&#xff0c;掌握系统内置截图工具的各项功能&#xff0c;并了解当内置工具无…...

两个世界的同一种崩溃:从窗口黑屏到宇宙热寂的同构联想

一、两个世界的同一种崩溃 一段着色器代码中 cell.xy 的缩放因子从 9 被修改为 99。着色器随即呈现完全黑屏——既无报错信息&#xff0c;也无渲染异常&#xff0c;只有纯粹、彻底、连噪点都不存在的黑色。在屏幕的某个抽象维度上&#xff0c;发生了一件与理论物理学家在黑板上…...

手把手教你复现DM-VIO:用开源代码在Ubuntu 20.04上跑通这个SOTA视觉惯性里程计

从零搭建DM-VIO&#xff1a;Ubuntu 20.04实战指南与深度调优当视觉惯性里程计&#xff08;VIO&#xff09;遇上延迟边缘化技术&#xff0c;DM-VIO在三大主流数据集上创造了单目系统超越立体方案的奇迹。本文将带您穿越从环境配置到实战调优的全流程&#xff0c;揭秘这个2022年R…...

商业AI公司与国防部合作:吸引力、障碍与深层博弈

1. 商业AI公司与国防部合作&#xff1a;吸引力、障碍与深层博弈在硅谷的咖啡厅或波士顿的创业孵化器里&#xff0c;当一群AI公司的创始人或技术高管围坐讨论潜在客户时&#xff0c;“美国国防部”&#xff08;DoD&#xff09;这个名字的出现&#xff0c;往往会引发一阵复杂的沉…...

大模型从0训练LLaMA全流程实战——基于昇腾910B集群

用昇腾集群从零训练一个 LLaMA-7B,走完数据准备、代码修改、分布式配置、启动训练、监控调优的全流程。中间踩过的坑都标注在对应步骤里。 1. 硬件与环境确认(训练前必做) 训练大模型对环境的稳定性要求极高,任何一项不达标都可能导致训练中途崩溃。 #!/bin/bash # 训练前…...

LangGraph多智能体工作流:从线性执行到网状协作的重构

LangGraph多智能体工作流:从线性执行到网状协作的重构 1. 标题 (Title) 为了精准覆盖核心关键词、吸引不同层次的读者(AI应用开发者、LangChain进阶学习者、多智能体系统架构师),我准备了以下4个差异化标题: 《LangGraph 重塑AI协作:告别LangChain AgentExecutor的“单线…...

Windows 11系统级优化:ExplorerPatcher核心技术深度解析与专业修复方案

Windows 11系统级优化&#xff1a;ExplorerPatcher核心技术深度解析与专业修复方案 【免费下载链接】ExplorerPatcher This project aims to enhance the working environment on Windows 项目地址: https://gitcode.com/GitHub_Trending/ex/ExplorerPatcher Windows 11…...

有哪些真正好用的降AIGC软件?能同时符合论文规范和压低AIGC数值的那种

毕业季、投稿季最让人焦虑的&#xff0c;莫过于论文查重率高企、AIGC痕迹明显。反复修改、反复检测不仅耗时费力&#xff0c;还容易越改越混乱。2026年高校与期刊双重审核已成定局&#xff0c;用对工具才能事半功倍。真正好用的降AIGC软件&#xff0c;不仅能降低AI痕迹&#xf…...

Meta裁了8000人,员工拖着行李箱抢可乐

昨天凌晨4点&#xff0c;Meta很多员工的邮箱同时响了。是裁员邮件。这一次&#xff0c;Meta裁掉了全球约10%的员工&#xff0c;规模大约8000人。分手大礼包&#xff1a;16周基础薪资 每满1年工龄额外2周薪资 18个月全家医保。真正让硅谷炸锅的&#xff0c;反而是裁员前几天&a…...