<div dir="ltr">Hey Kevin!<div><br></div><div>The timing for looking into PetSets is perfect I think. Kubernetes upstream folks are thinking about Sticky IPs [16] (which are not essential for Infinispan but other projects might be really interested in this) and I asked some time ago about exposing PetSets to the outside world [17] (which is essential for accessing the cluster using Hot Rod client). </div><div><br></div><div>Please keep me in the loop. I&#39;m really interested in this.</div><div><br></div><div>Thanks</div><div>Sebastian</div><div><br></div><div><br></div><div>[16] <a href="https://github.com/kubernetes/kubernetes/issues/28969">https://github.com/kubernetes/kubernetes/issues/28969</a></div><div>[17] <a href="https://groups.google.com/forum/#!topic/kubernetes-dev/K-9KA_wMbmk">https://groups.google.com/forum/#!topic/kubernetes-dev/K-9KA_wMbmk</a></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Aug 21, 2016 at 7:05 PM, Kevin Conner <span dir="ltr">&lt;<a href="mailto:kconner@redhat.com" target="_blank">kconner@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Apologies, I’ve been travelling to London for the JDG meeting.<br>
<span class=""><br>
On 19 Aug 2016, at 10:00, Sebastian Laskawiec &lt;<a href="mailto:slaskawi@redhat.com">slaskawi@redhat.com</a>&gt; wrote:<br>
&gt; I&#39;ve been playing with Kubernetes PetSets [1] for a while and I&#39;d like to share some thoughts. Before I dig in, let me give you some PetSets highlights:<br>
&gt;       • PetSets are alpha resources for managing stateful apps in Kubernetes 1.3 (and OpenShift Origin 1.3).<br>
&gt;       • Since this is an alpha resource, there are no guarantees about backwards compatibility. Alpha resources can also be disabled in some public cloud providers (you can control which API versions are accessible [2]).<br>
&gt;       • PetSets allows starting pods in sequence (not relevant for us, but this is a killer feature for master-slave systems).<br>
&gt;       • Each Pod has it&#39;s own unique entry in DNS, which makes discovery very simple (I&#39;ll dig into that a bit later)<br>
&gt;       • Volumes are always mounted to the same Pods, which is very important in Cache Store scenarios when we restart pods (e.g. Rolling Upgrades [3]).<br>
&gt; Thoughts and ideas after spending some time playing with this feature:<br>
&gt;       • PetSets make discovery a lot easier. It&#39;s a combination of two things - Headless Services [4] which create multiple A records in DNS and predictable host names. Each Pod has it&#39;s own unique DNS entry following pattern: {PetSetName}-{PodIndex}.{<wbr>ServiceName} [5]. Here&#39;s an example of an Infinispan PetSet deployed on my local cluster [6]. As you can see we have all domain names and IPs from a single DNS query.<br>
&gt;       • Maybe we could perform discovery using this mechanism? I&#39;m aware of DNS discovery implemented in KUBE_PING [7][8] but the code looks trivial [9] so maybe it should be implement inside JGroups? @Bela - WDYT?<br>
&gt;       • PetSets do not integrate well with OpenShift &#39;new-app&#39; command. In other words, our users will need to use provided yaml (or json) files to create Infinispan cluster. It&#39;s not a show-stopper but it&#39;s a bit less convenient than &#39;oc new-app&#39;.<br>
&gt;       • Since PetSets are alpha resources they need to be considered as secondary way to deploy Infinispan on Kubernetes and OpenShift.<br>
&gt;       • Finally, the persistent volumes - since a Pod always gets the same volume, it would be safe to use any file-based cache store.<br>
&gt; If you&#39;d like to play with PetSets on your local environment, here are necessary yaml files [10].<br>
<br>
</span>PetSets are still in extremely early stages and I am part of a working group that has recently formed to cover the introduction of this within the products, including driving any necessary changes back upstream.  There will be Cloud Enablement involvement in this effort and any adoption of petsets will likely go through the existing project.<br>
<br>
        Kev<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
JBoss by Red Hat<br>
<br>
</font></span></blockquote></div><br></div>