The Doppler Quarterly Fall 2019 | Page 68

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