[
https://issues.apache.org/jira/browse/MESOS-5278?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15310050#comment-15310050
]
Guangya Liu commented on MESOS-5278:
------------------------------------
Did some test with python as follows.
1) Create a volume file
{code}
root@mesos002:~/test/setns# cat /root/test/v6.json
[{
"container_path":"\/tmp\/abc2",
"mode":"RW",
"source":
{
"docker_volume":
{
"driver":"convoy",
"driver_options":
{"parameter":[
{
"key":"iops",
"value":"150"
}
]},
"name":"dvd2"
},
"type":"DOCKER_VOLUME"
}
}]
{code}
2) Start up mesos-executor
{code}
root@mesos002:~/src/mesos/m2/mesos/build# ./src/mesos-execute
--master=192.168.56.12:5050 --command="sleep 100000" --name=test
--docker_image=ubuntu:14.04 --volumes=/root/test/v6.json
I0601 00:19:22.391978 31447 scheduler.cpp:187] Version: 1.0.0
I0601 00:19:22.394105 31471 scheduler.cpp:471] New master detected at
[email protected]:5050
Subscribed with ID '6ead2bbc-ae7e-4973-9a8d-0c9c02668573-0000'
Submitted task 'test' to agent '6ead2bbc-ae7e-4973-9a8d-0c9c02668573-S0'
Received status update TASK_RUNNING for task 'test'
source: SOURCE_EXECUTOR
{code}
3) Check convoy volume list and mount point
{code}
root@mesos002:~/test/setns# convoy list
{
"01569b03-81f2-47be-8d16-169c1adcb541": {
"UUID": "01569b03-81f2-47be-8d16-169c1adcb541",
"Name": "dvd2",
"Driver": "devicemapper",
"MountPoint":
"/var/lib/convoy/devicemapper/mounts/01569b03-81f2-47be-8d16-169c1adcb541",
"CreatedTime": "Mon Apr 18 10:57:32 +0800 2016",
"DriverInfo": {
"DevID": "12",
"Device":
"/dev/mapper/01569b03-81f2-47be-8d16-169c1adcb541",
"Driver": "devicemapper",
"MountPoint":
"/var/lib/convoy/devicemapper/mounts/01569b03-81f2-47be-8d16-169c1adcb541",
"Size": "107374182400"
},
"Snapshots": {}
}
}
root@mesos002:~/test/setns# ls
/var/lib/convoy/devicemapper/mounts/01569b03-81f2-47be-8d16-169c1adcb541
ibm2 lost+found
{code}
4) Using a python script to enter the mnt namespace of the container.
{code}
root@mesos002:~/test/setns# cat setns.py
#!/usr/bin/env python
import ctypes
import sys
import os
import subprocess
f = None
libc = ctypes.CDLL('libc.so.6')
myfd = os.open('/proc/31563/ns/mnt', os.O_RDONLY)
libc.setns(myfd, 0)
subprocess.Popen(['ls', '/tmp/abc2'])
root@mesos002:~/test/setns# python setns.py
ibm2 lost+found
{code}
There are currently two issues for this CLI:
1) The agent do not export the executor pid or task pid, so I cannot get the
task process id now. Seems we need to expose the executor pid or task pid to
mesos task endpoint?
2) Where does {{mesos enter}} run? Only in master or on the host where the
container is running? I can see that for docker, I have to run {{docker exec}}
on the docker server where the container is running; but with swarm, I can run
{{docker exec}} anywhere. If want to enable {{mesos enter}} run anywhere, we
may need to add some logic such as {{remote exec}} to {{mesos enter}}.
> Add a CLI allowing a user to enter a container.
> -----------------------------------------------
>
> Key: MESOS-5278
> URL: https://issues.apache.org/jira/browse/MESOS-5278
> Project: Mesos
> Issue Type: Improvement
> Reporter: Jie Yu
> Assignee: Guangya Liu
>
> Containers created by the unified containerizer (Mesos containerizer) uses
> various namespaces (e.g., mount, network, etc.).
> To improve debugability, we should create a CLI that allows an operator or a
> user to enter the namespaces associated with the container, and execute an
> arbitrary command in that container (similar to `docker exec`).
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)