إنشاء نظام مجموعة Azure Kubernetes Service (AKS) خاص

في مجموعة خاصة، يحتوي مستوى التحكم أو خادم API على عناوين IP داخلية تم تحديدها في مستند RFC 1918 - تخصيص العنوان للإنترنت الخاص. باستخدام مجموعة أجهزة الكمبيوتر الخاصة، يمكنك التأكد من بقاء نسبة استخدام الشبكة بين خادم API وتجمعات العقدة على شبكة الاتصال الخاصة فقط.

وحدة التحكم أو خادم API في مجموعة موارد Azure Kubernetes Service (AKS) المدارة. المجموعة أو تجمع العقدة الخاص بك موجود في مجموعة الموارد الخاصة بك. يمكن للخادم أو المجموعة أو تجمع العقدة الاتصال مع بعضهما البعض من خلال خدمة Azure Private Link في الشبكة الظاهرية لخادم API ونقطة نهاية خاصة يتم كشفها على الشبكة الفرعية لمجموعة AKS الخاصة بك.

عند توفير مجموعة AKS خاصة، تقوم AKS افتراضياً بإنشاء FQDN خاص بمنطقة DNS خاصة وFQDN عام إضافي مع سجل A مطابق في Azure Public DNS. تستمر عقد العامل في استخدام السجل A في منطقة DNS الخاصة لحل عنوان IP الخاص لنقطة النهاية الخاصة للاتصال بخادم API.

الغرض من هذه المقالة هو مساعدتك في نشر نظام مجموعة AKS خاص قائم على الارتباط. إذا كنت مهتما بإنشاء نظام مجموعة AKS دون ارتباط خاص أو نفق مطلوب، فشاهد إنشاء نظام مجموعة خدمة Azure Kubernetes باستخدام تكامل VNet لخادم API (معاينة).

توافر المناطق

تتوفر المجموعة الخاصة في المناطق العامة وAzure Government وMicrosoft Azure التي تديرها 21 منطقةVianet حيث يتم دعم AKS.

المتطلبات الأساسية

  • الإصدار 2.28.0 من Azure CLI والإصدارات الأحدث. قم بتشغيل az --version للعثور على الإصدار، ثم قم بتشغيل az upgrade لترقية الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI.
  • الملحق aks-preview 0.5.29 أو أعلى.
  • إذا كنت تستخدم Azure Resource Manager (ARM) أو Azure REST API، يجب أن يكون إصدار AKS API 2021-05-01 أو أعلى.
  • يتم دعم خدمة Azure Private Link على موازن تحميل Azure القياسي فقط. موازن تحميل Azure الأساسي غير مدعوم.
  • لاستخدام خادم DNS مخصص، أضف عنوان IP العام Azure 168.63.129.16 كخادم DNS المصدر في خادم DNS المخصص، وتأكد من إضافة عنوان IP العام هذا كخادم DNS الأول . لمزيد من المعلومات حول عنوان IP Azure، راجع ما هو عنوان IP 168.63.129.16؟
    • يجب أن تكون منطقة DNS الخاصة بالمجموعة ما تقوم بإعادة توجيهه إلى 168.63.129.16. يمكنك العثور على مزيد من المعلومات حول أسماء المناطق في تكوين منطقة DNS لخدمات Azure.

إشعار

تجمع عقدة Azure Linux متاح الآن بشكل عام (GA). للتعرف على المزايا وخطوات النشر، راجع مقدمة إلى مضيف حاوية Azure Linux ل AKS.

القيود

  • لا يمكن تطبيق نطاقات IP المعتمدة على نقطة نهاية خادم API الخاص، فهي تنطبق فقط على خادم API العام
  • تنطبق قيود خدمة الارتباط الخاص Azure على مجموعات أجهزة الكمبيوتر الخاصة.
  • لا يوجد دعم لوكلاء Azure DevOps المستضافين من Microsoft مع مجموعات خاصة. ضع في اعتبارك استخدام وكلاء مستضافين ذاتياً.
  • إذا كنت بحاجة إلى تمكين Azure Container Registry للعمل مع مجموعة AKS الخاصة، فقم بإعداد ارتباط خاص لسجل الحاوية في الشبكة الظاهرية للكتلة أو قم بإعداد التناظر بين شبكة Container Registry الظاهرية والشبكة الظاهرية لنظام المجموعة الخاصة.
  • لا يوجد دعم لتحويل مجموعات AKS الحالية إلى مجموعات خاصة.
  • سيؤدي حذف أو تعديل نقطة النهاية الخاصة في الشبكة الفرعية للعميل إلى توقف نظام المجموعة عن العمل.

إنشاء مجموعة أجهزة الكمبيوتر AKS الخاصة

إنشاء مجموعة موارد

إنشاء مجموعة موارد باستخدام az group create الأمر . يمكنك أيضا استخدام مجموعة موارد موجودة لمجموعة AKS الخاصة بك.

az group create -l eastus -n myResourceGroup

شبكات أساسية افتراضية

إنشاء نظام مجموعة خاصة مع الشبكات الأساسية الافتراضية az aks create باستخدام الأمر مع العلامة --enable-private-cluster .

az aks create -n <private-cluster-name> -g <private-cluster-resource-group> --load-balancer-sku standard --enable-private-cluster  

الشبكة المتقدمة

إنشاء مجموعة خاصة مع شبكة متقدمة az aks create باستخدام الأمر مع العلامات التالية:

az aks create \
    --resource-group <private-cluster-resource-group> \
    --name <private-cluster-name> \
    --load-balancer-sku standard \
    --enable-private-cluster \
    --network-plugin azure \
    --vnet-subnet-id <subnet-id> \
    --dns-service-ip 10.2.0.10 \
    --service-cidr 10.2.0.0/24 

استخدم المجالات المخصصة

إذا كنت تريد تكوين مجالات مخصصة لا يمكن حلها إلا داخليا، فشاهد استخدام المجالات المخصصة.

تعطيل FQDN عام

تعطيل FQDN عام على نظام مجموعة AKS جديد

تعطيل FQDN عام عند إنشاء مجموعة AKS خاصة باستخدام العلامة --disable-public-fqdn .

az aks create -n <private-cluster-name> -g <private-cluster-resource-group> --load-balancer-sku standard --enable-private-cluster --enable-managed-identity --assign-identity <resourceID> --private-dns-zone <private-dns-zone-mode> --disable-public-fqdn

تعطيل FQDN عام على مجموعة موجودة

تعطيل FQDN عام على مجموعة AKS موجودة باستخدام az aks update الأمر مع العلامة --disable-public-fqdn .

az aks update -n <private-cluster-name> -g <private-cluster-resource-group> --disable-public-fqdn

تكوين منطقة DNS خاصة

يمكنك تكوين مناطق DNS الخاصة باستخدام المعلمات التالية:

  • النظام: هذه هي القيمة الافتراضية. إذا تم حذف الوسيطة --private-dns-zone ، تقوم AKS بإنشاء منطقة DNS خاصة في مجموعة موارد العقدة.
  • بلا: الافتراضي هو DNS العام. لن تنشئ AKS منطقة DNS خاصة.
  • CUSTOM_PRIVATE_DNS_ZONE_RESOURCE_ID: يتطلب منك ذلك إنشاء منطقة DNS خاصة بالتنسيق التالي للسحابة العمومية Azure: privatelink.<region>.azmk8s.io أو <subzone>.privatelink.<region>.azmk8s.io. ستحتاج إلى معرف المورد لمنطقة DNS الخاصة للاستخدام في المستقبل. تحتاج أيضا إلى هوية معينة من قبل المستخدم أو كيان خدمة مع أدوار مساهم منطقة DNS الخاصة والمساهم في الشبكة . عند النشر باستخدام تكامل VNet لخادم API، تدعم منطقة DNS الخاصة تنسيق private.<region>.azmk8s.io تسمية أو <subzone>.private.<region>.azmk8s.io.
    • إذا كانت منطقة DNS الخاصة في اشتراك مختلف عن نظام مجموعة AKS، فأنت بحاجة إلى تسجيل موفر Azure Microsoft.ContainerServices في كلا الاشتراكين.
    • يمكن استخدام "fqdn-subdomain" مع "CUSTOM_PRIVATE_DNS_ZONE_RESOURCE_ID" فقط لتوفير قدرات المجال الفرعي إلى privatelink.<region>.azmk8s.io.
    • إذا تم تكوين نظام مجموعة AKS باستخدام كيان خدمة Active Directory، فإن AKS لا يدعم استخدام هوية مدارة معينة من قبل النظام مع منطقة DNS خاصة مخصصة.
    • إذا كنت تحدد <subzone> حد 32 حرفا للاسم <subzone> .

إشعار

يمكن تكوين CUSTOM_PRIVATE_DNS_ZONE_RESOURCE_ID باستخدام قالب ARM بالإضافة إلى Azure CLI. privateDNSZone يقبل معرف مورد منطقة DNZ الخاصة كما هو موضح في المثال التالي:

properties.apiServerAccessProfile.privateDNSZone.
"apiServerAccessProfile": {
"enablePrivateCluster": true,
"privateDNSZone": "system|none|[resourceId(..., 'Microsoft.Network/privateDnsZones', 'privatelink.<region>.azmk8s.io']"
}

هام

لا يمكن تغيير CUSTOM_PRIVATE_DNS_ZONE_RESOURCE_ID بعد إنشاء نظام المجموعة ولا يمكن حذفه. وإلا، سيكون للمجموعة مشكلات في تنفيذ عمليات الترقية.

إنشاء مجموعة AKS خاصة مع منطقة DNS خاصة

إنشاء مجموعة AKS خاصة مع منطقة DNS خاصة باستخدام az aks create الأمر مع العلامات التالية:

az aks create -n <private-cluster-name> -g <private-cluster-resource-group> --load-balancer-sku standard --enable-private-cluster --enable-managed-identity --assign-identity <resourceID> --private-dns-zone [system|none]

إنشاء مجموعة AKS خاصة مع منطقة DNS خاصة مخصصة أو منطقة فرعية DNS خاصة

إنشاء مجموعة AKS خاصة مع منطقة DNS خاصة مخصصة أو منطقة فرعية az aks create باستخدام الأمر مع العلامات التالية:

# The custom private DNS zone name should be in the following format: "<subzone>.privatelink.<region>.azmk8s.io"

az aks create -n <private-cluster-name> -g <private-cluster-resource-group> --load-balancer-sku standard --enable-private-cluster --enable-managed-identity --assign-identity <resourceID> --private-dns-zone <custom private dns zone or custom private dns subzone resourceID>

إنشاء مجموعة AKS خاصة مع منطقة DNS خاصة مخصصة ومجال فرعي مخصص

إنشاء مجموعة AKS خاصة مع منطقة DNS خاصة مخصصة ومجال فرعي باستخدام az aks create الأمر مع العلامات التالية:

# The custom private DNS zone name should be in one of the following formats: "privatelink.<region>.azmk8s.io" or "<subzone>.privatelink.<region>.azmk8s.io"

az aks create -n <private-cluster-name> -g <private-cluster-resource-group> --load-balancer-sku standard --enable-private-cluster --enable-managed-identity --assign-identity <resourceID> --private-dns-zone <custom private dns zone resourceID> --fqdn-subdomain <subdomain>

تحديث مجموعة خاصة من منطقة DNS خاصة إلى عامة

إشعار

تتطلب هذه الميزة إصدار >الملحق aks-preview = 0.5.97

تحديث نظام مجموعة خاصة من byo أو system إلى none استخدام az aks update الأمر مع العلامات التالية:

az aks update -n <private-cluster-name> -g <private-cluster-resource-group> --private-dns-zone none

إشعار

يمكنك التحديث فقط من byo أو system إلى none. لا يتم دعم أي تركيبة أخرى من قيم التحديث.

خيارات الاتصال بمجموعة أجهزة الكمبيوتر الخاصة

نقطة نهاية خادم API لا يوجد عنوان IP عام. لإدارة خادم API، ستحتاج إلى استخدام جهاز VM لديه حق الوصول إلى شبكة AZURE الظاهرية (VNet) الخاصة بمجموعة AKS. هناك العديد من الخيارات لإنشاء اتصال الشبكة إلى نظام المجموعة الخاص:

إشعار

يعد إنشاء جهاز ظاهري في نفس الشبكة الظاهرية مثل نظام مجموعة AKS هو الخيار الأسهل. تضيف Express Route و VPNs تكاليف وتتطلب تعقيدًا إضافيًا للشبكات. يتطلب منك التناظر الشبكي الظاهري التخطيط لنطاقات CIDR للشبكة للتأكد من عدم وجود نطاقات متداخلة.

تناظر الشبكة الظاهرية

تناظر الشبكة الظاهرية هو إحدى الطرق للوصول إلى نظام المجموعة الخاص بك. لاستخدام تناظر الشبكة الظاهرية، تحتاج إلى إعداد ارتباط بين الشبكة الظاهرية ومنطقة DNS الخاصة.

  1. من المتصفح، انتقل إلى مدخل Azure.
  2. من مدخل Microsoft Azure، انتقل إلى مجموعة موارد العقدة.
  3. قم بتحديد منطقة DNS الخاصة.
  4. في الجزء الأيمن، حدد Virtual network.
  5. إنشاء ارتباط تشعبي جديد لإضافة شبكة الظاهري VM إلى منطقة DNS الخاصة. يستغرق توفر الارتباط التشعبي منطقة DNS بضع دقائق.
  6. في مدخل Microsoft Azure، انتقل إلى مجموعة الموارد التي تحتوي على شبكة الاتصال الظاهرية لمجموعة أجهزة كمبيوتر.
  7. في الجزء الأيمن حدد الشبكة الظاهرية. يظهر اسم الشبكة الظاهرية بالشكل aks-vnet -*.
  8. في الجزء الأيمن، حدد النظراء .
  9. حدد إضافة، إضافة شبكة الظاهري VM ثم بإنشاء النظير. للحصول على المزيد من المعلومات، راجع تناظر الشبكة الافتراضية.

Hub and spoke مع DNS المخصص

تُستخدم أبنية Hub and Speak بشكل شائع لتوزيع الشبكات في Azure. في العديد من عمليات التوزيع، يتم تكوين إعدادات DNS في شبكات VNets المتكلمة للإشارة إلى معيد توجيه DNS مركزي للسماح بحل DNS المحلي والمستند إلى Azure. عند نشر نظام مجموعة AKS في بيئة الشبكات هذه، هناك بعض الاعتبارات الخاصة:

Private cluster hub and spoke

  • عند توفير مجموعة خاصة، يتم إنشاء نقطة نهاية خاصة (1) ومنطقة DNS خاصة (2) في مجموعة الموارد المدارة بواسطة نظام المجموعة بشكل افتراضي. يستخدم نظام المجموعة سجلا A في المنطقة الخاصة لحل IP لنقطة النهاية الخاصة للاتصال بخادم API.
  • ترتبط منطقة DNS الخاصة بشبكة VNet التي ترتبط بها عقد المجموعة (3). هذا يعني أنه لا يمكن حل نقطة النهاية الخاصة إلا عن طريق المضيفين الموجودين في شبكة VNet المرتبطة. في السيناريوهات التي لم يتم فيها تكوين DNS مخصص على VNet (افتراضي)، يعمل هذا دون مشكلة حيث تشير المضيفات إلى 168.63.129.16 ل DNS التي يمكنها حل السجلات في منطقة DNS الخاصة بسبب الارتباط.
  • في وحدات السيناريو حيث يحتوي على نظام المجموعة VNet إعدادات DNS مخصصة (4)، فشل توزيع مجموعة أجهزة كمبيوتر ما لم يتم ربط منطقة DNS الخاصة إلى VNet الذي يحتوي على محللات DNS المخصصة (5). يمكن إنشاء هذا الارتباط يدويا بعد إنشاء المنطقة الخاصة أثناء توفير نظام المجموعة أو عن طريق التنفيذ التلقائي عند الكشف عن إنشاء المنطقة باستخدام آليات التوزيع المستندة إلى الحدث (على سبيل المثال، Azure Event Grid و Azure Functions). لتجنب فشل نظام المجموعة أثناء النشر الأولي، يمكن نشر نظام المجموعة مع معرف مورد منطقة DNS الخاص. يعمل هذا فقط مع نوع Microsoft.ContainerService/managedCluster المورد وإصدار 2022-07-01واجهة برمجة التطبيقات . استخدام إصدار أقدم مع قالب ARM أو تعريف مورد Bicep غير مدعوم.

إشعار

لا تدعم إعادة التوجيه الشرطي المجالات الفرعية.

إشعار

إذا كنت تستخدم إحضار جدول التوجيه الخاص بك مع kubenet وجلب DNS الخاص بك مع مجموعات خاصة، فسيفشل إنشاء نظام المجموعة. تحتاج إلى إقران RouteTable في مجموعة موارد العقدة بالشبكة الفرعية بعد فشل إنشاء نظام المجموعة في جعل الإنشاء ناجحا.

استخدام اتصال نقطة نهاية خاصة

يمكن إعداد نقطة نهاية خاصة بحيث لا تحتاج الشبكة الظاهرية إلى نظير للتواصل مع نظام المجموعة الخاص. لاستخدام نقطة نهاية خاصة، قم بإنشاء نقطة نهاية خاصة جديدة في شبكتك الظاهرية ثم قم بإنشاء ارتباط بين شبكتك الظاهرية ومنطقة DNS خاصة جديدة.

هام

إذا تم تكوين الشبكة الظاهرية بخوادم DNS مخصصة، فسيلزم إعداد DNS الخاص بشكل مناسب للبيئة. راجع وثائق تحليل أسماء الشبكات الظاهرية لمزيد من التفاصيل.

إنشاء مورد نقطة نهاية خاصة

إنشاء مورد نقطة نهاية خاصة في VNet الخاص بك:

  1. من المتصفح، انتقل إلى مدخل Azure.
  2. من قائمة مدخل Azure، حدد إنشاء مورد.
  3. ابحث عن Private Endpoint وحدد Create > Private Endpoint.
  4. حدد إنشاء.
  5. في علامة التبويب Basics ، قم بإعداد الخيارات التالية:
    • تفاصيل المشروع:
      • حدد Azure Subscription.
      • حدد مجموعة موارد Azure حيث توجد شبكتك الظاهرية.
    • تفاصيل المثيل:
      • أدخل اسماً لنقطة النهاية الخاصة، مثل myPrivateEndpoint.
      • حدد منطقة لنقطة النهاية الخاصة.

هام

تحقق من أن المنطقة المحددة هي نفس المنطقة الظاهرية التي تريد الاتصال منها، وإلا فلن ترى شبكتك الظاهرية في علامة التبويب Configuration.

  1. حدد Next: Resource وقم بإعداد الخيارات التالية:
    • أسلوب الاتصال: حدد الاتصال إلى مورد Azure في دليلي.
    • الاشتراك: حدد الاشتراك حيث يوجد نظام المجموعة الخاص بك.
    • نوع المورد: حدد Microsoft.ContainerService/managedClusters.
    • المورد: حدد نظام المجموعة الخاص بك.
    • المورد الفرعي المستهدف: حدد الإدارة.
  2. حدد Next: Virtual Network وقم بإعداد الخيارات التالية:
    • الشبكات:
      • "Virtual network": حدد شبكتك الظاهرية.
      • الشبكة الفرعية: حدد شبكتك الفرعية.
  3. حدد Next: DNS>Next: Tags و(اختياريا) إعداد قيم المفاتيح حسب الحاجة.
  4. حدد Next: Review + create>Create.

بمجرد إنشاء المورد، سجل عنوان IP الخاص لنقطة النهاية الخاصة للاستخدام في المستقبل.

قم بإنشاء منطقة DNS خاصة

بمجرد إنشاء نقطة النهاية الخاصة، قم بإنشاء منطقة DNS خاصة جديدة بنفس اسم منطقة DNS الخاصة التي تم إنشاؤها بواسطة نظام المجموعة الخاص:

  1. انتقل إلى مجموعة موارد العقدة في مدخل Microsoft Azure.
  2. حدد منطقة DNS الخاصة وسجل:
    • اسم منطقة DNS الخاصة، والتي تتبع النمط *.privatelink.<region>.azmk8s.io.
    • اسم A السجل (باستثناء اسم DNS الخاص).
    • مدة البقاء (TTL).
  3. من مدخل Microsoft Azure، حدد Create a resource.
  4. ابحث عن منطقة DNS الخاصة وحدد إنشاء > منطقة DNS خاصة.
  5. في علامة التبويب Basics ، قم بإعداد الخيارات التالية:
    • تفاصيل المشروع:
      • حدد اشتراكك.
      • حدد مجموعة الموارد حيث أنشأت نقطة النهاية الخاصة.
    • تفاصيل المثيل:
      • أدخل اسم منطقة DNS التي تم استردادها من الخطوات السابقة.
      • يتم تعيين المنطقة افتراضيا إلى موقع مجموعة الموارد الخاصة بك.
  6. اختر إنشاء>مراجعة + إنشاء.

إنشاء A سجل

بمجرد إنشاء منطقة DNS الخاصة، أنشئ سجلا A يربط نقطة النهاية الخاصة بالمجموعة الخاصة:

  1. انتقل إلى منطقة DNS الخاصة التي أنشأتها في الخطوات السابقة.
  2. في صفحة نظرة عامة ، حدد مجموعة السجلات.
  3. في علامة التبويب إضافة مجموعة سجلات، قم بإعداد الخيارات التالية:
    • الاسم: أدخل الاسم الذي A تم استرداده من السجل في منطقة DNS الخاصة بالمجموعة الخاصة.
    • النوع: حدد A - سجل العنوان.
    • TTL: أدخل الرقم من A السجل في منطقة DNS الخاصة بالمجموعة الخاصة.
    • وحدة TTL: قم بتغيير قيمة القائمة المنسدلة لمطابقة القيمة الموجودة في A السجل من منطقة DNS الخاصة بالمجموعة الخاصة.
    • عنوان IP: أدخل عنوان IP لنقطة النهاية الخاصة التي أنشأتها.

هام

عند إنشاء A السجل، استخدم الاسم فقط وليس اسم المجال المؤهل بالكامل (FQDN).

A بمجرد إنشاء السجل، اربط منطقة DNS الخاصة بالشبكة الظاهرية التي ستصل إلى نظام المجموعة الخاص:

  1. انتقل إلى منطقة DNS الخاصة التي أنشأتها في الخطوات السابقة.
  2. من الجزء الأيمن، حدد Virtual network links.
  3. حدد إضافة وقم بإعداد الخيارات التالية:
    • اسم الارتباط: أدخل اسما لارتباط الشبكة الظاهرية.
    • الاشتراك: حدد الاشتراك حيث يوجد نظام المجموعة الخاص بك.
    • الشبكة الظاهرية: حدد الشبكة الظاهرية لنظام المجموعة الخاصة بك.
  4. حدد موافق لإنشاء الارتباط.

قد يستغرق اكتمال العملية بضع دقائق. بمجرد إنشاء ارتباط الشبكة الظاهرية، يمكنك الوصول إليه من علامة التبويب Virtual network links التي استخدمتها في الخطوة 2.

تحذير

إذا تم إيقاف نظام المجموعة الخاص وإعادة تشغيله، تتم إزالة خدمة الارتباط الخاص الأصلية لنظام المجموعة الخاصة وإعادة إنشائها، مما يؤدي إلى قطع الاتصال بين نقطة النهاية الخاصة بك والكتلة الخاصة. لحل هذه المشكلة، قم بحذف وإعادة إنشاء أي نقاط نهاية خاصة أنشأها المستخدم مرتبطة بالمجموعة الخاصة. إذا كانت نقاط النهاية الخاصة المعاد إنشاؤها تحتوي على عناوين IP جديدة، فستحتاج أيضا إلى تحديث سجلات DNS.

الخطوات التالية

للاطلاع على أفضل الممارسات ذات الصلة، راجع أفضل ممارسات الاتصال بالشبكة والأمان في AKS.