إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
تستخدم خدمة Azure Kubernetes (AKS) CoreDNS لإدارة نظام أسماء النطاقات لنظام المجموعة وحلها مع جميع المجموعات 1.12.x والإصدارات الأحدث. AKS هي خدمة مدارة، لذلك لا يمكنك تعديل التكوين الرئيسي ل CoreDNS ( CoreFile). بدلا من ذلك، يمكنك استخدام Kubernetes ConfigMap لتجاوز الإعدادات الافتراضية. لمشاهدة الإعدادات الافتراضية الخاصة ب AKS CoreDNS ConfigMaps، استخدم kubectl get configmaps --namespace=kube-system coredns --output yaml الأمر.
توضح لك هذه المقالة كيفية استخدام ConfigMaps لخيارات تخصيص CoreDNS الأساسية في Azure Kubernetes Service (AKS).
إشعار
في السابق، كان AKS يستخدم kube-dns لإدارة نظام أسماء النطاقات لنظام المجموعة وحله، ولكن تم إهماله الآن.
kube-dns تم عرض خيارات التخصيص المختلفة عبر خريطة التكوين الخاصة ب Kubernetes. CoreDNS غير متوافق مع الإصدارات السابقة مع kube-dns. يجب تحديث أي تخصيصات سابقة للعمل مع CoreDNS.
المتطلبات الأساسية
- تفترض هذه المقالة أن لديك تجمع AKS قائمًا. إذا كنت بحاجة إلى نظام مجموعة AKS، يمكنك إنشاء مجموعة باستخدام Azure CLI أو Azure PowerShell أو مدخل Azure.
- تحقق من إصدار CoreDNS الذي تقوم بتشغيله. قد تتغير قيم التكوين بين الإصدارات.
دعم المكون الإضافي
يتم دعم جميع المكونات الإضافية الخاصة ب CoreDNS المدمجة. لا يتم دعم أي إضافات أو مكونات إضافية تابعة للغير.
هام
عند إنشاء تكوينات مثل تلك الموجودة في هذه المقالة، يجب أن تنتهي الأسماء التي تحددها في data القسم ب .server أو .override. يتم تعريف اصطلاح التسمية هذا في AKS CoreDNS ConfigMap الافتراضي، والذي يمكنك عرضه باستخدام kubectl get configmaps --namespace=kube-system coredns --output yaml الأمر .
تكوين عمليات إعادة كتابة اسم DNS
قم بإنشاء ملف باسم
corednsms.yamlوالصقه في مثال التكوين التالي. تأكد من استبداله<domain to be rewritten>باسم النطاق المؤهل بالكامل (FQDN).apiVersion: v1 kind: ConfigMap metadata: name: coredns-custom namespace: kube-system data: test.server: | <domain to be rewritten>.com:53 { log errors rewrite stop { name regex (.*)\.<domain to be rewritten>\.com {1}.default.svc.cluster.local answer name (.*)\.default\.svc\.cluster\.local {1}.<domain to be rewritten>.com } forward . /etc/resolv.conf # You can redirect this to a specific DNS server such as 10.0.0.10, but that server must be able to resolve the rewritten domain name }هام
إذا قمت بإعادة التوجيه إلى خادم DNS، مثل CoreDNS service IP، التي يجب أن يكون الخادم الخاص ب DNS يمكنه حل اسم المجال المعاد كتابته.
قم بإنشاء ConfigMap باستخدام
kubectl apply configmapالأمر وحدد اسم بيان YAML الخاص بك.kubectl apply -f corednsms.yamlتحقق من تطبيق التخصيصات باستخدام الأمر
kubectl get configmaps.kubectl get configmaps --namespace=kube-system coredns-custom -o yamlقم بإجراء إعادة تشغيل متجددة لإعادة تحميل ConfigMap وتمكين Kubernetes Scheduler من إعادة تشغيل CoreDNS دون توقف عن العمل باستخدام الأمر
kubectl rollout restart.kubectl --namespace kube-system rollout restart deployment coredns
تحديد خادم إعادة توجيه لحركة مرور الشبكة
قم بإنشاء ملف باسم
corednsms.yamlوالصقه في مثال التكوين التالي. تأكد من استبدال الاسمforwardوالقيم<domain to be rewritten>الخاصة بك.apiVersion: v1 kind: ConfigMap metadata: name: coredns-custom namespace: kube-system data: test.server: | # You can select any name here, but it must end with the .server file extension <domain to be rewritten>.com:53 { forward foo.com 1.1.1.1 }قم بإنشاء ConfigMap باستخدام الأمر
kubectl apply configmap.kubectl apply -f corednsms.yamlقم بإجراء إعادة تشغيل متجددة لإعادة تحميل ConfigMap وتمكين Kubernetes Scheduler من إعادة تشغيل CoreDNS دون توقف عن العمل باستخدام الأمر
kubectl rollout restart.kubectl --namespace kube-system rollout restart deployment coredns
استخدم المجالات المخصصة
قد ترغب في تكوين المجالات المخصصة التي لا يمكن حلها داخليا إلا على سبيل المثال، قد ترغب في حل المجال المخصص puglife.local، وهو ليس نطاق مستوى أعلى صالحا. بدون تكوين مجال مخصص، لا يمكن لنظام المجموعات الخاص ب AKS إعادة حل العنوان.
قم بإنشاء ملف جديد باسم
corednsms.yamlوالصقه في مثال التكوين التالي. تأكد من تحديث النطاق المخصص وعنوان IP بقيمك الخاصة.apiVersion: v1 kind: ConfigMap metadata: name: coredns-custom namespace: kube-system data: puglife.server: | # You can select any name here, but it must end with the .server file extension puglife.local:53 { errors cache 30 forward . 192.11.0.1 # This is my test/dev DNS server }قم بإنشاء ConfigMap باستخدام الأمر
kubectl apply configmap.kubectl apply -f corednsms.yamlقم بإجراء إعادة تشغيل متجددة لإعادة تحميل ConfigMap وتمكين Kubernetes Scheduler من إعادة تشغيل CoreDNS دون توقف عن العمل باستخدام الأمر
kubectl rollout restart.kubectl --namespace kube-system rollout restart deployment coredns
تكوين مجالات كعب الروتين
إنشاء ملف باسم
corednsms.yamlولصق تكوين المثال التالي. تأكد من تحديث النطاقات المخصصة وعناوين IP بالقيم الخاصة بك.apiVersion: v1 kind: ConfigMap metadata: name: coredns-custom namespace: kube-system data: test.server: | # You can select any name here, but it must end with the .server file extension abc.com:53 { errors cache 30 forward . 1.2.3.4 } my.cluster.local:53 { errors cache 30 forward . 2.3.4.5 }قم بإنشاء ConfigMap باستخدام
kubectl apply configmapالأمر وتحديد.kubectl apply -f corednsms.yamlقم بإجراء إعادة تشغيل متجددة لإعادة تحميل ConfigMap وتمكين Kubernetes Scheduler من إعادة تشغيل CoreDNS دون توقف عن العمل باستخدام الأمر
kubectl rollout restart.kubectl --namespace kube-system rollout restart deployment coredns
إضافة تعييناتto-IP المضيف المخصص
إنشاء ملف باسم
corednsms.yamlولصق تكوين المثال التالي. تأكد من تحديث عناوين IP وأسماء المضيفين بقيمك الخاصة.apiVersion: v1 kind: ConfigMap metadata: name: coredns-custom # This is the name of the ConfigMap you can overwrite with your changes namespace: kube-system data: test.override: | # You can select any name here, but it must end with the .override file extension hosts { 10.0.0.1 example1.org 10.0.0.2 example2.org 10.0.0.3 example3.org fallthrough }قم بإنشاء ConfigMap باستخدام الأمر
kubectl apply configmap.kubectl apply -f corednsms.yamlقم بإجراء إعادة تشغيل متجددة لإعادة تحميل ConfigMap وتمكين Kubernetes Scheduler من إعادة تشغيل CoreDNS دون توقف عن العمل باستخدام الأمر
kubectl rollout restart.kubectl --namespace kube-system rollout restart deployment coredns
الخطوات التالية
- لاستكشاف مشكلات CoreDNS وإصلاحها، راجع استكشاف مشكلات CoreDNS وإصلاحها على خدمة Azure Kubernetes (AKS).
- للتعرف على سلوك التحجيم التلقائي ل CoreDNS، راجع التحجيم التلقائي ل CoreDNS في خدمة Azure Kubernetes (AKS).