You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ignite.apache.org by vitalys <vi...@prudential.com> on 2019/09/05 19:01:58 UTC

Connecting External Client to Containerized Cluster in Kubernetes

Hi, 

We have setup an Apache Ignite Cluster in Kubernetes ( 1 Node Per pod ) and
when we run "ignitevisorcmd.sh" from inside the Kubernetes we can see
correct topology of the Cluster ( 3 nodes ).

Our task is to run Ignite Client from outside the Kubernetes. We setup our
client config to use "KubernetesIpFinder" :

<property name="ipFinder">
        		<bean
class="org.apache.ignite.spi.discovery.tcp.ipfinder.kubernetes.TcpDiscoveryKubernetesIpFinder"/>
            </property>

But I am wondering how does Ignite Client know how to connect to Kubernetes? 
"TcpDiscoveryKubernetesIpFinder" contains multiple properties like
"registerAddresses",	"masterURL" , "namespace", "accountToken". Do we need
to define these properties in our Client configuration?

And in General, what's the right approach in setting up Client connection to
the Ignite Cluster that runs in Kubernetes?

thank you in advance.



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/

Re: Connecting External Client to Containerized Cluster in Kubernetes

Posted by Denis Magda <dm...@apache.org>.
Vitaly,

If you are using thick (aka. standard) Ignite clients then go ahead and
reuse the same IP Finder. The easiest way is to deploy the app in the same
namespace and the IP Finder will work out well.

If the cluster is accessed via thin clients or REST protocol then ensure
that the proper port numbers are visible via K8 LoadBalancer or by other
means:
https://apacheignite.readme.io/docs/amazon-web-services-eks-deployment#section-connecting-from-external-applications

-
Denis


On Wed, Sep 11, 2019 at 1:42 PM vitalys <vi...@prudential.com>
wrote:

> We currently have working installation where our Ignite Server Nodes reside
> on the standalone VMs and form a Cluster upon start by using shared
> Configuration setup. Our Client application joins Cluster on-demand, loads
> data into the Cluster and then kicks-off certain operations on the loaded
> data.
>
> We want to migrate Ignite Cluster Nodes from individual VMs to Kubernetes
> and containerize them along the way. So our challenge is to have an
> existing
> client join the Cluster while Cluster Nodes deployment platform is changed.
>
> I have some reservations about REST client since we need to load
> significant
> volumes of data in to the Cluster.
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>

RE: Connecting External Client to Containerized Cluster in Kubernetes

Posted by vitalys <vi...@prudential.com>.
We currently have working installation where our Ignite Server Nodes reside
on the standalone VMs and form a Cluster upon start by using shared
Configuration setup. Our Client application joins Cluster on-demand, loads
data into the Cluster and then kicks-off certain operations on the loaded
data.

We want to migrate Ignite Cluster Nodes from individual VMs to Kubernetes
and containerize them along the way. So our challenge is to have an existing
client join the Cluster while Cluster Nodes deployment platform is changed.

I have some reservations about REST client since we need to load significant
volumes of data in to the Cluster.



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/

RE: Connecting External Client to Containerized Cluster in Kubernetes

Posted by Anton <an...@gmail.com>.
Hello Vitaly,

Unfortunately, I am not aware of any working solution right now and it looks that the ticket related to special discovery mechanism for external cluster members is not in work currently: https://issues.apache.org/jira/browse/IGNITE-4161

You might find this mailing thread useful if you want to try to experiment with this, there are some hints and clues oh how this might work: http://apache-ignite-users.70518.x6.nabble.com/Kubernetes-Access-Ignite-Cluster-Externally-td20532.html

However, the mentioned issue and thread are about server nodes and thick clients. What kind of operations are you expecting to perform on k8s Ignite cluster, do you really need the external client to be full-scale cluster member? You still have thin clients and REST that will be definitely easier to connect and utilize.

I would also recommend reaching out to Ignite dev list and start another discussion there.

Regards,
Anton

Sent from Mail for Windows 10

From: vitalys
Sent: Thursday, September 5, 2019 10:02 PM
To: user@ignite.apache.org
Subject: Connecting External Client to Containerized Cluster in Kubernetes

Hi, 

We have setup an Apache Ignite Cluster in Kubernetes ( 1 Node Per pod ) and
when we run "ignitevisorcmd.sh" from inside the Kubernetes we can see
correct topology of the Cluster ( 3 nodes ).

Our task is to run Ignite Client from outside the Kubernetes. We setup our
client config to use "KubernetesIpFinder" :

<property name="ipFinder">
        		<bean
class="org.apache.ignite.spi.discovery.tcp.ipfinder.kubernetes.TcpDiscoveryKubernetesIpFinder"/>
            </property>

But I am wondering how does Ignite Client know how to connect to Kubernetes? 
"TcpDiscoveryKubernetesIpFinder" contains multiple properties like
"registerAddresses",	"masterURL" , "namespace", "accountToken". Do we need
to define these properties in our Client configuration?

And in General, what's the right approach in setting up Client connection to
the Ignite Cluster that runs in Kubernetes?

thank you in advance.



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/