[Swift-user] Swift Coaster Service & Docker Containers

Matthew Shaxted Matthew.Shaxted at som.com
Tue Sep 2 10:45:40 CDT 2014


Hi Mike/Yadu,

Thanks for these suggestions. I am successfully starting the coaster-service, making the connection and running jobs on the docker containers with the below commands:

On the coaster-service host:

                                coaster-service -p 50200 -localport 50100 -nosec -passive &> /var/log/coaster-service.logs

On each container I start this command:

./worker.pl http://172.20.24.20:50100 172.20.24.101 ~/swiftwork



MATTHEW SHAXTED
SKIDMORE, OWINGS & MERRILL LLP
224 SOUTH MICHIGAN AVENUE
CHICAGO, IL 60604
T  (312) 360-4368
MATTHEW.SHAXTED at SOM.COM<mailto:MATTHEW.SHAXTED at SOM.COM>

[cid:image004.png at 01CFC69B.09BB3CD0]<http://www.som.com/>
The information contained in this communication may be confidential, is intended only for the use of the recipient(s) named above, and may be legally privileged. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution, or copying of this communication, or any of its contents, is strictly prohibited and may be unlawful. If you have received this communication in error, please return it to the sen­­­der immediately and delete the original message and any copy of it from your computer system. If you have any questions concerning this message, please contact the sender.

[cid:image003.gif at 01CFC696.B5E21380]

From: Matthew Shaxted
Sent: Saturday, August 30, 2014 8:40 AM
To: Yadu Nand
Cc: Michael Wilde; Swift User
Subject: Re: [Swift-user] Swift Coaster Service & Docker Containers

Thanks Mike and Yadu,

Yes it would be great if there is a published config for this use case, and I am willing to help in whatever capacity I can.

The docker containers can reach out to external IP addresses, so as you both mention the best way may be to run the worker.pl in each container and have it connect back to the coaster service. I start the coaster service on a known ip/port host using the command you specify.

I think I conceptually understand how this could work and will try to test something.

I have an ubuntu docker container configured to start ssh services at the command below. It sounds like, however, if I can run the worker.pl on each container and connect to the coaster service, ssh is not even required.

docker run -i -p 22 -t mattshax/precise_ep_node sh -c '/usr/sbin/sshd -D'




On Aug 29, 2014, at 9:33 PM, "Yadu Nand" <yadudoc1729 at gmail.com<mailto:yadudoc1729 at gmail.com>> wrote:
Hi Matthew,

You can use the coaster-service directly with the following arguments :
coaster-service -p $SERVICEPORT -localport $WORKERPORT -nosec -passive &> /var/log/coaster-service.logs

The workers running under docker should be connecting to the WORKERPORT and the swift client would use the SERVICEPORT.
Another thing to remember is to make sure that you use the the coaster-service and worker.pl<http://worker.pl> from the same swift release.

The start-coaster-service command is a wrapper over coaster-service which in addition to starting the coaster service, also
tries to ssh the worker.pl<http://worker.pl> to the WORKER_HOSTS. In the situation that you describe, I think it makes sense to have the workers
just connect back to the coaster-service which is listening on a known IP / port.

Thanks,
Yadu



On Fri, Aug 29, 2014 at 8:34 PM, Michael Wilde <wilde at anl.gov<mailto:wilde at anl.gov>> wrote:
Matthew,

I would treat this case similar to the configuration you'd use for a set of virtual machines.

Start one coaster service for each pool of identical docker containers that you want to run.

For each pool of containers, run a Swift worker (worker.pl<http://worker.pl>) in the container and have it connect back to the coaster service you designate to manage that pool.

I'm assuming that from a docker contained you can connect out to any reachable IP address.

Another approach is to treat the containers like a set of ad-hoc compute nodes, and ssh into them with automatic coasters using the ssh:local jobmanager setting.

We'll try to test and publish a config for such cases. We'd welcome your help with that.

- Mike


On 8/29/14, 7:48 PM, Matthew Shaxted wrote:
Hi All,

I’m trying to find a way to run Swift workflows on multi-host docker containers, and wondering if anybody has had success with this.

When I start a docker container and define specific ports to open on the container, they mapped to random ports on the host machine. So for example, I can start a container with an ssh port open from a host “10.1.1.1”, and can then access this container across hosts with “ssh compute at 10.1.1.1<mailto:compute at 10.1.1.1> –p 49160”.

Now I’m hoping to link these docker containers to Swift’s start-coaster-service. I think it would be possible and relatively easy if I can say, start the coasters on a series of IP addresses AND ports. So a host’s file perhaps would look something like below, and coasters would be started on the correct docker container:

10.1.1.1<http://10.1.1.1>: 49160
10.1.1.2<http://10.1.1.2>: 34155
10.1.1.2<http://10.1.1.2>: 34156   …

Does this make sense? Is it possible to start coasters by specifying an IP address and port number?

Any thoughts are greatly appreciated.

Thanks,
Matthew


MATTHEW SHAXTED
SKIDMORE, OWINGS & MERRILL LLP
224 SOUTH MICHIGAN AVENUE
CHICAGO, IL 60604
T  (312) 360-4368<tel:%28312%29%20360-4368>
MATTHEW.SHAXTED at SOM.COM<mailto:MATTHEW.SHAXTED at SOM.COM>

<ATT00002.png><http://www.som.com/>
The information contained in this communication may be confidential, is intended only for the use of the recipient(s) named above, and may be legally privileged. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution, or copying of this communication, or any of its contents, is strictly prohibited and may be unlawful. If you have received this communication in error, please return it to the sen­­­der immediately and delete the original message and any copy of it from your computer system. If you have any questions concerning this message, please contact the sender.

<ATT00001.gif>




_______________________________________________

Swift-user mailing list

Swift-user at ci.uchicago.edu<mailto:Swift-user at ci.uchicago.edu>

https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-user



--

Michael Wilde

Mathematics and Computer Science          Computation Institute

Argonne National Laboratory               The University of Chicago

_______________________________________________
Swift-user mailing list
Swift-user at ci.uchicago.edu<mailto:Swift-user at ci.uchicago.edu>
https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-user



--
Yadu Nand B

_______________________________________________
Swift-user mailing list
Swift-user at ci.uchicago.edu<mailto:Swift-user at ci.uchicago.edu>
https://lists.ci.uchicago.edu/cgi-bin/mailman/listinfo/swift-user
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/swift-user/attachments/20140902/ea4087d6/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image003.gif
Type: image/gif
Size: 566 bytes
Desc: image003.gif
URL: <http://lists.mcs.anl.gov/pipermail/swift-user/attachments/20140902/ea4087d6/attachment.gif>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image004.png
Type: image/png
Size: 5311 bytes
Desc: image004.png
URL: <http://lists.mcs.anl.gov/pipermail/swift-user/attachments/20140902/ea4087d6/attachment.png>


More information about the Swift-user mailing list