Grey Matter Control Plane
Last updated
Was this helpful?
Last updated
Was this helpful?
Grey Matter Control performs service discovery and distribution of configuration in the Grey Matter service mesh. Control provides policy and configuration for all running sidecars within the Grey Matter platform.
The Control server works in conjunction with the to manage, maintain, operate, and govern the Grey Matter hybrid mesh platform.
The Control server performs service discovery in the mesh and acts as an xDS server to which all proxies connect.
xDS is the generic name for the following:
Endpoints (EDS)
Clusters (CDS)
Routes (RDS)
Listeners (LDS)
Access Logging (ALS)
Aggregate (ADS)
Service Discovery is the way Grey Matter dynamically adds and removes instances of each microservice. Discovery adds the initial instances that come online, and modifies the mesh to react to any scaling actions that happen. To keep flexibility in the Grey Matter platform, the Control server supports a number of different service discovery options and platforms.
Envoy v1 CDS/SDS (beta)
Envoy v2 CDS/EDS (beta)
One key benefit to a service mesh is the dynamic handling of ephemeral service nodes. These nodes have neither consistent IP addresses nor consistent numbers of instances as services are spun up and down. The gm-control-api
server, in conjunction with Grey Matter Control, can handle these ephemeral services automatically.
The ability to automatically populate instances of a particular microservice comes from the cluster
object. In particular, the name
field in the cluster
object determines which nodes will be pulled out of the mesh and populated in the instances
array. In the example below, the name is catalog
. This means that all services that announce as catalog in service discovery, will be found and populated into the instances array after creation.
Create the following object:
Will be populated in the mesh as:
Even though the object was created with no instances
, they were discovered from the mesh and populated. Now any service that needs to talk to catalog
, can link to this cluster
and address all live instance.
Each proxy in the mesh is connected to the control plane through a gRPC stream to the Grey Matter Control server. Though gm-control-api
houses all the configuration for the mesh, it's ultimately gm-control
that turns these configs into full Envoy configuration objects and sends them to the proxies.
The configuration in the Control API is mapped to physical proxies by the name
field in the proxy
API object. It's very important that this field exactly match the service-cluster
identifier that the intended target proxy used when registering with gm-control.
In the example below, the proxy
object, and all other objects linked by their appropriate keys, will be turned into a full Envoy configuration and sent to any proxies that announce as a cluster catalog
.
Services that announce as:
Will receive the config form the object below, because XDS_CLUSTER
==name
, and they're both in the same zone.
Have a question about the Grey Matter Control Plane? Reach out to us at to