Scaling Journey engine containers

In Kubernetes, Journey engine are defined as StatefulSets.

Each Pod in a StatefulSet derives its hostname from:
  • the name of the StatefulSet, and
  • the ordinal of the Pod.

The service manages the Pod domain and the format is as follows:

$(service name).$(namespace).svc.cluster.local

Example:

The Journey engine pod is regitered in the following format:

journey-0.listener.default.svc.cluster.local

In the Helm chart, you can configure these pods in the journey-configMap.yaml file.

Like a Deployment, a StatefulSet manages the Pods that are based on identical container specifications.

Unlike a Deployment, a StatefulSet maintains a sticky identity for each of their Pods.

The location of Journey Engine shared home is $HOME_DIR/Journey/Engine.

For the scaled instances of StatefulSet, journey-0, journey-1, journey-2,..journey-n, each instance has a file system mapped on the mount location.

Example:
$HOME_DIR/Journey/journey-0

In a Journey engine, by default, clustering is enabled. As soon as the engine starts, it creates journey-0, which is a copy of the engine folder. As you keep scaling the Journey engine, it creates folders named journey-0, journey-1, journey-2,..journey-n.

The logs for each pod will also be generated as journey-0, journey-1, journey-2,..journey-n.