[Hawkular-dev] OpenShift Deployment

Jay Shaughnessy jshaughn at redhat.com
Thu Nov 30 08:49:42 EST 2017



On 11/30/2017 5:15 AM, Lucas Ponce wrote:
>
>
> On Thu, Nov 30, 2017 at 10:55 AM, Lucas Ponce <lponce at redhat.com 
> <mailto:lponce at redhat.com>> wrote:
>
>
>
>     On Mon, Nov 27, 2017 at 4:38 PM, Matthew Wringe
>     <mwringe at redhat.com <mailto:mwringe at redhat.com>> wrote:
>
>         With the changes that are now going to include Prometheus, how
>         do we want to deploy this in OpenShift?
>
>         We can have a few options:
>
>         ALL-IN-ONE CONTAINER
>         We put both Hawkular Services and Prometheus in the same
>         container.
>
>         Pros:
>         - easy to deploy in plain docker (but this doesn't appear to
>         be a usecase we are targetting anyways)
>         - shares the same network connection (even localhost) and ip
>         address (eg but both services are on the different ports).
>         - Does't require any special wiring of components.
>         - Can share the same volume mount
>         - version of components can't get out of sync.
>
>         Cons:
>         - workflow doesn't work nicely. Docker containers are meant to
>         only run a single application and running two can cause
>         problems. Eg lifecycle events would become tricky and require
>         some hacks to get around things.
>         - can't independently deploy things
>         - can't reuse or share any existing Prometheus docker containers.
>
>         ALL-IN-ONE POD
>         Hawkular Services and Prometheus are in their own containers,
>         but they are both deployed within the same pod.
>
>         Pros:
>         - shares the same network connection.
>         - bound to the same machine (useful if sharing the same
>         hostpath pv) and don' need to worry about external network
>         configurations (eg firewalls between OpenShift nodes)
>         - pvs can be shared or separate.
>         - lifecycle events will work properly.
>
>         Cons:
>         - lifecycle hooks will mean that both containers will have to
>         pass before either one will enter the ready state. So if
>         Prometheus is failing for some reason, Hawkular Services will
>         not be available under the service.
>         - cannot independently update one container. If we need to
>         deploy a new container we will need to bring down the whole pod.
>         - are stuck with a 1:1 ratio between Hawkular Services and
>         Prometheus
>
>
>     One technical requeriment is that Hawkular Services needs to now
>     where is Prometheus server at initialization.
>
> One technical requeriment is that Hawkular Services needs to *know* 
> where is Prometheus server at initialization.
>
> [Sorry, typing fast]
>
>     So, I guess that all-in-one pod will simplify things on this case.
>
>     I would start with this architecture first and harden the basic
>     scenarios.
>

I would also suggest we go with this architecture.  I don't actually see 
the cons as very bad at all.  Because of the tight-coupling of S-P it is 
not particularly worthwhile to have one up and one down. I think in 
general the S and P containers should be considered a single instance of 
hawkular server.  But running them as separate containers still makes 
sense for the reasons listed as cons in the all-in-one option.

>
>
>         SEPARATE PODS
>         Hawkular Services and Prometheus have their own separate pods.
>
>         Pros:
>         - can independently run components and each component has its
>         own separate lifecycle
>         - if in the future we want to cluster Hawkular Services. this
>         will make it a lot easier and will also allow for running an
>         n:m ratio between Hawkular Services and Prometheus
>         - probably the more 'correct' way to deploy things as we don't
>         have a strong requirement for Hawkular Services and Prometheus
>         to run together.
>
>         Cons:
>         - more complex wiring. We will need to have extra services and
>         routes created to handle this. This mean more things running
>         and more chances for things to go wrong. Also more things to
>         configure
>         - reusing a PV between Hawkular Services and Prometheus could
>         be more challenging (especially if we are using hostpath pvs).
>         Updating the Prometheus scrape endpoint may require a new
>         component and container.
>
>         _______________________________________________
>         hawkular-dev mailing list
>         hawkular-dev at lists.jboss.org <mailto:hawkular-dev at lists.jboss.org>
>         https://lists.jboss.org/mailman/listinfo/hawkular-dev
>         <https://lists.jboss.org/mailman/listinfo/hawkular-dev>
>
>
>
>
>
> _______________________________________________
> hawkular-dev mailing list
> hawkular-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hawkular-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/hawkular-dev/attachments/20171130/b60e9e2a/attachment-0001.html 


More information about the hawkular-dev mailing list