kubernetes - Ghost Drillbit(集群中的一个或多个钻头具有不同的版本:未定义。)
问题描述
我有一个 kubernetes 堆栈,安装了一些演习和 zookeeper。
3个钻头
1 动物园管理员
钻头彼此可见
从每个钻孔容器中都可以看到 zookeeper
但是,每当我导航到任何钻头:8047 时,我都会看到这个额外的“幽灵”钻头:
在这种情况下,没有任何查询有效——所有查询都将静默失败,没有错误,之后找不到配置文件
zookeeper 日志充满了这些错误:
WARN [NIOServerCxn.Factory:0.0.0.0/0.0.0.0:2181:NIOServerCnxn@349] - 捕获流异常 EndOfStreamException 结束:无法从客户端 sessionid 0x0 读取附加数据,可能客户端已关闭套接字
我做错了什么?
解决方案
最后我发现drill-override.conf
配置错误。
cluster-id
此错误是由我的配置中的空引起的:
drill.exec: {
cluster-id: "",
zk.connect: "my-zookeeper-host:2181",
...
那是因为我使用了变量的 env 传播:
drill.exec: {
cluster-id: "${DRILL_CLUSTER_NAME}",
zk.connect: "${ZOOKEEPER_HOST}:${ZOOKEEPER_PORT}",
...
---
envsubst < core-site.xml.template > ./conf/core-site.xml
...我在$DRILL_CLUSTER_NAME
变量中有一个错字。
我花了 3 天时间才找到它。血腥的三天。如果在这种情况下或其他什么情况下钻头抛出一些异常会很好吗?
好吧,也许这可以挽救一个人三天的生命……
推荐阅读
- php - How to select row from Database by ID only once
- python - Using __init__ in OOP
- ios - 在 PageTabViewStyle (SwiftUI 2.0) 或 PageViewController/PageView (带有 UIKit 界面) 上显示部分上一个和下一个项目
- javascript - 捕获 JavaScript 迭代器的返回值
- html - 我需要使用 json 文件中的代码作为 html 文件中 img 的 src
- reactjs - 如何在 React 中将所有道具传递到一个变量中?
- haskell - Valid-by-construction 表 UI 组件数据结构与合并的单元格
- ubuntu - mariadb.service 在重新安装 mariadb-server 后无法启动
- arrays - 为什么我的状态数组重置为空?
- python-3.x - 如何在最小化的 Windows 10 窗口中运行长 Python 脚本?