Tag: 马拉松

无法连接到cassandra群集,但可以连接到单个节点?

在尝试将外部Play应用程序连接到cassandra群集(在mesos上运行在docker容器上)时,我正面临着一些奇怪的情况。 问题是: 如果我只有一个Cassandra节点,我可以从Play应用程序正确连接到它。 但是,如果我添加第二个节点,我不能连接到任何节点了。 我正在把节点如下所示: 第一个节点(SEED) { "id": "cassandra-seed", "constraints": [["hostname", "CLUSTER", "docker-sl-vm"]], "container": { "type": "DOCKER", "docker": { "image": "cassandra:latest", "network": "BRIDGE", "portMappings": [ {"containerPort": 9042,"protocol": "tcp"} ] } }, "env": { "CASSANDRA_SEED_COUNT": "1" }, "cpus": 0.5, "mem": 512.0, "instances": 1, "backoffSeconds": 1, "backoffFactor": 1.15, "maxLaunchDelaySeconds": 3600 } 在这一点上,我能够连接好玩的应用程序和卡桑德拉种子。 CASSANDRA NODE2 { "id": "cassandra", […]

Apache Mesos,MESOS-DNS,MARATHON和Docker

在我的环境中,以独立模式运行mesos-slave,mesos-master marathon和mesos-dns。 我部署的MySQL应用程序马拉松作为docker集装箱运行。 MySql的应用程序configuration如下。 { "id": "mysql", "cpus": 0.5, "mem": 512, "instances": 1, "container": { "type": "DOCKER", "docker": { "image": "mysql:5.6.27", "network": "BRIDGE", "portMappings": [ { "containerPort": 3306, "hostPort": 32000, "protocol": "tcp" } ] } }, "constraints": [ [ "hostname", "UNIQUE" ]], "env": { "MYSQL_ROOT_PASSWORD": "password" }, "minimumHealthCapacity" :0, "maximumOverCapacity" : 0.0 } 然后我部署应用程序称为MySQL客户端。 Mysql客户端应用程序需要连接到MySQL应用程序。 […]

在Docker中运行jenkins的权限错误使用马拉松和mesos的持久卷

我试图让jenkins在docker里面运行马拉松和mesos午餐jenkinsdocker形象。 我用创build应用程序button,产生以下json { "type": "DOCKER", "volumes": [ { "containerPath": "/var/jenkins_home", "hostPath": "jenkins_home", "mode": "RW" }, { "containerPath": "jenkins_home", "mode": "RW", "persistent": { "size": 200 } } ], "docker": { "image": "jenkins", "network": "HOST", "privileged": false, "parameters": [], "forcePullImage": false } } 标准输出显示 –container="mesos-c8bd5b26-6e71-4e18-b490-821dbf7edd9d-S0.ac0b4dbb-10e4-4684-a4df-9539258d77ee" –docker="docker" –docker_socket="/var/run/docker.sock" –help="false" –initialize_driver_logging="true" –launcher_dir="/home/ajazam/mesos-0.28.0/build/src" –logbufsecs="0" –logging_level="INFO" –mapped_directory="/mnt/mesos/sandbox" –quiet="false" –sandbox_directory="/var/lib/mesos/data/slaves/c8bd5b26-6e71-4e18-b490-821dbf7edd9d-S0/frameworks/6079a596-90a8-4fa5-9c92-9215558737d1-0000/executors/jenkins-t7.9be44260-f99c-11e5-b0ac-e4115bb26fcc/runs/ac0b4dbb-10e4-4684-a4df-9539258d77ee" –stop_timeout="0ns" Registered […]

不能启动SonarQubedocker容器通过马拉松与端口映射

我试图运行sonarqubedocker容器与端口映射暴露在9050 ui而不是默认9000.这个命令工作正常: docker运行-d –name sonarqube -p 9050:9000 -p 9092:9092 sonarqube 但通过马拉松发生以下错误: 2016.05.23 12:12:40 ERROR web [oaccC [。[。[/]]将上下文初始化事件发送到类的监听器实例org.sonar.server.platform.PlatformServletContextListener org.elasticsearch.client.transport.NoNodeAvailableException:None的configuration节点可用:[]在org.elasticsearch.client.transport.TransportClientNodesService.ensureNodesAreAvailable(TransportClientNodesService.java:305)〜[elasticsearch-1.7.5.jar:na] { "id": "/sonarqube", "cmd": null, "cpus": 1, "mem": 500, "disk": 800, "instances": 0, "container": { "type": "DOCKER", "volumes": [], "docker": { "image": "sonarqube", "network": "BRIDGE", "portMappings": [ { "containerPort": 9000, "hostPort": 9050, "servicePort": 10105, "protocol": "tcp", "labels": […]

apache马拉松:我的docker形象保持失败

我按照这里的步骤 我已经创build了一个json文件: { "id": "/myjavabuild-2", "cmd": null, "cpus": 1, "mem": 1024, "disk": 0, "instances": 1, "container": { "type": "DOCKER", "volumes": [], "docker": { "image": "hub.docker.com/eugenepark3/myjavabuild", "network": "HOST", "privileged": false, "parameters": [], "forcePullImage": false } }, "portDefinitions": [ { "port": 10001, "protocol": "tcp", "labels": {} } ], "uris": [ "file:///etc/docker.tar.gz" ], "fetch": [ { "uri": "file:///etc/docker.tar.gz", […]

当使用mesos,marathon和zookeeper时,我使用“docker,mesos”指定“containerizers”文件时,我的mesos-slave不会启动?

我有3个CentOS虚拟机,我在主节点上安装了Zookeeper,Marathon和Mesos,而只把Mesos放在其他2个虚拟机上。 主节点上没有运行mesos-slave。 我试图运行Docker容器,所以我在containerizes文件中指定了"docker,mesos" 。 其中一个mesos代理启动罚款与此configuration,我已经能够部署一个容器到该奴隶。 但是,第二个mesos代理简单地失败,当我有这个configuration(它工作,如果我拿出containerizes文件,但它不运行容器)。 以下是一些已经出现的日志和信息: 以下是日志目录中的一些“消息”: Apr 26 16:09:12 centos-minion-3 systemd: Started Mesos Slave. Apr 26 16:09:12 centos-minion-3 systemd: Starting Mesos Slave… WARNING: Logging before InitGoogleLogging() is written to STDERR [main.cpp:243] Build: 2017-04-12 16:39:09 by centos [main.cpp:244] Version: 1.2.0 [main.cpp:247] Git tag: 1.2.0 [main.cpp:251] Git SHA: de306b5786de3c221bae1457c6f2ccaeb38eef9f [logging.cpp:194] INFO level logging started! [systemd.cpp:238] […]

坚持dynamicElasticsearch集群节点数据的策略

对不起,这可能是一个广泛的问题,但我没有find解决schemeforms这个问题呢。 我尝试通过使用Docker容器的Marathon在Mesos上运行Elasticsearch集群。 因此,我构build了一个可以在Marathon上启动的Docker镜像 ,并通过前端或APIdynamic扩展。 这对testing设置非常有用,但问题仍然是如何保持数据,以便如果集群缩小(我知道这也是关于索引configuration本身)或停止,并且希望稍后重新启动(或者按比例放大)与相同的数据。 问题是,马拉松决定运行节点的位置(在哪个Mesos Slave上),所以从我的angular度来看,如果所有的数据在重新启动的时候都可用于“新”节点, Docker主机通过Docker卷。 我唯一想到的是: 使用像HDFS或NFS这样的分布式文件系统,在Docker主机或Docker映像上装载已安装的卷。 但是,如果“旧”群集有8个节点,新群集只有4个,那么在新的群集启动过程中,如何加载所有数据就成了问题。 使用Elasticsearch的Snapshot API将其保存到networking中的某个公共驱动器。 我认为这将有性能惩罚… 有没有其他办法来解决这个问题? 有什么build议吗? 不幸的是,我没有find关于这种话题的好资源。 非常感谢。

如何在Marathon Docker参数中使用variables

我正在使用Marathon来运行Docker容器,并试图将该容器的DNS服务器设置为指向本地主机上的Consul代理。 在容器内部,Marathon / Mesos正在设置环境variables(可以在“args”中使用),但是我需要从站的IP地址传递给–dns上的–dns选项。 例如,这不起作用,因为HOSTvariables不能被parsing: { "id": "demo", "cmd": "python3 -m http.server 8080", "cpus": 0.5, "mem": 64.0, "instances": 2, "container": { "type": "DOCKER", "docker": { "image": "python:3", "network": "BRIDGE", "parameters": [{ "key": "dns", "value": "$HOST" }], "portMappings": [{ "containerPort": 8080, "hostPort": 0, "protocol": "tcp" }] } }, } 我试过使用一个Mesos奴隶可以访问的环境variables,但似乎也没有工作。 有什么build议么?

在Mesos群集上设置Mesos-DNS dockerized

我遇到了一些麻烦,试图在mesos群集上运行mesos-dns dockerized。 我已经在Windows 8.1主机上安装了2台可信赖的虚拟机。 我的VM被称为docker-vm和docker-sl-vm ; 第一个运行mesos-master,第二个运行mesos-slave。 虚拟机有2个网卡, 一台运行NAT,通过主机访问互联网,另外一台是用于内部通信的主机专用适配器。 虚拟机的IP是: docker-vm的 192.168.56.101 docker-sl-vm的 192.168.56.102 MESOS集群正在运行好的。 我正在试图按照这个教程 。 所以,我正在用下面的马拉松描述运行mesos-dns : { "args": [ "/mesos-dns", "-config=/config.json" ], "container": { "docker": { "image": "mesosphere/mesos-dns", "network": "HOST" }, "type": "DOCKER", "volumes": [ { "containerPath": "/config.json", "hostPath": "/usr/local/mesos-dns/config.json", "mode": "RO" } ] }, "cpus": 0.5, "mem": 256, "id": "mesos-dns", "instances": […]

Mesos Marathon Docker容器 – CommandInfo

最近,我在几个节点上安装了Marathon,Mesos和Docker。 一切工作正常,除了我遇到一个问题时,启动Docker容器。 特别是,当Marathon执行一个启动Docker容器的任务时,marathon会追加/bin/sh -c ' '作为默认的Docker命令。 这导致我的容器启动,然后立即退出(我可以看到他们使用docker ps -a ) 我看了一下Mesos文档,其中指出: Docker镜像当前支持有入口点和/或默认命令。 要使用默认命令(即:docker run image)运行docker镜像,不能设置CommandInfo的值。 如果该值被设置,那么它将覆盖默认命令。 要运行定义了入口点的Docker镜像,CommandInfo的shell选项必须设置为false。 如果将shell选项设置为true,则Docker Containerizer将运行用/ bin / sh -c打包的用户命令,该命令也将成为映像入口点的参数。 这是很好的信息(我看到Mesos的预期行为),但是在Marathon中没有看到closuresCommandInfo shell的选项。 我的问题是: 如何将CommandInfo Shell选项(在Marathon或Mesos中)设置为false? 哪里需要设置? 当我在机器上运行我的ghost-blog-test镜像(使用标准/entrypoint.sh npm s docker run命令)时,它使用/entrypoint.sh npm s作为默认命令。 我想在使用Mesos + Marathon的时候也是这样。 提前致谢!