Hi Stephen, Can you please elaborate on this? I didn't quite understand, and googling hasn't helped much.
Is this a random port number that aurora assigns to this job? Will it be a random number again when addInstances is called? Can I also cache this port number outside the Process() definition? Does mesos guarantee that this will be an unused port number from the slave on which this task is launched? I was thinking that if all the above holds true, then I can simply pass this random port number to the process, and also as an env to docker container, and get stuff to work. -- κρισhναν On Fri, Apr 1, 2016 at 2:55 PM, Erb, Stephan <[email protected]> wrote: > Have you considered using Mesos to generate a unique, random port number > for you? Then you don't have to resort to any collision-prevention as it is > already done for you automatically. You can find details and an example in > our documentation: > https://github.com/apache/aurora/blob/master/docs/features/services.md#ports > > > > The auto-assigned port is then available via different ways: > > > a) it is registered in zookeeper and external tools (like > loadbalancers) can do the lookup (see > https://github.com/apache/aurora/blob/master/docs/features/service-discovery.md > and > https://github.com/apache/aurora/blob/master/docs/additional-resources/tools.md > for details) > > b) you can ask the scheduler API for the endpoint of your service (so > IP and port) > > > Hope this gets you started. > > > Best Regards, > > Stephan > ------------------------------ > *From:* Krish <[email protected]> > *Sent:* Friday, April 1, 2016 10:40 > *To:* [email protected] > *Subject:* Aurora DSL & Hooks > > Hi, > Currently, I have a small web server to which I pump traffic, and once > this crosses a threshold, I call the addInstances API for this job. Now, > the job will fail if the second instance of the job is scheduled on the > same machine in the cluster, as the port number is already in use. > > What I was thinking to do is generate a random number (say, between > 5000-6000) to bind to, which can avoid this clash. I currently pass the > port number as a static parameter using the --env docker flag. > A more complex use case is to add this dynamic port number to the EC2 load > balancer that I use for testing stuff when the job runs, and delete the > port when the job stops. > > I was reading about Hooks ( > http://aurora.apache.org/documentation/latest/hooks/), and this seems to > be the way to go, but can't get my head around it. > One thing is because the other documentation ( > http://aurora.apache.org/documentation/latest/configuration-reference/) > has no reference to it. > > I have added a enable_hooks=True in my .aurora and in the process of > defining my custom class with requisite hooks. > > Questions: > Is it ok to write small pieces of code like random number generation, etc > in the DSL? > Does the hook code run in the slave or in aurora? > Are the imports restricted to the hooks? Like import logging, and import > aws.boto fails? > Where does the hooks = [] line go in the DSL - in the jobs=[] section? > > Anything else that I need to know to get this done. > Thanks. > > -- > κρισhναν > >
