This watches DNSEndpoint resources, and creates A and TXT records in the con-
figured DNS provider for each target federated ingress and federated service
resource type, to enable cross-cluster resolutions. ExternalDNS can be config-
ured with CoreDNS as the back end in your host cluster, or integrated with cloud
DNS services, such as Amazon Route 53, Google Cloud DNS, Microsoft Azure
DNS, etc
For example, deploying a federated ingress service using kubefedctl triggers the push
propagator to enable federated ingress resource types across member clusters. Upon
deployment, the KubeFed controller manages resource types and implements resource
synchronization, DNS management and cross-cluster orchestration.
Configures federation for a single API type
Type
Configuration
Cluster
Configuration
references
Configures federa-
tion with a set of
target clusters
Federated Type
Template
Placement
Overrides
Propagation
Declaration of resources to
be distributed
writes
Higher level APIs
and controllers
DNS
Scheduling
Maintains
DNS entries
for federated
services and
ingresses
DNS Provider
Makes deci-
sions using
status of
deployed
resources
Policy
Write your own
higher-level API!
Distributes
resources to
target
clusters
Makes decisions using
status of deployed
resources
Cluster 1
Status
Collects status of
distributed resources
Cluster N
Source: Github
The diagram to the right shows an example of multi-cluster topology using KubeFed v2.
Federated deployment utilizes FederatedService and Placement configurations to dis-
tribute workloads across the clusters. As a result, fed-svc-1 is deployed on clusters A, B,
D, and fed-svc-2 on clusters A, C, D.
66 | THE DOPPLER |
FALL 2019