Об этом проекте

ExternalDNS — это open-source Kubernetes-контроллер, синхронизирующий открытые сервисы и Ingress Kubernetes с внешними DNS-провайдерами. Вдохновлённый внутренним DNS Kubernetes (KubeDNS), он получает ресурсы из API Kubernetes для определения желаемых DNS-записей, но, в отличие от KubeDNS, сам не является DNS-сервером — вместо этого он настраивает внешних провайдеров DNS, таких как AWS Route 53, Google Cloud DNS, Cloudflare, Azure DNS и многих других. Основные возможности включают: - Управление DNS без привязки к провайдеру: Поддерживает множество встроенных провайдеров (AWS Route 53, Google Cloud DNS, Cloudflare, Azure DNS, Alibaba Cloud DNS, Oracle Cloud, OVHcloud, Scaleway, PowerDNS, CoreDNS и другие), а также систему вебхуков для добавления новых провайдеров без изменения основного кода. - Несколько источников ресурсов: Читает из сервисов Kubernetes, Ingress, маршрутов Gateway API, шлюзов Istio, HTTPProxy Contour, F5 VirtualServer, Ambassador Host, CRD DNSEndpoint и других. - Безопасное управление: Использует TXT-записи с настраиваемым идентификатором владельца для отслеживания управляемых записей, что позволяет безопасно работать в непустых хостинг-зонах. Поддерживает режим пробного запуска (dry-run) для предварительного просмотра изменений. - Гибкая настройка: Поддерживает фильтрацию доменов, настройку TTL, внутренние имена хостов, внешние IP-адреса и различные политики (синхронизация, только обновление). - Гибкость развёртывания: Может работать как контроллер в кластере или локально для тестирования. Проект является частью экосистемы Kubernetes SIGs и поддерживается сообществом. Новые провайдеры добавляются через систему вебхуков, а не встроенными, что снижает нагрузку на сопровождение основного проекта.