Start multiple Ignite Nodes in one Docker container

classic Classic list List threaded Threaded
6 messages Options
vitalys vitalys
Reply | Threaded
Open this post in threaded view
|

Start multiple Ignite Nodes in one Docker container

Hi,

I am trying to run Ignite Cluster in Docker. I am running Docker Desktop
2.0.0.3 and I downloaded apacheignite image from Docker Hub. I am able to
start multiple Ignite Nodes from Windows Power shell, on e container at a
time.

docker run --rm --name myignite -p 47500:47500 -p 47501:47501 -p 10800:10800
-it apacheignite/ignite

and every time I am running this command new Ignite Node joins the Cluster.

Is it possible to run just one container and bring multiple Nodes of Ignite?



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
dmagda dmagda
Reply | Threaded
Open this post in threaded view
|

Re: Start multiple Ignite Nodes in one Docker container

I'm not a Docker expert and we'll defer this question to the rest of the community. 

However, from an architecture perspective, what's the reason for deploying multiple Ignite instances per container? If those instances are server nodes than you are risking to lose them all and have data loss if the container or host machine goes down.

In cases where Ignite is deployed in a virtual or cloud environment, it's ideal (but not strictly required) to pin an Ignite server node to a single host. This provides two benefits:

    * Avoids the "noisy neighbor" problem where Ignite VM would compete for the host resources with other applications.
      This might cause performance spikes on your Ignite cluster.

    * Ensures high-availability. If a host goes down and you had two or more Ignite server node VMs pinned to it,
      then it can lead to data loss.

-
Denis


On Mon, Jul 22, 2019 at 1:36 PM vitalys <[hidden email]> wrote:
Hi,

I am trying to run Ignite Cluster in Docker. I am running Docker Desktop
2.0.0.3 and I downloaded apacheignite image from Docker Hub. I am able to
start multiple Ignite Nodes from Windows Power shell, on e container at a
time.

docker run --rm --name myignite -p 47500:47500 -p 47501:47501 -p 10800:10800
-it apacheignite/ignite

and every time I am running this command new Ignite Node joins the Cluster.

Is it possible to run just one container and bring multiple Nodes of Ignite?



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
tim shea tim shea
Reply | Threaded
Open this post in threaded view
|

Re: Start multiple Ignite Nodes in one Docker container

Anecdotally I can tell you that another team I work with is running an Ignite cluster with 5 JVM instances, each running one Ignite server, per machine.  A dozen ore so machines last I heard.  They settled on 5 per machine after doing performance testing on various topologies, and got the best CPU utilization and request times running 5 per machine.  These are large 512GB machines. They do not use docker for this but I imagine results would be similar.


HTH

Tim

Tim "I don't have an email sig" Shea | Principal Engineer
Oracle Data Cloud
On 7/22/19 3:55 PM, Denis Magda wrote:
I'm not a Docker expert and we'll defer this question to the rest of the community. 

However, from an architecture perspective, what's the reason for deploying multiple Ignite instances per container? If those instances are server nodes than you are risking to lose them all and have data loss if the container or host machine goes down.

In cases where Ignite is deployed in a virtual or cloud environment, it's ideal (but not strictly required) to pin an Ignite server node to a single host. This provides two benefits:

    * Avoids the "noisy neighbor" problem where Ignite VM would compete for the host resources with other applications.
      This might cause performance spikes on your Ignite cluster.

    * Ensures high-availability. If a host goes down and you had two or more Ignite server node VMs pinned to it,
      then it can lead to data loss.

-
Denis


On Mon, Jul 22, 2019 at 1:36 PM vitalys <[hidden email]> wrote:
Hi,

I am trying to run Ignite Cluster in Docker. I am running Docker Desktop
2.0.0.3 and I downloaded apacheignite image from Docker Hub. I am able to
start multiple Ignite Nodes from Windows Power shell, on e container at a
time.

docker run --rm --name myignite -p 47500:47500 -p 47501:47501 -p 10800:10800
-it apacheignite/ignite

and every time I am running this command new Ignite Node joins the Cluster.

Is it possible to run just one container and bring multiple Nodes of Ignite?



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
dmagda dmagda
Reply | Threaded
Open this post in threaded view
|

Re: Start multiple Ignite Nodes in one Docker container

Tim,

Sounds like some bottleneck that holds Ignite from scaling vertically. I’ll appreciate if you ask the team to connect with Ignite dev community (via Ignite dev list). Probably, we can reproduce the bottleneck with their help.

Denis

On Monday, July 22, 2019, tim shea <[hidden email]> wrote:

Anecdotally I can tell you that another team I work with is running an Ignite cluster with 5 JVM instances, each running one Ignite server, per machine.  A dozen ore so machines last I heard.  They settled on 5 per machine after doing performance testing on various topologies, and got the best CPU utilization and request times running 5 per machine.  These are large 512GB machines. They do not use docker for this but I imagine results would be similar.


HTH

Tim

Tim "I don't have an email sig" Shea | Principal Engineer
Oracle Data Cloud
On 7/22/19 3:55 PM, Denis Magda wrote:
I'm not a Docker expert and we'll defer this question to the rest of the community. 

However, from an architecture perspective, what's the reason for deploying multiple Ignite instances per container? If those instances are server nodes than you are risking to lose them all and have data loss if the container or host machine goes down.

In cases where Ignite is deployed in a virtual or cloud environment, it's ideal (but not strictly required) to pin an Ignite server node to a single host. This provides two benefits:

    * Avoids the "noisy neighbor" problem where Ignite VM would compete for the host resources with other applications.
      This might cause performance spikes on your Ignite cluster.

    * Ensures high-availability. If a host goes down and you had two or more Ignite server node VMs pinned to it,
      then it can lead to data loss.

-
Denis


On Mon, Jul 22, 2019 at 1:36 PM vitalys <[hidden email]> wrote:
Hi,

I am trying to run Ignite Cluster in Docker. I am running Docker Desktop
2.0.0.3 and I downloaded apacheignite image from Docker Hub. I am able to
start multiple Ignite Nodes from Windows Power shell, on e container at a
time.

docker run --rm --name myignite -p 47500:47500 -p 47501:47501 -p 10800:10800
-it apacheignite/ignite

and every time I am running this command new Ignite Node joins the Cluster.

Is it possible to run just one container and bring multiple Nodes of Ignite?



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


--
-
Denis

vitalys vitalys
Reply | Threaded
Open this post in threaded view
|

Re: Start multiple Ignite Nodes in one Docker container

In reply to this post by dmagda
Well, I don't see how I lose the data in the Data Node if all the JVM's
within the Container joined Ignite Cluster. In case of Mode failure Cluster
will redistribute date between the remaining Nodes. Additionally we are
planning to run it in the cloud on Kubernetes ( I know very little about it
and just learning ) which supposedly will bring up new instance of the
Ignite Image in case one crashes.

I can see one advantage in starting multiple Nodes within one image and
that's maintenance, so when I planning to have 20 Nodes in my cluster I
don't need to bring up 20 Containers but let's say 4 with 5 JVMs per. As of
now I am just wondering if it's possible in general and trying to figure out
possible pros and cons.



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
ilya.kasnacheev ilya.kasnacheev
Reply | Threaded
Open this post in threaded view
|

Re: Start multiple Ignite Nodes in one Docker container

Hello!

Why do you need to have more than one node per physical machine (or at least a VM)?

Regards,
--
Ilya Kasnacheev


вт, 23 июл. 2019 г. в 17:03, vitalys <[hidden email]>:
Well, I don't see how I lose the data in the Data Node if all the JVM's
within the Container joined Ignite Cluster. In case of Mode failure Cluster
will redistribute date between the remaining Nodes. Additionally we are
planning to run it in the cloud on Kubernetes ( I know very little about it
and just learning ) which supposedly will bring up new instance of the
Ignite Image in case one crashes.

I can see one advantage in starting multiple Nodes within one image and
that's maintenance, so when I planning to have 20 Nodes in my cluster I
don't need to bring up 20 Containers but let's say 4 with 5 JVMs per. As of
now I am just wondering if it's possible in general and trying to figure out
possible pros and cons.



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