Skip to content

Headless Service mode #30

@karolz-ms

Description

@karolz-ms

We currently have "proxied" Service mode and "proxyless", which is really just "singleton Endpoint with failover" mode.

Some applications/frameworks can do client-side load balancing. For those we should support "headless" service mode. The idea here is still to run without a proxy, but lift the limit on having just a single Endpoint backing the service. Instead, the Endpoint number would be unlimited, and the Service would advertise them via Endpoints status property (containing address/port information). Clients could then watch the (headless) Service object and change their routing accordingly.

This is technically a breaking change to the model, so we can go about it at least two different ways:

  1. Introduce a v2 Service object, where EffectiveAddress/EffectivePort is augmented by zero or more Endpoints that are part of Status, supporting all service modes, with all the Kubernetes forward/backward storage shimming.
  2. Introduce a different object type, e.g. Service2, still supporting all the service modes, but replacing EffectiveAddress/EffectivePort with Endpoints list.

IMO microsoft/usvc#2 is sufficient and less work, but we probably need more discussion around this.

CC @ReubenBond

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-orchestratorAffects DCP usage in Microsoft AspireenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions