jargon

Comparison

Headless servicevsVirtual IP

Headless service

the name resolves to every instance's own address instead of one virtual one, because the client wants to choose.

A service with no virtual address, whose DNS record returns the individual backend addresses. It exists for clients that need to address members directly — database replicas, brokers, anything doing its own connection pooling or its own load balancing. It is also the standard fix for a gRPC or HTTP/2 client whose single long-lived connection would otherwise pin itself to one backend forever.

Full entry →

Virtual IP

the address you connect to belongs to no machine at all; something on every node rewrites the packet to a real instance.

A stable address that fronts a changing set of real backends, implemented in the node's packet path rather than by a process listening on it. It is what makes a service name resolve to one unchanging thing, and it is why you cannot ping a service address or capture traffic on it. Load balancing at this layer is per-connection, which matters for long-lived connections that never rebalance.

Full entry →

Related comparisons