On Wed, Aug 27, 2014 at 9:17 AM, John A Meinel <john.mei...@canonical.com> wrote:
> So I played around with manually assigning IP addresses to a machine, and > using BTRFS to make the LXC instances cheap in terms of disk space. > > I had success bringing up LXC instances that I created directly, I haven't > gotten to the point where I could use Juju for the intermediate steps. See > the attached document for the steps I used to set up several addressable > containers on an instance. > > However, I feel pretty good that Container Addressability would actually > be pretty straightforward to achieve with the new Networker. We need to > make APIs for requesting an Address for a new container available, but then > we can configure all of the routing stuff without too much difficulty. > > Also of note, is that because we are using MASQUERADE in order to route > the traffic, it doesn't require putting the bridge (br0) directly onto > eth0. So it depends if MaaS will play nicely with routing rules if you > assign an IP address into a container on a machine, will the routes end up > routing the traffic there (I think it will, but we'd have to test to > confirm it). > > Ideally, I'd rather do the same thing everywhere, rather that have > containers routed one way in MaaS and a different way on EC2. > > It may be that in the field we need to not Masquerade, so I'm open to > feedback here. > > I wrote this up a bit like how I would want to use dense containers for > scale testing, since you can then deploy actual workloads into each of > these LXCs if you wanted (and had the horsepower :). > > I succeeded in putting 6 IPs on a single m3.medium and running 5 LXC > containers and was able to connect to them from another machine running > inside the VPC. > Thanks for exploring this John. I'm excited about utilizing something like this for regular scale testing on the cheap (10 instances for 1 hr on spot markets with 200 containers per test ~ 2k machine/unit env). Fwiw, i use ansible to automate the provisioning and machine setup ( aws/lxc/btrfs/ebs volume for btrfs) in ec2 via https://github.com/kapilt/juju-lxc/blob/master/ec2.yml .. There's some other scripts in there (add.py) for provisioning the container with userdata (ie. automate key installation and machine setup) which can obviate/automate several of these steps. Either ebs or instance ephemeral disk (ssd) is preferable i think to loopback dev for perf testing. Re uniform networking handling, it still feels like we're exploring here its unclear if we have the knowledge base to dictate a common mechanism yet. cheers, Kapil
-- Juju-dev mailing list Juju-dev@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/juju-dev