INFINI Console 系统集群状态异常修复方案

背景介绍

运行 INFINI Console 1.29.0 和 1.29.1 版本 的用户在 新初始化 平台后可能会遇到一个特定问题。如果后台的系统 Easysearch/Elasticsearch 集群(存储 Console 元数据的集群,通常名为 .infini_cluster 或类似名称)包含超过一个节点的场景下, INFINI Console 会错误地报告系统集群健康状态异常(例如,显示为不可用)。

而对于已存在的历史集群不会发生,如果有以上情况,单纯升级并不能解决问题。可以尝试本文的解决方案。

这是这些版本在特定条件下(新初始化的、多节点的系统集群)的一种显示或状态检测上的问题。底层的 Easysearch/Elasticsearch 集群本身的健康状态通常是绿色 (green) 的。

下面我们提供了一个简单的变通方法来修正 INFINI Console 中显示的状态,通过 INFINI Console 自带的开发工具操作即可。

问题现象

  • INFINI Console UI 中"系统集群"的健康状态指示器显示为不可用。
  • 伴随的文本可能指示"异常"或不健康状态。
  • 直接检查 Easysearch/Elasticsearch 系统集群的健康状态(例如,通过 GET _cluster/health)显示 status: green
  • 此问题仅在 1.29.0 或 1.29.1 版本、新初始化 部署且系统 Easysearch/Elasticsearch 集群中有多个节点的情况下观察到。

解决方案

解决方法涉及更新 .infini_cluster 索引(如果您的系统集群索引名称不同,请相应调整)中的一个特定文档。该文档代表 Console 中的系统集群实体,我们需要手动将其健康状态标签设置正确。

命令:

bash 复制代码
POST /.infini_cluster/_update_by_query?conflicts=proceed
{
  "query": {
    "term": {
      "id": {
        "value": "infini_default_system_cluster"
      }
    }
  },
  "script": {
    "source": "ctx._source.labels = ['health_status': params.status]",
    "lang": "painless",
    "params": {
      "status": "green"
    }
  }
}

解释:

  1. POST /.infini_cluster/_update_by_query?conflicts=proceed : 针对 .infini_cluster 索引(如果您的系统集群索引名称不同,请调整)并使用 update-by-query API。conflicts=proceed 确保如果在查询和更新阶段之间文档被修改,操作将跳过该冲突文档而不是失败。
  2. query : 查找代表默认系统集群的特定文档,通过 id: "infini_default_system_cluster" 来识别(如果您使用了自定义名称,请确认此 ID)。
  3. script : 这是执行更新的核心部分。
    • source: "ctx._source.labels = ['health_status': params.status]" : 关键之处 ,这行代码尝试设置或覆盖 一个名为 labels 的字段,其值为一个仅包含 health_status 键的 Map,该键的值来自 params.status
    • lang: "painless": 指定脚本语言为 Painless。
    • params: { "status": "green" }: 将所需状态("green")安全地传递给脚本。

修复后验证

成功运行 _update_by_query 命令后:

  1. 稍等片刻,让可能的缓存失效。
  2. 刷新 INFINI Console 网页界面。
  3. 系统集群状态指示器现在应该正确显示为绿色(或正常)。

结论

这个变通方法解决了 INFINI Console 1.29.0 和 1.29.1 版本中,针对新初始化的多节点设置,系统集群状态显示不正确的特定表面问题。通过使用 _update_by_query 手动更新相关文档,您可以在 Console UI 中恢复正确的状态显示。如果初始命令未产生预期结果,请记得验证确切的字段名(labels.health_status)。此问题已在最新发布的 INFINI Console 1.29.2 版本中进行了修复。

相关推荐
李少兄2 小时前
Kubernetes 日志管理
docker·容器·kubernetes
秋饼2 小时前
【K8S测试程序--git地址】
git·容器·kubernetes
oMcLin2 小时前
如何在RHEL 9上配置并优化Kubernetes 1.23高可用集群,提升大规模容器化应用的自动化部署与管理?
kubernetes·自动化·php
ghostwritten2 小时前
Kubernetes 网络模式深入解析?
网络·容器·kubernetes
原神启动13 小时前
K8S(七)—— Kubernetes Pod 基础概念与实战配置
云原生·容器·kubernetes
不想画图4 小时前
Kubernetes(五)——rancher部署和Pod详解
linux·kubernetes·rancher
大都督老师4 小时前
配置 containerd 使用镜像加速器拉取 Docker Hub 镜像
容器·kubernetes·k8s
木童66214 小时前
Kubernetes 操作管理完全指南:从陈述式到声明式,覆盖全生命周期
云原生·容器·kubernetes
不想画图15 小时前
Kubernetes(三)——组网概念和基础操作指令
云原生·容器·kubernetes
weixin_4624462318 小时前
K8s 集群部署基础:Linux 三节点 SSH 互信(免密登录)配置指南
linux·kubernetes·ssh