我处于这种情况下,我有两个主人和四个奴隶在mesos.所有这些都运行良好.但是当我试图访问马拉松时,我得到了" 无法确定当前领导者 "的错误.我在两位大师(117和115)都参加了马拉松比赛.这基本上就是我跑马拉松的原因:
java -jar ./bin/../target/marathon-assembly-0.11.0-SNAPSHOT.jar --master 172.16.50.117:5050 --zk zk://172.16.50.115:2181,172.16.50.117:2181/marathon
Run Code Online (Sandbox Code Playgroud)
谁能对此有所了解?
我正在尝试在我的基础设施上启动rstudio.
如果我做 :
sudo docker run -d -p 8787:8787 192.168.0.38:5000/rocker/rstudio
Run Code Online (Sandbox Code Playgroud)
然后我的rstudio在我的服务器上正常运行.但我有mesos和马拉松,并希望用这个docker命令制作一个Marathon的应用程序.
我找不到正确映射端口的方法.
我试过了 :
{
"type": "DOCKER",
"volumes": [],
"docker": {
"image": "192.168.0.38:5000/rocker/rstudio",
"network": "HOST",
"privileged": true,
"parameters": [
{
"key": "p",
"value": "8787:8787"
}
],
"forcePullImage": true
}
}
Run Code Online (Sandbox Code Playgroud)
跳跃我会工作,但它永远不会开始.
我试过了:
{
"type": "DOCKER",
"volumes": [],
"docker": {
"image": "192.168.0.38:5000/rocker/rstudio",
"network": "HOST",
"portMappings": [
{
"containerPort": 8787,
"hostPort": 8787,
"servicePort": 10003,
"protocol": "tcp"
}
],
"privileged": true,
"parameters": [],
"forcePullImage": true
}
}
Run Code Online (Sandbox Code Playgroud)
哪个不是更好.
你建议我转换这个工作的docker命令哪个json:
sudo docker run -d …
Run Code Online (Sandbox Code Playgroud) 我使用以下配置在DC/OS上部署了服务
当我访问此地址(http://eureka.marathon.l4lb.thisdcos.directory:8761/)时,它表示无法访问该站点,尽管我的仪表板上的所有服务都是健康的.
如何访问服务的公共IP?
我不知道它是否相关,但当我查看我的公共奴隶的负载均衡配置时,我得到了 0 of 2 instances in service
我正在使用Marathon启动并运行Mesos群集(1个Master和2个Slave).我使用docker作为Mesos/Marathon中的容器.我有一个卡拉夫码头将在马拉松作为集群发射.我打算使用Cellar of Fabric作为Karaf的聚类解决方案.我的问题是
由于我在Marathon中使用随机端口映射,我不知道如何让Hazel-cast的自动发现工作.使用随机从站上的随机docker实例.任何建议或解决方案/方法
使用保险丝面料代替酒窖可以轻松实现这一点 - 我对此完全失明.请提供一些关于Karaf的链接/见解
提前致谢
我正在使用Mesos和Marathon来管理应用程序部署,并在Marathon https://github.com/mesosphere/marathon/issues/3783中遇到了这个错误,也就是说部署期间的领导者选举会扩展实例领导选举经常发生(大约每30分钟一次),所以我经常会遇到这个问题.
我知道每30分钟一次是非常不规律的,因为我已经升级到Marathon 1.3.10并且过去2天没有选举,但是多久一次是"正常"?领导人退位/选举是否在正常情况下发生,或者除非存在潜在问题,否则我应该期待0次选举?一位同事向我建议"领导人选举是正常的","一定数量的选举是正常的,也是可以预期的".我只是不相信,并且想肯定地知道.
我有Mesos集群由3台CentOS6.5机器组成.
ZooKeeper和Mesos-Master在其中一台机器上运行,Mesos-Slave在每台机器上运行.
此外,Marathon正在主节点上运行.
然后,我按照 Mesosphere的指示,尝试在Marathon上运行docker容器.
job.json
如下,
{
"container": {
"type": "DOCKER",
"docker": {
"image": "libmesos/ubuntu"
}
},
"id": "ubuntu",
"instances": 1,
"cpus": 0.5,
"mem": 512,
"uris": [],
"cmd": "date -u +%T"
}
Run Code Online (Sandbox Code Playgroud)
然后我运行以下命令,
curl -X POST -H "Accept: application/json" -H "Content-Type: application/json" <master-hostname>:8080/v2/apps -d@job.json
Run Code Online (Sandbox Code Playgroud)
然后在Marathon Web UI上,我可以看到Docker容器即使在很长一段时间后也处于"部署"状态.
在Mesos-Master Web UI上,我可以看到任务在很长一段时间后处于"STAGING"状态.
在Sandbox窗格中,我可以看到stdout,命令似乎已完成successfly.没问题.
stderr是这样的,
I0416 19:19:49.254998 29178 exec.cpp:132] Version: 0.22.0
I0416 19:19:49.257824 29193 exec.cpp:206] Executor registered on slave 20150416-160950-109643786-5050-30728-S0
Run Code Online (Sandbox Code Playgroud)
stdout是这样的,
Registered executor on master-hostname
10:19:49
Run Code Online (Sandbox Code Playgroud)
但我希望容器(TASK)在完成命令后完成. 可能吗? 如果可能,怎么做? …
我正在尝试 Dockerizing Zookeeper/Marathon/Mesos 并从Dockerized Mesos 集群部署 Docker 容器的(可能是愚蠢的)任务。
到目前为止,我在两个物理上独立的节点上有一个工作 Mesos 集群:一个节点同时运行 Mesos主节点和从节点(容器 Dockerfiles 链接),第二个节点仅运行一个从节点。它们似乎运行良好;我能够通过 Marathon(也是它自己的容器,在主节点和从节点上运行)提交非常简单的作业,并且它们成功完成。
但是,当我尝试通过 Marathon API 提交 Docker 容器时,它似乎挂起。Marathon 界面在“部署”时挂起并且永远不会改变,即使在让它静置 15 分钟、停止、重新提交并让它再静置 15 分钟之后也是如此。
与此同时,任务仍然被提交给 Mesos 奴隶;Mesos UI 左右报告失败的任务。
编辑 1
每个执行程序的结果沙箱日志也完全是空的。
编辑 2
在奴隶日志中发现了一些有趣的东西:
兴趣线:
启用的容器化程序 (mesos) 都无法为提供的 TaskInfo/ExecutorInfo 消息创建容器。
看起来容器化器无法运行,据我所知,它甚至没有将 docker 视为容器化器。我按照这里的配置来部署 Docker 作业;如果 Mesos slaves 本身是 Docker 容器,这会改变吗?
我有点不合时宜,在这些方面找不到任何参考资料。知道发生了什么吗?
我看了DCOS的介绍视频.这很好,但在Mesosphere的组件定义分类方面让我有点困惑.
我认为DCOS是一个生态系统,Mesos就像一个内核.如果我错了,请纠正我.例如.这就像我认为的Ubuntu和Linux内核.
什么是马拉松?它是一种服务或框架,还是属于其他任何类别的东西?在Mesosphere的上下文中,我在服务与框架与应用程序与任务定义方面有点混淆.
他在视频中发布的服务(Cassandra,HDFS,Kubernetes等)是否可以安全地称为框架?
从3开始,这些"服务"是奴隶中的执行者吗?
rails-app的类型应该在这里?这是一项任务吗?那么它还会有一个遗嘱执行人吗?
当他使用马拉松增加流量时,谁决定将rails-app自动扩展到更多节点.
我有问题在mesos,marathon中的一个IP地址上启动redis服务器.
我的步骤
现在我想给我的开发人员一个地址IP,他们可以使用redis服务器(我不想现在给他们192.168.18.21:31822并在故障转移后例如192.168.18.22:23124).我需要一些代理服务器如何自动检查实际的redis IP和端口.
我尝试使用竹子项目,但它适用于端口80 - 我不知道它使用竹子与redis服务器的可能性 - 我找不到如何重定向31822(在我的情况下,在码头工人容器中的redis端口)的信息,例如IP 192.168.18.10:6739(地址IP 192.168.18.10这是我的开发人员redis服务器)
谁能帮我?什么是问题的最佳解决方案?我应该使用什么样的代理服务器/实例/应用程序?
我在 mesos/marathon 上运行 docker 容器。我想实现健康检查,基本上是想运行一个健康检查脚本。我的问题是,健康检查命令是在容器本身上运行还是在从站上运行?它可能是容器级别,因为这是每个应用程序运行状况检查,所以很明显,但我想确认一下。没有找到任何说明它在哪里运行的相关文档。
谢谢
我确实尝试通过命令对 /tmp/testfile 进行回显,我在从站上看到了该命令。这意味着它在奴隶上运行?只需要确认。任何更多信息都是有用的
marathon ×10
mesos ×9
docker ×4
mesosphere ×4
dcos ×2
fusefabric ×1
karaf ×1
proxy ×1
redis ×1