smartnode icon indicating copy to clipboard operation
smartnode copied to clipboard

deploy rocketpool in kubernetes

Open melchiormoulin opened this issue 11 months ago • 4 comments

As of today rocketpool can be deployed with docker but not with kubernetes.

From the code it seems most call to API are done via docker exec

Could it be possible to add kubectl capability too ?

Out of curiosity why do we call api threw docker exec and not by having a REST API ?

i can handle the PR.

melchiormoulin avatar Jan 05 '25 17:01 melchiormoulin

I'd like to second this request. I'm going to build my own solution in the interim, but to have a helm chart or just a series of yaml files with simple replaceable variables via a values.yaml file would suffice.

Ideally, this should leverage something like Longhorn, Ceph, or the like.

khrystoph avatar Mar 07 '25 00:03 khrystoph

Can you elaborate on the use-case? Would having hundreds or thousands of validators benefit from a distributed deployment? Or is this with pure high-availability purpose in mind?

In the meantime @khrystoph I'd appreciate if you share your solution. Cheers!

itenev avatar Mar 09 '25 20:03 itenev

On my side it's more for availability purpose :

  • easier recovery process as all could be "as code"
  • Even if there is only 1 node it's also easier to deploy anywhere like cloud provider

For operator that have already a kubernetes cluster no need to bootstrapped specific node.

melchiormoulin avatar Mar 09 '25 21:03 melchiormoulin

The same is true on my end. It's all about high availability and ease of deployment. I want to have self-healing pods for execution client and beacon chain client, while mainly running the validator itself in a single pod and service.

I do plan on having it scale over time, but my plan is that I will keep using the same validator until the number of validators exceeds the capabilities of a single rpi CM5 8GB.

By separating everything out into separate deployments, running in kubernetes, and putting everything in persistent, clustered, and redundant storage, you minimize down-time in case of crash/instability.

Also, when I do eventually hit the limit of a single validator, having it set up in kubernetes would allow a very simple update process to duplicate the validator, while ensuring I'm using new keys that persist in case of failure/replacement.

Granted, that doesn't come into play until hundreds/thousands of validators, but I may get to that scale in a few years, if I can prove this concept out.

khrystoph avatar Mar 10 '25 19:03 khrystoph