← Back to team overview

fuel-dev team mailing list archive

Re: [feature status] Master node upgrade (python + puppet + lxc vs docker)

 

The good thing is that containers behave just like isolated Linux
systems (except they aren't aware of their underlying hardware) and we
can recycle our Puppet code to build each module. I'm currently
segmenting each role of Fuel node into separate manifests so we can
call them each independently without pulling in all the others. There
is a lot of cross dependency across nailgun to sort out.

On Mon, Feb 10, 2014 at 5:07 PM, Dmitry Ilyin <dilyin@xxxxxxxxxxxx> wrote:
> Actually it's a very promising idea to move to atomic lxc container for our
> master node.
>
> Volumes used to run these containers could be packaged and easily installed
> or updated by just replacing the file by the new version. Container will
> also be compleatly independent and any changing would not break any
> neighbour container. (Well... except database structures...)
>
> Such containers will be able to speak to each other through unix or tcp
> sockets.
> Building such containers will require us to invent some automated system but
> their installation and use would be much more reliable then our current
> technology.
> This method can also combine configuration flexibility of puppet-deployed
> nodes with speed and reliability of image-based provisioned systems.
>
> We should also look into using the same approach for controller and even
> compute nodes. It could help us to find solution to our long lasting
> OpenStack upgrading problem.
>
>
> 2014-02-10 Evgeniy L <eli@xxxxxxxxxxxx>:
>>
>> Hi,
>>
>>
>> As many of you may already know we started design/implementation of master
>> node upgrade feature. Here you can read the design document.
>>
>>
>> So, it's just status update of this feature.
>>
>> We want to use docker as containers management tool.
>>
>>
>> Here is Docker's pros and cons
>>
>> Pros
>>
>> +
>> http://stackoverflow.com/questions/17989306/what-does-docker-add-to-just-plain-lxc
>>
>> + rest API (it will be very useful in case of plugins, when we'll be able
>> to setup new container from inside another container)
>>
>> + lxc requires us to design our own build process and networking
>>
>> + docker has a standard dockerfile format and tools to build images and
>> store them in git and do version management
>>
>> Cons
>>
>> - additional complexity
>>
>> - non-persistent containers, it can be solved with volumes
>>
>>
>> http://www.tech-d.net/2013/12/16/persistent-volumes-with-docker-container-as-volume-pattern/
>>
>> http://www.offermann.us/2013/12/tiny-docker-pieces-loosely-joined.html
>>
>> http://crosbymichael.com/advanced-docker-volumes.html
>>
>> - regarding non-persistent containers will be a lot of questions like "I
>> patched nailgun but when I rerun container all changes are gone" (can be
>> solved with documentation)
>>
>>
>> Let us know if you have any ideas or questions.
>>
>> Thanks
>>
>> --
>> Mailing list: https://launchpad.net/~fuel-dev
>> Post to     : fuel-dev@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~fuel-dev
>> More help   : https://help.launchpad.net/ListHelp
>>
>
>
> --
> Mailing list: https://launchpad.net/~fuel-dev
> Post to     : fuel-dev@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~fuel-dev
> More help   : https://help.launchpad.net/ListHelp
>


References