我使用mesos和马拉松来部署一个Kibana 4容器。
{
"id": "/org/products/kibana/webapp",
"instances": 1,
"cpus": 1,
"mem": 768,
"uris": [],
"constraints": [
["hostname", "UNIQUE"]
],
"upgradeStrategy": {
"minimumHealthCapacity": 0.5
},
"healthChecks": [
{
"protocol": "HTTP",
"path": "/",
"portIndex": 0,
"initialDelaySeconds": 600,
"gracePeriodSeconds": 10,
"intervalSeconds": 30,
"timeoutSeconds": 120,
"maxConsecutiveFailures": 10
}
],
"env": {
"ES_HOST":"172.23.10.23",
"ES_PORT":"9200"
},
"container": {
"type": "DOCKER",
"docker": {
"image": "myregistry.local.com:5000/org/kibana:4.0.0",
"network": "BRIDGE",
"portMappings": [
{
"containerPort": 5601,
"hostPort": 0,
"servicePort": 50061,
"protocol": "tcp"
}
]
},
"volumes": [
{
"containerPath": "/etc/localtime",
"hostPath": "/etc/localtime",
"mode": "RO"
}
]
}
}但是当我发布它时,kibana应用程序永远不会醒来,stderr日志是:
I0227 12:22:44.666357 1149 exec.cpp:132] Version: 0.21.1
I0227 12:22:44.669059 1178 exec.cpp:206] Executor registered on slave 20150225-040104-1124079532-5050-952-S0
/kibana/src/index.js:58
throw error;
^
Error: listen EADDRNOTAVAIL
at errnoException (net.js:905:11)
at Server._listen2 (net.js:1024:19)
at listen (net.js:1065:10)
at net.js:1147:9
at asyncCallback (dns.js:68:16)
at Object.onanswer [as oncomplete] (dns.js:121:9)之后,我尝试消除端口映射,因为我发现了一些指示端口或网络配置问题的引用。然后,我的Kibana 4网络应用程序醒了,但我需要配置一个端口映射,以访问通过HTTP。我不知道为什么网络和portMappings配置会出现问题。我们会感谢你的帮助。
发布于 2015-03-02 14:40:06
这是一个棘手的问题,我也遇到了(在Mesos +马拉松上运行Kibana 4)。
简短的回答:
如果您使用Kibana存储库的当前母版,则不会发生这种情况--相关代码在编写本报告时的4.1.0快照中发生了更改。
长篇大论:
4.0.0在src/server/index.js中有这段代码
var port = parseInt(process.env.PORT, 10) || config.port || 3000;
var host = process.env.HOST || config.host || '127.0.0.1';默认情况下,马拉松提供HOST和POST环境变量,HOST变量被设置为Mesos从服务器的主机名。上面的代码使Kibana尝试绑定到Mesos从站的IP地址(马拉松将其放置在HOST中),这将失败,因为它在一个Docker容器中运行。
如果要运行4.0.0,只需将这些行修补为:
var port = config.port || 3000;
var host = config.host || '127.0.0.1';目前的代码看起来像这样的主人。
https://stackoverflow.com/questions/28771033
复制相似问题