You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mesos.apache.org by Thodoris Zois <zo...@ics.forth.gr> on 2017/08/04 11:44:05 UTC

Docker image as an executor

Hello list,

I am developing my own framework and i got a problem with docker images.

I am creating a task that will have assigned a docker image as executor. The purpose of doing this is because i want to have one task per docker container.  I have set a TaskInfo with executor a `docker image`. In the image i am just running `echo hello world!`. Every task that uses `Executor docker image` is in state `TASK_FAILED with reason EXECUTOR_TERMINATED -> Container terminated`. I don't get any status update message `TASK_RUNNING` and the image is running properly. Even at the output of stdout i get the message `Hello world!`. I think that the task is not getting in my container. But it gets the proper executorID.

This is my master log: https://pastebin.com/5yB7KR28 <https://pastebin.com/5yB7KR28>

This is my slave log: https://pastebin.com/sKPz949J <https://pastebin.com/sKPz949J>

And this is my protobuf: https://pastebin.com/YG3J7Fi0 <https://pastebin.com/YG3J7Fi0>


Any help would be appreciated!

Thank you, 
Thodoris



Re: Docker image as an executor

Posted by Thodoris Zois <zo...@ics.forth.gr>.
Thank you very much both of you!

Thodoris

> On 4 Aug 2017, at 17:47, Vinod Kone <vi...@gmail.com> wrote:
> 
> Setting container on task is the right thing to do for your use case. Each task is run under a different executor and hence isolated. 
> 
> @vinodkone
> 
> On Aug 4, 2017, at 6:10 AM, Jan Schlicht <jan@mesosphere.io <ma...@mesosphere.io>> wrote:
> 
>> It depends on the executor how the `TaskInfo` is used. The default executor (i.e. `TaskInfo.executor` isn't set) will start a container per task -- as documented here: http://mesos.apache.org/documentation/latest/app-framework-development-guide/ <http://mesos.apache.org/documentation/latest/app-framework-development-guide/>.
>> 
>> Cheers,
>> Jan
>> 
>> On Fri, Aug 4, 2017 at 2:55 PM, Thodoris Zois <zois@ics.forth.gr <ma...@ics.forth.gr>> wrote:
>> Hello Jan,
>> 
>> You are completely right.. If i set the docker image at taskInfo it is running properly. The reason that i wanted to add the docker image as an executor is because i would like to have one task per container. If i setContainer at taskInfo every task is going to run under the same container? Or each task will have its own container? I would like to provide an isolation between docker containers and tasks to my framework.
>> 
>> Thank you,
>> Thodoris
>> 
>>> On 4 Aug 2017, at 15:50, Jan Schlicht <jan@mesosphere.io <ma...@mesosphere.io>> wrote:
>>> 
>>> Hey Thodoris,
>>> 
>>> when you set a container for the executor (the `ExecutorInfo.container` field), this container is expected to provide an executor, i.e. connects and communicates with the Mesos agent that started the executor to run a task. `echo hello world` doesn't do this, that's why you see the EXECUTOR_TERMINATED message.
>>> 
>>> Cheers
>>> Jan
>>> 
>>> On Fri, Aug 4, 2017 at 1:44 PM, Thodoris Zois <zois@ics.forth.gr <ma...@ics.forth.gr>> wrote:
>>> Hello list,
>>> 
>>> I am developing my own framework and i got a problem with docker images.
>>> 
>>> I am creating a task that will have assigned a docker image as executor. The purpose of doing this is because i want to have one task per docker container.  I have set a TaskInfo with executor a `docker image`. In the image i am just running `echo hello world!`. Every task that uses `Executor docker image` is in state `TASK_FAILED with reason EXECUTOR_TERMINATED -> Container terminated`. I don't get any status update message `TASK_RUNNING` and the image is running properly. Even at the output of stdout i get the message `Hello world!`. I think that the task is not getting in my container. But it gets the proper executorID.
>>> 
>>> This is my master log: https://pastebin.com/5yB7KR28 <https://pastebin.com/5yB7KR28> <https://pastebin.com/5yB7KR28 <https://pastebin.com/5yB7KR28>>
>>> 
>>> This is my slave log: https://pastebin.com/sKPz949J <https://pastebin.com/sKPz949J> <https://pastebin.com/sKPz949J <https://pastebin.com/sKPz949J>>
>>> 
>>> And this is my protobuf: https://pastebin.com/YG3J7Fi0 <https://pastebin.com/YG3J7Fi0> <https://pastebin.com/YG3J7Fi0 <https://pastebin.com/YG3J7Fi0>>
>>> 
>>> 
>>> Any help would be appreciated!
>>> 
>>> Thank you,
>>> Thodoris
>>> 
>>> 
>>> 
>>> 
>>> 
>>> -- 
>>> Jan Schlicht
>>> Distributed Systems Engineer, Mesosphere
>> 
>> 
>> 
>> 
>> -- 
>> Jan Schlicht
>> Distributed Systems Engineer, Mesosphere


Re: Docker image as an executor

Posted by Vinod Kone <vi...@gmail.com>.
Setting container on task is the right thing to do for your use case. Each task is run under a different executor and hence isolated. 

@vinodkone

> On Aug 4, 2017, at 6:10 AM, Jan Schlicht <ja...@mesosphere.io> wrote:
> 
> It depends on the executor how the `TaskInfo` is used. The default executor (i.e. `TaskInfo.executor` isn't set) will start a container per task -- as documented here: http://mesos.apache.org/documentation/latest/app-framework-development-guide/.
> 
> Cheers,
> Jan
> 
>> On Fri, Aug 4, 2017 at 2:55 PM, Thodoris Zois <zo...@ics.forth.gr> wrote:
>> Hello Jan,
>> 
>> You are completely right.. If i set the docker image at taskInfo it is running properly. The reason that i wanted to add the docker image as an executor is because i would like to have one task per container. If i setContainer at taskInfo every task is going to run under the same container? Or each task will have its own container? I would like to provide an isolation between docker containers and tasks to my framework.
>> 
>> Thank you,
>> Thodoris
>> 
>>> On 4 Aug 2017, at 15:50, Jan Schlicht <ja...@mesosphere.io> wrote:
>>> 
>>> Hey Thodoris,
>>> 
>>> when you set a container for the executor (the `ExecutorInfo.container` field), this container is expected to provide an executor, i.e. connects and communicates with the Mesos agent that started the executor to run a task. `echo hello world` doesn't do this, that's why you see the EXECUTOR_TERMINATED message.
>>> 
>>> Cheers
>>> Jan
>>> 
>>>> On Fri, Aug 4, 2017 at 1:44 PM, Thodoris Zois <zo...@ics.forth.gr> wrote:
>>>> Hello list,
>>>> 
>>>> I am developing my own framework and i got a problem with docker images.
>>>> 
>>>> I am creating a task that will have assigned a docker image as executor. The purpose of doing this is because i want to have one task per docker container.  I have set a TaskInfo with executor a `docker image`. In the image i am just running `echo hello world!`. Every task that uses `Executor docker image` is in state `TASK_FAILED with reason EXECUTOR_TERMINATED -> Container terminated`. I don't get any status update message `TASK_RUNNING` and the image is running properly. Even at the output of stdout i get the message `Hello world!`. I think that the task is not getting in my container. But it gets the proper executorID.
>>>> 
>>>> This is my master log: https://pastebin.com/5yB7KR28 <https://pastebin.com/5yB7KR28>
>>>> 
>>>> This is my slave log: https://pastebin.com/sKPz949J <https://pastebin.com/sKPz949J>
>>>> 
>>>> And this is my protobuf: https://pastebin.com/YG3J7Fi0 <https://pastebin.com/YG3J7Fi0>
>>>> 
>>>> 
>>>> Any help would be appreciated!
>>>> 
>>>> Thank you,
>>>> Thodoris
>>>> 
>>>> 
>>> 
>>> 
>>> 
>>> -- 
>>> Jan Schlicht
>>> Distributed Systems Engineer, Mesosphere
>> 
> 
> 
> 
> -- 
> Jan Schlicht
> Distributed Systems Engineer, Mesosphere

Re: Docker image as an executor

Posted by Jan Schlicht <ja...@mesosphere.io>.
It depends on the executor how the `TaskInfo` is used. The default executor
(i.e. `TaskInfo.executor` isn't set) will start a container per task -- as
documented here:
http://mesos.apache.org/documentation/latest/app-framework-development-guide/
.

Cheers,
Jan

On Fri, Aug 4, 2017 at 2:55 PM, Thodoris Zois <zo...@ics.forth.gr> wrote:

> Hello Jan,
>
> You are completely right.. If i set the docker image at taskInfo it is
> running properly. The reason that i wanted to add the docker image as an
> executor is because i would like to have one task per container. If i
> setContainer at taskInfo every task is going to run under the same
> container? Or each task will have its own container? I would like to
> provide an isolation between docker containers and tasks to my framework.
>
> Thank you,
> Thodoris
>
> On 4 Aug 2017, at 15:50, Jan Schlicht <ja...@mesosphere.io> wrote:
>
> Hey Thodoris,
>
> when you set a container for the executor (the `ExecutorInfo.container`
> field), this container is expected to provide an executor, i.e. connects
> and communicates with the Mesos agent that started the executor to run a
> task. `echo hello world` doesn't do this, that's why you see the
> EXECUTOR_TERMINATED message.
>
> Cheers
> Jan
>
> On Fri, Aug 4, 2017 at 1:44 PM, Thodoris Zois <zo...@ics.forth.gr> wrote:
>
>> Hello list,
>>
>> I am developing my own framework and i got a problem with docker images.
>>
>> I am creating a task that will have assigned a docker image as executor.
>> The purpose of doing this is because i want to have one task per docker
>> container.  I have set a TaskInfo with executor a `docker image`. In the
>> image i am just running `echo hello world!`. Every task that uses `Executor
>> docker image` is in state `TASK_FAILED with reason EXECUTOR_TERMINATED ->
>> Container terminated`. I don't get any status update message `TASK_RUNNING`
>> and the image is running properly. Even at the output of stdout i get the
>> message `Hello world!`. I think that the task is not getting in my
>> container. But it gets the proper executorID.
>>
>> This is my master log: https://pastebin.com/5yB7KR28 <
>> https://pastebin.com/5yB7KR28>
>>
>> This is my slave log: https://pastebin.com/sKPz949J <
>> https://pastebin.com/sKPz949J>
>>
>> And this is my protobuf: https://pastebin.com/YG3J7Fi0 <
>> https://pastebin.com/YG3J7Fi0>
>>
>>
>> Any help would be appreciated!
>>
>> Thank you,
>> Thodoris
>>
>>
>>
>
>
> --
> *Jan Schlicht*
> Distributed Systems Engineer, Mesosphere
>
>
>


-- 
*Jan Schlicht*
Distributed Systems Engineer, Mesosphere

Re: Docker image as an executor

Posted by Thodoris Zois <zo...@ics.forth.gr>.
Hello Jan,

You are completely right.. If i set the docker image at taskInfo it is running properly. The reason that i wanted to add the docker image as an executor is because i would like to have one task per container. If i setContainer at taskInfo every task is going to run under the same container? Or each task will have its own container? I would like to provide an isolation between docker containers and tasks to my framework.

Thank you,
Thodoris

> On 4 Aug 2017, at 15:50, Jan Schlicht <ja...@mesosphere.io> wrote:
> 
> Hey Thodoris,
> 
> when you set a container for the executor (the `ExecutorInfo.container` field), this container is expected to provide an executor, i.e. connects and communicates with the Mesos agent that started the executor to run a task. `echo hello world` doesn't do this, that's why you see the EXECUTOR_TERMINATED message.
> 
> Cheers
> Jan
> 
> On Fri, Aug 4, 2017 at 1:44 PM, Thodoris Zois <zois@ics.forth.gr <ma...@ics.forth.gr>> wrote:
> Hello list,
> 
> I am developing my own framework and i got a problem with docker images.
> 
> I am creating a task that will have assigned a docker image as executor. The purpose of doing this is because i want to have one task per docker container.  I have set a TaskInfo with executor a `docker image`. In the image i am just running `echo hello world!`. Every task that uses `Executor docker image` is in state `TASK_FAILED with reason EXECUTOR_TERMINATED -> Container terminated`. I don't get any status update message `TASK_RUNNING` and the image is running properly. Even at the output of stdout i get the message `Hello world!`. I think that the task is not getting in my container. But it gets the proper executorID.
> 
> This is my master log: https://pastebin.com/5yB7KR28 <https://pastebin.com/5yB7KR28> <https://pastebin.com/5yB7KR28 <https://pastebin.com/5yB7KR28>>
> 
> This is my slave log: https://pastebin.com/sKPz949J <https://pastebin.com/sKPz949J> <https://pastebin.com/sKPz949J <https://pastebin.com/sKPz949J>>
> 
> And this is my protobuf: https://pastebin.com/YG3J7Fi0 <https://pastebin.com/YG3J7Fi0> <https://pastebin.com/YG3J7Fi0 <https://pastebin.com/YG3J7Fi0>>
> 
> 
> Any help would be appreciated!
> 
> Thank you,
> Thodoris
> 
> 
> 
> 
> 
> -- 
> Jan Schlicht
> Distributed Systems Engineer, Mesosphere


Re: Docker image as an executor

Posted by Jan Schlicht <ja...@mesosphere.io>.
Hey Thodoris,

when you set a container for the executor (the `ExecutorInfo.container`
field), this container is expected to provide an executor, i.e. connects
and communicates with the Mesos agent that started the executor to run a
task. `echo hello world` doesn't do this, that's why you see the
EXECUTOR_TERMINATED message.

Cheers
Jan

On Fri, Aug 4, 2017 at 1:44 PM, Thodoris Zois <zo...@ics.forth.gr> wrote:

> Hello list,
>
> I am developing my own framework and i got a problem with docker images.
>
> I am creating a task that will have assigned a docker image as executor.
> The purpose of doing this is because i want to have one task per docker
> container.  I have set a TaskInfo with executor a `docker image`. In the
> image i am just running `echo hello world!`. Every task that uses `Executor
> docker image` is in state `TASK_FAILED with reason EXECUTOR_TERMINATED ->
> Container terminated`. I don't get any status update message `TASK_RUNNING`
> and the image is running properly. Even at the output of stdout i get the
> message `Hello world!`. I think that the task is not getting in my
> container. But it gets the proper executorID.
>
> This is my master log: https://pastebin.com/5yB7KR28 <
> https://pastebin.com/5yB7KR28>
>
> This is my slave log: https://pastebin.com/sKPz949J <
> https://pastebin.com/sKPz949J>
>
> And this is my protobuf: https://pastebin.com/YG3J7Fi0 <
> https://pastebin.com/YG3J7Fi0>
>
>
> Any help would be appreciated!
>
> Thank you,
> Thodoris
>
>
>


-- 
*Jan Schlicht*
Distributed Systems Engineer, Mesosphere