AWS EKS部署Elasticsearch出现readiness probe failed错误如何解决?
问题归属
该问题属于配置不匹配导致的错误,既不是Elasticsearch原生故障,也不是Kubernetes平台自身故障,是修改Elasticsearch SSL配置后未同步调整就绪探针逻辑导致的。
根因分析
curl返回码35的定义是SSL/TLS握手失败。你在部署配置中显式关闭了Elasticsearch HTTP层的SSL(xpack.security.http.ssl.enabled: false),但保留的ECK默认就绪探针脚本默认使用HTTPS协议访问Elasticsearch 9200端口,请求与端口协议不匹配就会触发握手失败报错。此时Elasticsearch集群本身已经正常运行(日志明确显示集群状态切换为GREEN),仅因为K8s就绪探针检测失败,导致Pod被标记为未就绪状态。
解决方案
任选以下一种方案操作即可:
- 方案1:删除自定义就绪探针配置
直接删除yaml中containers.elasticsearch下的readinessProbe整段配置,ECK Operator会自动根据你设置的xpack.security.http.ssl.enabled参数适配探针的请求协议,无需额外配置即可正常检测。 - 方案2:修改探针适配HTTP协议
如果你需要保留自定义就绪探针对超时等参数的配置,可以给Elasticsearch容器新增环境变量,指定探针使用HTTP协议:env: - name: READINESS_PROBE_TIMEOUT value: "30" # 新增以下环境变量 - name: PROBE_PROTOCOL value: "HTTP"
修改配置后重新Apply yaml即可恢复正常。
内容的提问来源于stack exchange,提问作者Joey Yi Zhao
相关产品推荐
相关产品推荐

