عن المشروع

ExternalDNS هو وحدة تحكم مفتوحة المصدر في Kubernetes تقوم بمزامنة الخدمات والـ Ingress المكشوفة في Kubernetes مع موفري DNS الخارجيين. مستوحى من DNS الداخلي في Kubernetes (KubeDNS)، يستخرج الموارد من واجهة برمجة تطبيقات 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، وغيرها) ونظام webhook لإضافة موفرين جدد دون تعديل قاعدة الشيفرة الأساسية. - مصادر موارد متعددة: يقرأ من خدمات Kubernetes، Ingresses، مسارات Gateway API، بوابات Istio، Contour HTTPProxy، F5 VirtualServer، Ambassador Host، DNSEndpoint CRDs، وغيرها. - إدارة آمنة: يستخدم سجلات TXT مع معرف مالك قابل للتكوين لتتبع السجلات التي يديرها، مما يسمح بالعمل بأمان في مناطق الاستضافة غير الفارغة. يدعم وضع التجربة الجافة (dry-run) لمعاينة التغييرات. - تكوين مرن: يدعم تصفية النطاقات، تخصيص TTL، أسماء المضيف الداخلية، عناوين IP الخارجية، وسياسات مختلفة (مزامنة، upsert-only). - مرونة النشر: يمكن تشغيله كوحدة تحكم داخل العنقود أو محلياً للاختبار. المشروع جزء من نظام Kubernetes SIGs ويُصان من قبل المجتمع. يتم إضافة موفرين جدد عبر نظام webhook بدلاً من الإدراج داخل الشجرة، مما يقلل عبء الصيانة على المشروع الأساسي.