Comparison
Service endpointvsVirtual IP
Service endpoint
a controller keeps a live list of which instances are ready, and removing one from that list is what actually stops traffic.
The maintained set of addresses currently eligible to receive a service's traffic, updated as instances become ready or unready. It is the join between health checking and routing, and it is the object to look at when a service is sending traffic to something that is not answering. Propagation is not instant — the list, the proxies and the DNS caches all update independently — which is the mechanism behind the handful of errors every rollout produces.
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 →