You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stratos.apache.org by Tom Davidson <to...@tomdavidson.org> on 2016/02/02 08:03:59 UTC

Stratos AWS deployment

​I am looking at setting up Stratos on AWS with Kubernetes ​- is there any
reason why Stratos should be installed on a separate cluster than the one
it provisions to?

I did not see docs concerning installing Stratos on Kubernetes - anyone
point me in the right direction?

I am interested in creating a terraform project to provision Stratos on
IaaS, but being fairly new to Stratos I there anyone interested in
providing some Statos deployment guidance beyond the docs?

best, tom

Re: Stratos AWS deployment

Posted by Pubudu Gunatilaka <pu...@wso2.com>.
Hi Tom,

Actually Stratos does not manage the k8 cluster. When using Stratos with k8
you just need to provide the k8 end points as in [1]. When you deploy an
app, Stratos will talk to the k8 api and it will create pods in the k8
cluster.

Yes, you should be able to run Stratos against multiple k8 clusters.
Stratos and Iaases are decoupled and k8 can be run remotely. For an example
if you deploy an app to run in k8, Stratos will talk to the k8 API and
create pods. For the pods, you need to have the docker image.  Docker image
should include the python cartridge agent (PCA). PCA will listen to
Activemq and handles all the life cycle events related to itself. And also
it publishes health stats to CEP from time to time. Only concern is if you
run k8 remotely or a vpc, Stratos should be able to talk to K8 API and PCA
should be able to talk to CEP and Activemq.

You can use Stratos to scale the k8 cluster as well. In this scenario, you
need to create an application in Stratos for the k8 cluster. Based on the
health stats received by the Stratos,  k8 cluster will auto scale. Other
applications deploy on Stratos can use the deployed k8 cluster. This is not
tested at the moment but theoretically this can be done. One other concern
is that if you do auto scale k8 cluster using Stratos, when scaling down it
can't guarantee that there aren't any running pods within the selected k8
node. This depends on the auto scaling policy uses in Stratos.

Please refer [2] for persistence volume mapping.

[1] -
https://github.com/apache/stratos/blob/master/samples/kubernetes-clusters/kubernetes-cluster-2.json
[2] -
https://cwiki.apache.org/confluence/display/STRATOS/4.1.x+Persistence+Volume+Mapping

Thank you!

On Wed, Feb 3, 2016 at 11:24 AM, Tom Davidson <to...@tomdavidson.org> wrote:

> Pubudu, thank you for the reply and direction. I have a few more questions
> on the best environment to run Stratos.
>
> How does Stratos manage the k8s cluster? Does multi-cloud equate to
>  multiple k8s clusters? It is decoupled, so the k8s can be remote or would
> you put the Stratos VMs and the k8s cluster in the same vpc?
>
> Does Stratos manage AWS (or openstack for that matter) to scale the k8s
> nodes or does the IaaS manage it separately?
>
> Does Stratos manage a persistent networked file storage? How does it
> manage persistent databases?
>
> Any other recommendations for AWS deployment ?
>
> br, tom
>



-- 
*Pubudu Gunatilaka*
Committer and PMC Member - Apache Stratos
Software Engineer
WSO2, Inc.: http://wso2.com
mobile : +94774079049 <%2B94772207163>

Re: Stratos AWS deployment

Posted by Tom Davidson <to...@tomdavidson.org>.
Pubudu, thank you for the reply and direction. I have a few more questions
on the best environment to run Stratos.

How does Stratos manage the k8s cluster? Does multi-cloud equate to
 multiple k8s clusters? It is decoupled, so the k8s can be remote or would
you put the Stratos VMs and the k8s cluster in the same vpc?

Does Stratos manage AWS (or openstack for that matter) to scale the k8s
nodes or does the IaaS manage it separately?

Does Stratos manage a persistent networked file storage? How does it manage
persistent databases?

Any other recommendations for AWS deployment ?

br, tom

Re: Stratos AWS deployment

Posted by Pubudu Gunatilaka <pu...@wso2.com>.
Hi Tom,

Actually Stratos can support multiple Iaases at the same deployment. AFAIU
if you run Stratos on Kubernetes (K8) and if anything goes wrong with the
K8 environment it will affect the entire deployment. Therefore it would be
better to have a separate VM for Stratos. Even with this drawback, still
you can run Stratos on K8. You just need to create docker images for
Stratos, Activemq and CEP (If you use external CEP).

I would recommend following deployment if you to run Stratos on AWS.

1. VM for Stratos
2. VM for Activemq (Supports clustered deployment)
3. VM for CEP (Supports clustered deployment)
4. K8 cluster on AWS

Based on your applications you can increase the number of K8 nodes.

Thank you!


On Tue, Feb 2, 2016 at 12:33 PM, Tom Davidson <to...@tomdavidson.org> wrote:

> ​I am looking at setting up Stratos on AWS with Kubernetes ​- is there any
> reason why Stratos should be installed on a separate cluster than the one
> it provisions to?
>
> I did not see docs concerning installing Stratos on Kubernetes - anyone
> point me in the right direction?
>
> I am interested in creating a terraform project to provision Stratos on
> IaaS, but being fairly new to Stratos I there anyone interested in
> providing some Statos deployment guidance beyond the docs?
>
> best, tom
>
>
>


-- 
*Pubudu Gunatilaka*
Committer and PMC Member - Apache Stratos
Software Engineer
WSO2, Inc.: http://wso2.com
mobile : +94774079049 <%2B94772207163>