Tag: mesos

put_archive与python马拉松docker应用程序?

我猜想,我想要做的是不可能的devise,但certificate我错了。 对于我们的一个后端,我们使用python marathon客户端来pipe理mesos群集上的docker容器。 我想要做的是一旦它启动,dynamic添加一个文件到docker容器。 使用普通的docker客户端,我会做这样的事情: def create_archive(file_contents, file_name): """ doc """ tarstream = io.BytesIO() with tarfile.open(fileobj=tarstream, mode='w') as tarfile_: encoded_file_contents = file_contents.encode('utf8') tarinfo = tarfile.TarInfo(file_name) tarinfo.size = len(encoded_file_contents) tarinfo.mtime = time.time() tarfile_.addfile(tarinfo, io.BytesIO(encoded_file_contents)) logger.info("[+] Successfully created tarfile {}".format(file_name)) # We're at the end of the tarstream, go back to the beginning. return tarstream.seek(0) def add_docker_archive(docker_client, […]

如何启用Spark-Mesos作业从Docker容器中启动?

概要: 是否有可能从一个Docker容器内的Mesos上提交一个Spark作业,这个容器有一个Mesos master(没有Zookeeper)和一个Mesos代理,每个都在单独的Docker容器中运行(现在在同一台主机上)? 在http://mesos.apache.org/documentation/latest/container-image/中描述的Mesos Containerizer似乎适用于Mesos应用程序简单地封装在Docker容器中并运行的情况。 我的Docker应用程序更具交互性,在运行时基于用户input实例化多个PySpark Mesos作业。 Docker容器中的驱动程序本身不是作为Mesos应用程序运行的。 只有用户发起的作业请求被作为PySpark Mesos应用程序处理。 具体细节: 我有3个基于centos:7 linux的Docker容器,现在在同一台主机上运行: 运行Mesos Master的容器“Master”。 运行Mesos Agent的容器“Agent”。 使用Spark和Mesos安装容器“testing”,在其中运行bash shell并从命令行启动以下PySparktesting程序。 from pyspark import SparkContext, SparkConf from operator import add # Configure Spark sp_conf = SparkConf() sp_conf.setAppName("spark_test") sp_conf.set("spark.scheduler.mode", "FAIR") sp_conf.set("spark.dynamicAllocation.enabled", "false") sp_conf.set("spark.driver.memory", "500m") sp_conf.set("spark.executor.memory", "500m") sp_conf.set("spark.executor.cores", 1) sp_conf.set("spark.cores.max", 1) sp_conf.set("spark.mesos.executor.home", "/usr/local/spark-2.1.0") sp_conf.set("spark.executor.uri", "file://usr/local/spark-2.1.0-bin-without-hadoop.tgz") sc = SparkContext(conf=sp_conf) # […]

DCOS本地Universe如何处理包使用的docker资源?

我有DCOS安​​装在没有互联网访问的防火墙后面。 我希望能够将软件包安装到集群中(例如Kafka),所以我已经使用这里的说明构build了一个本地的Universe。 当我构build本地Universe(从具有互联网访问权的计算机并通过克隆Github上的Universe回购)时,我看到该脚本导致下载资源( resource.json文件中定义的URL资源以及docker映像)。 该进程创build一个文件,我可以将其上传到DCOS群集作为本地Universe。 但是,当我尝试从本地Universe安装包到DCOS群集中时,并不是所有的都安装。 那些失败似乎依靠docker的图像,我看到一个错误消息在乱七八糟的日志,看起来像: Container xxx for executor yyy of framework zzz failed to start. Failed to perform 'curl': curl: 96) Could not resolve host: registry-1.docker.io 集群似乎试图到达Dockerregistry,当然它不能,因为它在企业防火墙后面。 这似乎与MESOS-6810有关 ,它只是说应该使用指向本地–docker-registry运行mesos群集。 我还没有用指向本地dockerregistry的[cluster_docker_registry_url][4]安assembly置选项从头重新安装DCOS群集。 我的问题是为什么当一个包的安装过程,然后试图下载docker图像时,本地宇宙下载docker的图像生成过程? 我想要在群集中安装的软件包将产生9 GB的本地范围。 我想了解在什么情况下,DCOS会尝试联系集群外部的主机。

在Mesosphere中创buildpod时的私人registry身份validation

通过在configuration文件中添加以下行(在https://mesosphere.github.io/marathon/docs/native-docker-private-registry.html中引用),可以在Mesosphere中创build应用程序时validation私人dockerregistry。 "uris": [ "file:///etc/docker.tar.gz" ] 有没有什么办法来validation私人dockerregistry,同时在Mesosphere中创build一个窗格来拉取图像?

如何确定为什么sigterm被发送到在mesos的docker容器内处理运行?

我有一个docker容器,我可以在当地擅长罚款。 然而,当在一个mesos集群上运行时,我得到了SIGTERMS /usr/my_script.sh: line 57: 310 Killed xsltproc sort.xsl ${2} > ${2}_bat W0703 09:09:54.465442 5074 logging.cpp:91] RAW: Received signal SIGTERM from process 2262 of user 0; exiting 我不明白这个问题来自哪里以及如何最好地debugging它。 我怎样才能找出什么是我的容器? 我试图增加可用容量超过4GB的内存,但无济于事。 而且,根据/usr/bin/time -v xsltproc sort.xsl offending_file.xml > sortedFile.xml这个过程应该只消耗1GB RAM。 我也试着用googlesearchW0703的错误输出和5074 logging.cpp:91 ,但是没有用。 它也引发了一个问题,为什么容器在本地运行时没有执行命令的问题。

由于OOM,一小时后容器崩溃

我使用Docker在DC / OS上运行spark。 当我提交spark工作,使用下面的内存configuration 司机2 Gb 执行者2 Gb 执行者的数量是3。 火花提交工作正常,1小时后docker容器(工人容器)由于OOM(退出代码137)而崩溃。 但我的火花日志显示1Gb的内存是可用的。 奇怪的是在容器中运行的同一个jar子,在独立模式下正常运行了近20个小时。 这是火花炮的正常行为,还是在那里做错了,或者是否有任何额外的configuration,我需要用于docker集装箱。 谢谢

马拉松docker集装箱无法访问外部服务

我从下面的JSON启动马拉松的docker集装箱 { "id": "logupdate", "cpus": 1, "mem": 125.0, "instances": 1, "container": { "type": "DOCKER", "docker": { "image": "logupdate", "network": "BRIDGE", "forcePullImage": true, "portMappings": [ { "containerPort": 9007, "hostPort": 0, "protocol": "tcp", "servicePort": 9007 } ] } } } 它工作正常,我可以访问容器外的服务。 但是服务在调用可通过传输客户端访问的弹性searchURL时内部失败。 客户端URL通过IP_OF_ELASTIC_SEARCH访问:9200。 当我通过普通的docker命令运行它时,我的服务工作正常。 docker run -p 9007:9007 logupdate 只有当我试图通过马拉松运行我面临这个问题。 我是否需要发布端口9200(弹性search端口)?

Docker参数为Mesos

我正尝试在Mesos群集中执行一个docker容器。 我想要执行的有效docker命令是: docker run -it -v /home/me:/home/jovyan/work -p 8888:8888 jupyter/pyspark-notebook 我明白这个命令的forms是: mesos-execute –containerizer=docker –master=127.0.0.1:9090 –name=test –docker_image=jupyter/pyspark-notebook –command="start-notebook.sh" –resources="cpus:8" 如何将-p和-v参数的等价物传递给memos-execute命令? 目前,我正在运行一个vanilla Mesos集群,没有任何像马拉松运行的附加服务。

从由mesos运行的docker容器访问kubernetes服务

我在我的Kubernetes集群中运行mesos-master(mesosphere / mesos-master)和mesos-slave(mesosphere / mesos-slave)。 Mesos从站启动泊坞窗容器(docker通过挂载/ usb / bin / docker从主机访问)与我的数据处理应用程序(短暂的,1-5分钟)需要访问其他kubernetes服务。 所以简而言之,我需要从容器中访问Kubernetes DNS。 有没有可能做到这一点? 谢谢

WebPageTest WPT专用实例 – 代理不注销与服务器

我已经安装WPT(网页testing)私人实例,使用docker,mesos和马拉松。 但是,当我扩大和缩小代理时,有时服务器认为有更多的代理连接(查看server-host / install /时)。 它看起来可能代理没有正确地“重新注册”与服务器。 问题: – 代理如何通知服务器它不再连接? – 当启动dockerized实例(代理/服务器)或马拉松configuration时,是否有一个选项可以在实例缩小时通知服务器? 谢谢!