Engine Processing Pod M3UA Kubernetes Service

The proc-m3ua-s<sid>-e<eid> service defines a Kubernetes service on TCP ports 2901, 2902 and others as needed for connections from Network Enablers (NEs) to Camel Gateways on MATRIXX Engine processing pods.

One instance of this service is required per processing pod. Each service must be configured with as many ports as processing pods in the engine. Engines can have different numbers of pods.

Ports for processing pod services are named: m3ua-<processing_blade_id>, where <processing_blade_id> identifies the processing pod. In the following example, the DNS service name for M3UA for processing pod 0 in engine 1 in sub-domain 1 is: proc-m3ua-s1e1-0.matrixx.svc.cluster.local.

If this engine had two processing pods (0 and 1), the port DNS names would be:
  • proc-m3ua-s1e1-0.matrixx.svc.cluster.local
  • proc-m3ua-s1e1-1.matrixx.svc.cluster.local

These services are defined independently of engine services, allowing them to be defined before engine start-up. The services are created by Helm when it creates the engine services, before the NE pods are started. Defining these services outside the engine allows services to join NEs and engines regardless of the order in which their pods are deployed.

Engines in Local Clusters

Engine processing pod services provide ClusterIP services for connecting local NEs to engines in the same Kubernetes cluster. In multi-cluster deployments the services also provide LoadBalancer services to NEs connecting from remote clusters using LoadBalancer and NodePorts. For more information about load balancing, see the discussion about MATRIXX cloud native reference architecture ingress load balancing in MATRIXX Architecture.

Engines in Remote Clusters

In remote clusters (where the NE is not in the same cluster as the engine), processing pod services are instead defined as ExternalName services that point to the DNS name of the LoadBalancer service providing the same service in the cluster local to the engine.