Load-balancing & Service Discovery

Cilium supports two options for cross-cluster service discovery and load-balancing with Cluster Mesh: Multi-Cluster Services API (MCS-API) and Global Services. You can use either option, or both, depending on your needs and environment.

MCS-API is a Kubernetes SIG Multicluster standard based on the ServiceExport and ServiceImport resources. It provides higher-level features such as consistent global service properties, status condition reporting, and a dedicated clusterset.local DNS domain, which requires CoreDNS configuration that Cilium can manage automatically when CoreDNS auto-configuration is enabled.

Global Services provide Cilium-specific cross-cluster load-balancing directly from Service annotations. Global Services can be simpler to set up in some environments and are useful when you want different Service properties in each cluster or more granular control over how backends are shared.

  • Use MCS-API if you want to use a Kubernetes SIG Multicluster standard with higher-level features.

  • Use Global Services if you want to directly use Cilium Service annotations or need more granular control.