这个项目能做什么

ExternalDNS是一个开源Kubernetes控制器,可将暴露的Kubernetes服务和Ingress与外部DNS提供商同步。受Kubernetes内部DNS(KubeDNS)启发,它从Kubernetes API获取资源以确定所需DNS记录,但不同于KubeDNS,它本身不充当DNS服务器——而是配置外部DNS提供商,如AWS Route 53、Google Cloud DNS、Cloudflare、Azure DNS等。 主要功能包括: - 提供商无关的DNS管理:支持多种内置提供商(AWS Route 53、Google Cloud DNS、Cloudflare、Azure DNS、阿里云DNS、Oracle Cloud、OVHcloud、Scaleway、PowerDNS、CoreDNS等),并提供Webhook系统,无需修改核心代码库即可添加新提供商。 - 多资源来源:从Kubernetes服务、Ingresses、Gateway API路由、Istio网关、Contour HTTPProxy、F5 VirtualServer、Ambassador主机、DNSEndpoint CRD等读取。 - 安全管理:使用可配置所有者ID的TXT记录跟踪其管理的记录,支持在非空托管区域中安全操作。支持dry-run模式预览更改。 - 灵活配置:支持域过滤、TTL自定义、内部主机名、外部IP以及各种策略(同步、仅upsert)。 - 部署灵活性:可在集群内作为控制器运行,或在本地进行测试。 该项目是Kubernetes SIGs生态系统的一部分,由社区维护。新提供商通过Webhook系统添加,而非内置,减少了核心项目的维护负担。