Inspired by Kubernetes DNS, Kubernetes' cluster-internal DNS server ExternalDNS allows Kubernetes resources to be discovered via public DNS servers. Like KubeDNS, it retrieves a list of resources (services, ingresses, etc.) from the Kubernetes API to determine the desired list of DNS records. Unlike KubeDNS, however, it's not a DNS server itself, but merely configures other DNS providers accordingly—e.g., AWS Route 53 or Google Cloud DNS.
In a broader sense, ExternalDNS allows you to control DNS records dynamically via Kubernetes resources in a DNS provider-agnostic way.
For more information, refer to the Kubernetes ExternalDNS GitHub repository which contains NS1's provider information and documentation.