Deploy to Kubernetes according to the guide and example project for Deploying a Pekko Cluster to Kubernetes, but that requires more expertise of Kubernetes.
To take advantage of running inside Kubernetes while forming a cluster, Pekko Cluster Bootstrap helps forming or joining a cluster using Pekko Discovery to discover peer nodes. with the Kubernetes API or Kubernetes via DNS.
To avoid CFS scheduler limits, it is best not to use
resources.limits.cpu limits, but use
resources.requests.cpu configuration instead.
You can use both Pekko remoting and Pekko Cluster inside Docker containers. Note that you will need to take special care with the network configuration when using Docker, described here: Pekko behind NAT or in a Docker container
For the JVM to run well in a Docker container, there are some general (not Pekko specific) parameters that might need tuning:
Docker allows constraining each containers’ resource usage.
You may want to look into using
-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap options for your JVM later than 8u131, which makes it understand c-group memory limits. On JVM 10 and later, the
-XX:+UnlockExperimentalVMOptions option is no longer needed.
For multi-threaded applications such as the JVM, the CFS scheduler limits are an ill fit, because they will restrict the allowed CPU usage even when more CPU cycles are available from the host system. This means your application may be starved of CPU time, but your system appears idle.
For this reason, it is best to avoid
--cpu-quota entirely, and instead specify relative container weights using