The Lighthouse project provides DNS discovery for Kubernetes clusters connected by Submariner in multi-cluster environments.
The below diagram shows the basic Lighthouse architecture.
The Lighthouse Agent runs in every cluster and accesses the Kubernetes API server running in the broker cluster to exchange service metadata information with other clusters. Local service information is exported to the broker and service information from other clusters is imported.
The workflow is as follows:
The Lighthouse DNS server runs as an external DNS server which owns the domain clusterset.local. KubeDNS is configured to forward any request sent to clusterset.local to the Lighthouse DNS server, which uses the ServiceImport resources that are distributed by the controller for DNS resolution. The Lighthouse DNS server uses a round robin algorithm for IP selection to distribute the load evenly across the clusters.
The workflow is as follows.