On Thu, Aug 28, 2014 at 3:44 AM, Lakmal Warusawithana <lak...@wso2.com> wrote: > Hi devs, > > I did some research on $subject and IMO kurburnetes integration going to be > worthwhile thing. Below is the possible way of integration and some > benefits. > > Kuburnetes provide docker provisioning (orchestration), scheduling across > docker host cluster, Self-healing mechanisms, such as auto-restarting, > re-scheduling, and replicating containers. IMO we should used them without > inventing the wheel. I was there in Linixcon and google heavily use this in > large-scale. in current state they are creating 2 million new dockers weekly > using kuburnetes. > > So, with kurburnetes we can handover docker management scheduler to > kurburnetes without handling in autoscaler. which mean we are not going to > have deployment policies and partitions docker in stratos. Only there is > auto scaling policy. But it will not change for VM based cartridges which > currently has. > > We can extend jclouds for support kurburnetes, mean we may no need to used > docker api, instead we need to have kurburnetes API. > > WIth docker, we are doing to have two mode, dockers top of VM and dockers > top of bare-metal.(its simple version is dev env) > > Below is the initial design we can consider. > > need to have global docker registry for a stratos deployment > > cartridge definition should have a docker file attached related to the > cartridge. e.g if PHP cartridge definition, should attached php docker file. > IMO we should used same for any other type, like puppet, it should attached > puppet module (location) and we can dynamically install this module into > puppet master, which Raj and Lasindu suggest in separate thread. So this > going to be generic, while deploying cartridge definition, we are expecting > related docker, puppet, .etc files for that cartridge and dynamically setup. > then we can build docker file and upload (push) image into global (for > stratos) docker registry.
Will a Stratos docker images (e.g. php image) be immutable and not have puppet agent installed inside the image? > we can consider docker service is MT service in Stratos. > above docker cartridges available for application deployment only after > docker MT host cluster available in VM mode or generally after dynamically > registering kuburnetese endpoint. > In bare metal we can manually register kurburnetes end point. > So in the VM mode, we can have cartridge definition for docker host cluster > (IMO we can used coreOS+keburnetes) and can deploy as MT service. it can > have min, max and auto scaling, deployment polices. > With the MT service deployment, it will create docker host cluster. All > monitoring and scaling will happen normal way. > in MT docker host service up, it will dynamically register kuburnetes > endpoint for docker deployment > After end point register, docker application deployment available for all > pushed docker cartridges which in the global docker registry. > In case of having multiple kuburnetes endpoint user can choose any available > docker cluster while deployment docker applications. also user can define > min max for his docker application while in the creation time and can change > any time. Also can attached the auto scaling policy > communicate to kuburnetes endpoint for orchestrate required dockers. > Kuburnetes will take care of rest. > update the topology with the member endpoints > individual docker application can scale depending on assign auto scaling > policy. > In the bare-metal mode, without MT mode, we can just register kuburnetes end > point and then same way to create dockers. > > This is initial though of design, please share your thought. Need to draw > some pictures, will work on that. and IMO we should have a hangout session, > badly need a white board for these kind of discussions > > thanks > > > -- > Lakmal Warusawithana > Vice President, Apache Stratos > Director - Cloud Architecture; WSO2 Inc. > Mobile : +94714289692 > > Blog : http://lakmalsview.blogspot.com/ > >