You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安装Kibana后EKS集群ElasticSearch就绪探针失败求助

问题分析与解决:EKS中安装Kibana后ElasticSearch就绪探针失败

在EKS集群中安装Kibana后,ElasticSearch Pod立即出现如下错误:

"Readiness probe failed: Waiting for elasticsearch cluster to become ready (request params: "wait_for_status=green&timeout=1s" )

    Cluster is not yet ready (request params: "wait_for_status=green&timeout=1s" )"

安装方式如下:
ElasticSearch安装:

helm install elasticsearch elastic/elasticsearch -f elasticsearch/values.yaml

elasticsearch/values.yaml内容:

# Shrink default JVM heap.
esJavaOpts: "-Xmx128m -Xms128m"

# Allocate smaller chunks of memory per pod.
resources:
  requests:
    cpu: "100m"
    memory: "512M"
  limits:
    cpu: "1000m"
    memory: "512M"
# Request smaller persistent volumes.
volumeClaimTemplate:
  accessModes: [ "ReadWriteOnce" ]
  storageClassName: "gp2"
  resources:
    requests:
      storage: 100M

Kibana安装:

helm install kibana elastic/kibana

主要使用Helm Chart默认配置,安装Kibana后ElasticSearch故障,同时Kibana Pod就绪状态显示0/1,返回Http响应000而非预期的200,推测由ElasticSearch故障导致。


核心原因分析

  • ElasticSearch资源配置严重不足:配置的JVM堆内存仅128M,远低于官方最小推荐值(至少512M),且Pod总内存仅512M,减去堆内存后留给ES非堆内存(Lucene缓存、网络处理等)的空间不足,导致ES无法完成集群初始化,无法达到green状态。
  • Kibana默认请求加重ES负载:Kibana部署后会立即连接ES并初始化专属索引,此时ES本身资源不足,无法处理额外请求,进一步拖慢集群启动流程。
  • 就绪探针超时设置过短:默认1秒的超时时间,在ES资源不足的场景下,集群状态检查的响应时间会超过阈值,触发探针失败。

解决步骤

1. 调整ElasticSearch资源配置

修改elasticsearch/values.yaml,提升资源分配:

# 调整JVM堆内存至合理值,建议为Pod内存的一半(不超过32G)
esJavaOpts: "-Xmx256m -Xms256m"

# 提升Pod内存资源,给ES足够运行空间
resources:
  requests:
    cpu: "200m"
    memory: "1G"
  limits:
    cpu: "1000m"
    memory: "1G"

# 增加存储容量,避免空间不足影响ES运行
volumeClaimTemplate:
  accessModes: [ "ReadWriteOnce" ]
  storageClassName: "gp2"
  resources:
    requests:
      storage: 1G

重新部署ES:

helm upgrade elasticsearch elastic/elasticsearch -f elasticsearch/values.yaml

2. 调整就绪探针参数

在elasticsearch/values.yaml中添加探针配置,延长超时和等待时间:

readinessProbe:
  failureThreshold: 10
  initialDelaySeconds: 30
  periodSeconds: 10
  successThreshold: 3
  timeoutSeconds: 5

给ES足够的初始化时间,避免探针误判。

3. 等待ES集群稳定后部署Kibana

先确认ES集群状态变为green:

kubectl exec -it elasticsearch-0 -- curl -s http://localhost:9200/_cluster/health | jq '.status'

返回"green"后再部署Kibana:

helm install kibana elastic/kibana

4. 验证Kibana状态

检查Pod就绪状态:

kubectl get pods -l app=kibana

就绪状态变为1/1后,通过端口转发验证服务:

kubectl port-forward svc/kibana 5601:5601

访问http://localhost:5601确认服务正常。


内容的提问来源于stack exchange,提问作者Rad4

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 06:40:47