إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
LocalDNS هو ميزة في خدمة خدمة Azure Kubernetes (AKS) مصممة لتعزيز أداء ومرونة حل نظام أسماء النطاقات (DNS) لأحمال العمل التي تعمل في عنقودك. عند نشر وكيل DNS على كل عقدة، يقلل LocalDNS من زمن استجابة DNS، ويحسن الموثوقية أثناء اضطرابات الشبكة، ويوفر خيارات تكوين متقدمة للتخزين المؤقت وإعادة التوجيه. تشرح هذه المقالة كيفية عمل LocalDNS وخيارات التكوين الخاصة به وكيفية تمكين LocalDNS والتحقق منها واستكشاف الأخطاء وإصلاحها في مجموعات AKS.
للتعرف على ماهية LocalDNS، بما في ذلك تفاصيل البنية والقدرات الرئيسية، يرجى الرجوع إلى DNS Resolution في خدمة Azure Kubernetes (AKS).
أفضل الممارسات لتكوين LocalDNS
عند تنفيذ LocalDNS في مجموعات AKS، ضع في اعتبارك أفضل الممارسات التالية:
ابدأ بتكوين بسيط: ابدأ بتكوين بسيط يستخدم الوضع
Preferredللتحقق من صياغة تكوين LocalDNS قبل الانتقال إلىRequiredالوضع. يقوم الوضعPreferredبالتحقق من إعدادك دون تفعيل LocalDNS، مما يسمح لك باكتشاف أخطاء التكوين مبكرا دون التأثير على العنقود.تنفيذ استراتيجيات التخزين المؤقت المناسبة: تكوين إعدادات ذاكرة التخزين المؤقت استنادا إلى خصائص حمل العمل:
- بالنسبة للسجلات المتغيرة بشكل متكرر، استخدم قيما أقصر
cacheDurationInSeconds. عند القيام بذلك ، من المهم ملاحظة أن cacheDurationInSeconds يعمل كحد أقصى لسجل DNS TTL ولكنه لا يزيده. TTL الناتج هو أصغر ما يتم إرجاعه من المنبع أو ما تم تعيينه في المكون الإضافي لذاكرة التخزين المؤقت. - بالنسبة للسجلات الثابتة، استخدم مدد ذاكرة التخزين المؤقت الأطول لتقليل استعلامات DNS.
- تمكين
serveStaleمع الإعدادات المناسبة للحفاظ على الخدمة أثناء انقطاع DNS. - يعمل التخزين المؤقت باستخدام LocalDNS على أساس أفضل الجهود ولا يضمن استجابات قديمة. تنقسم ذاكرة التخزين المؤقت إلى 256 قطعة وبحد أقصى افتراضي يبلغ 10,000 إدخال ، مما يسمح لكل قطعة بالاحتفاظ بحوالي 39 إدخالا. عندما تكون القطعة ممتلئة وتحتاج إلى إضافة إدخال جديد ، يتم اختيار أحد الإدخالات الموجودة بشكل عشوائي ليتم إخلاؤه. لا يوجد تفضيل للإدخالات القديمة أو منتهية الصلاحية. ونتيجة لذلك، قد لا يتوفر سجل قديم دائما، خاصة في ظل حجم الاستعلام المرتفع.
- بالنسبة للسجلات المتغيرة بشكل متكرر، استخدم قيما أقصر
مراقبة أداء DNS: بعد تمكين LocalDNS، راقب أداء DNS للتطبيق باستخدام:
- مقاييس أداء التطبيق.
- مقاييس العقدة للكشف عن ضغط الشبكة المنخفض.
- تسجيل الإدخالات عند
queryLoggingتعيين إلىLog.
اتبع مبدأ الامتياز الأقل: عند تكوين قواعد إعادة توجيه DNS، اسمح فقط بالوصول إلى خوادم DNS والمجالات المطلوبة.
الاختبار قبل نشر الإنتاج: اختبر دائما تكوين LocalDNS في بيئة غير إنتاجية قبل طرحه إلى مجموعات الإنتاج.
استخدام البنية الأساسية كتعليق برمجي (IaC): قم بتخزين ملف localdnsconfig.json في مستودع البنية الأساسية الخاص بك وقم بتضمينه في قوالب توزيع AKS.
تكوين الشبكة لإعادة توجيه TCP: عند استخدام TCP لإعادة توجيه DNS إلى VnetDNS، تأكد من أن مجموعات أمان الشبكة (NSGs) أو جدران الحماية أو الأجهزة الظاهرية للشبكة (NVAs) لا تمنع حركة مرور TCP بين خوادم CoreDNS/LocalDNS وVnetDNS.
تجنب تمكين كل من NodeLocal DNSCache و LocalDNS: لا يوصى بتمكين كل من Kubernetes NodeLocal DNSCache و LocalDNS في تجمع العقدة الخاص بك. بينما لا يمنع AKS هذا التكوين، يتم توجيه جميع حركة مرور DNS عبر LocalDNS، مما قد يؤدي إلى سلوك غير متوقع أو تقليل الفوائد من NodeLocal DNSCache.
Prerequisites
يجب أن يكون لديك عنقود AKS موجود مع إصدارات Kubernetes 1.31 وما بعدها لاستخدام LocalDNS. إذا كنت بحاجة إلى عنقود AKS، يمكنك إنشاء واحد باستخدام Azure CLI، Azure PowerShell، أو بوابة Azure.
تتطلب هذه المقالة إصدار Azure CLI 2.80.0 وما بعدها. إذا كنت تستخدم Azure Cloud Shell، فإن الإصدار الأخير مثبت بالفعل.
يدعم LocalDNS فقط على مجموعات العقد التي تعمل بنظام Azure Linux أو Ubuntu 22.04 وما بعده.
يجب أن يحتوي SKU للجهاز الظاهري (VM) المستخدم لتجمع العقدة على 4 وحدات معالجة مركزية افتراضية (أساسيات) على الأقل لدعم LocalDNS.
LocalDNS غير متوافق مع سياسات تصفية أسماء النطاقات المؤهلة بالكامل (FQDN) المطبقة في خدمات شبكات الحاويات المتقدمة (ACNS).
إدارة LocalDNS على عنقود AKS
يتم تكوين LocalDNS على مستوى تجمع العقدة في AKS، ما يعني أنه يمكنك تمكين LocalDNS أو تعطيله بشكل مستقل لكل تجمع عقدة في نظام المجموعة الخاص بك. هذا يصمم سلوك دقة DNS استنادا إلى المتطلبات المحددة لأحمال العمل أو البيئات المختلفة. لتمكين LocalDNS على تجمع عقدة، تحتاج إلى توفير ملف تكوين: localdnsconfig.json يحدد كيفية عمل LocalDNS لتجمع العقدة هذا.
Note
إذا كنت تستخدم التوفير التلقائي للعقد (NAP)، راجع إعدادات LocalDNS للحصول على تعليمات حول كيفية تفعيل LocalDNS مع NAP.
لتمكين LocalDNS أثناء إنشاء تجمع العقدة، استخدم الأمر التالي مع ملف التكوين المخصص:
az aks nodepool add --name mynodepool1 --cluster-name myAKSCluster --resource-group myResourceGroup --localdns-config ./localdnsconfig.json
لتمكين LocalDNS على تجمع عقدة موجود، استخدم الأمر التالي مع ملف التكوين المخصص:
az aks nodepool update --name mynodepool1 --cluster-name myAKSCluster --resource-group myResourceGroup --localdns-config ./localdnsconfig.json
Important
يؤدي تمكين LocalDNS على تجمع عقدة إلى بدء عملية إعادة رسم على جميع العقد داخل ذلك التجمع. يمكن أن تسبب هذه العملية اضطرابا مؤقتا في أعباء العمل الجارية وقد تؤدي إلى توقف التطبيق إذا لم تتم إدارتها بشكل صحيح. يجب أن تخطط لانقطاعات الخدمة المحتملة والتأكد من تكوين التطبيقات لقابلية الوصول العالية أو وجود ميزانيات تعطيل مناسبة قبل تمكين هذا الإعداد.