Hi Adrian,

your analysis and solution is correct. As of today, the Aurora executor runs 
within the container. It is using a native mesos library in order to 
communicate with the agent, and therefore requires you to ship Python2.7 + all 
Mesos dependencies in each container.


Without doubt, this is not an optimal solution. We are therefore investigating 
alternatives: https://issues.apache.org/jira/browse/AURORA-1690?


Best Regards,

Stephan

________________________________
From: Adrian Fraisse <[email protected]>
Sent: Tuesday, May 17, 2016 17:08
To: [email protected]
Subject: Mesos executor dependencies using docker images

Hello fellow Aurora enthusiasts,

I am struggling with the docker containerizer. Jobs launched using docker 
containers end up failing, because Thermos cannot find Mesos's required 
dependencies, such as libcurl, libsasl, libsvn... See trace below, with 
libsasl2 :

Traceback (most recent call last):
  File "apache/aurora/executor/bin/thermos_executor_main.py", line 45, in 
<module>
    from mesos.native import MesosExecutorDriver
  File 
"/root/.pex/install/mesos.native-0.27.2-py2.7-linux-x86_64.egg.6c53d177e078864264dbb5af282e84d7c2cdc3a8/mesos.native-0.27.2-py2.7-linux-x86_64.egg/mesos/native/__init__.py",
 line 17, in <module>
    from ._mesos import MesosExecutorDriverImpl
ImportError: libsasl2.so.2: cannot open shared object file: No such file or 
directory


Having stumbled upon the issue quite a lot, I found a way to fix it : having 
the required dependencies installed on the containers I need to run. It's 
annoying and feels kinda dirty though. I dug into Mesos documentation and found 
this at http://mesos.apache.org/documentation/latest/container-image/ :
For a general purpose executor (e.g., thermos) of a framework (e.g., Aurora), 
requiring it and all its dependencies to be present in all possible container 
images that a user might use is not trivial.

Therefore, my question is : do I need to add Mesos's dependencies to each and 
every docker image I want to run (and is this best practice) or am I doing 
something terribly wrong ?

Thanks for your support !

Adrian

Reply via email to