Service Discovery with CoreDNS Plugins in Golang

John Belamaric, Yong Tang at KubeCon + CloudNativeCon North America 2020

Best known as the default cluster DNS server for Kubernetes, CoreDNS is a flexible and extensible DNS server with a focus on service discovery. The extensibility of CoreDNS comes from its plugin-based architecture: new features can be added as plugins easily with Golang. In this session, we will update the current state and the road map of CoreDNS, as well as the progress of CoreDNS’s participation in GSoC and CommunityBridge program. We will also take a detailed look at the plugin system of CoreDNS, and a demo plugin that achieves source IP based service discovery. The complete golang code of the demo plugin will be walked through to showcase the simplicity and ease of convenience for adding new functionalities in CoreDNS.