You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mesos.apache.org by "Jie Yu (JIRA)" <ji...@apache.org> on 2016/11/24 22:34:58 UTC
[jira] [Commented] (MESOS-6467) Build a Container I/O Switchboard
[ https://issues.apache.org/jira/browse/MESOS-6467?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15694338#comment-15694338 ]
Jie Yu commented on MESOS-6467:
-------------------------------
commit 9d73fe7e46251a624443962aad69d5a582a738e5
Author: Kevin Klues <kl...@gmail.com>
Date: Thu Nov 24 11:46:38 2016 -0800
Added a level of indirection for logger through an IO Switchboard.
The purpose of this component is to feed stdin to a container from an
external source, as well as redirect the stdin/stdout of a container
to multiple targets.
In this commit, we simply add the IOSwitchboard as a component that
interposes on the fds set up to communicate between the logger and a
container.
In the future, we will expand this component to (optionaly) launch a
sidecar HTTP server process which will be responsible for handling
'ATTACH_CONTAINER_INPUT' and 'ATTACH_CONTAINER_OUTPUT' calls on behalf
of a container to redirect the stdin/stdout/sderr of a container to
external clients.
Review: https://reviews.apache.org/r/53704/
> Build a Container I/O Switchboard
> ---------------------------------
>
> Key: MESOS-6467
> URL: https://issues.apache.org/jira/browse/MESOS-6467
> Project: Mesos
> Issue Type: Task
> Reporter: Kevin Klues
> Assignee: Kevin Klues
> Labels: debugging, mesosphere
>
> In order to facilitate attach operations for a running container, we plan to introduce a new component into Mesos known as an “I/O switchboard”. The goal of this switchboard is to allow external components to *dynamically* interpose on the {{stdin}}, {{stdout}} and {{stderr}} of the init process of a running Mesos container. It will be implemented as a per-container, stand-alone process launched by the mesos containerizer at the time a container is first launched.
> Each per-container switchboard will be responsible for the following:
> * Accepting a single dynamic request to register an fd for streaming data to the {{stdin}} of a container’s init process.
> * Accepting *multiple* dynamic requests to register fds for streaming data from the {{stdout}} and {{stderr}} of a container’s init process to those fds.
> * Allocating a pty for the new process (if requested), and directing data through the master fd of the pty as necessary.
> * Passing the *actual* set of file descriptors that should be dup’d onto the {{stdin}}, {{stdout}} and {{stderr}} of a container’s init process back to the containerizer.
> The idea being that the switchboard will maintain three asynchronous loops (one each for {{stdin}}, {{stdout}} and {{stderr}}) that constantly pipe data to/from a container’s init process to/from all of the file descriptors that have been dynamically registered with it.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)