On Thu, Aug 28, 2014 at 8:14 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. > What about having two modes as in, in order to manage VMs, we use Jclouds API and in order to manage Containers, we use Kubernetes API ? This way, we can directly right a Java client to Kubernetes API and no need to map Jclouds' concepts to Kubernetes (which may be hard, since Kubernetes really not a IaaS). > 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. > - 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/ > > > -- Best Regards, Nirmal Nirmal Fernando. PPMC Member & Committer of Apache Stratos, Senior Software Engineer, WSO2 Inc. Blog: http://nirmalfdo.blogspot.com/