استخدام تكامل الشبكة الظاهرية لخادم API في خدمة Azure Kubernetes ‏(AKS)

ينطبق على: ✔️ AKS ✔️ Automatic Standard

مجموعة خدمة Azure Kubernetes ‏(AKS) المكونة مع API Server VNet Integration تسقط نقطة نهاية خادم API مباشرة إلى شبكة فرعية مفوضة في VNet حيث يتم نشر AKS. يتيح تكامل الشبكة الظاهرية لخادم API اتصال الشبكة بين خادم API وعقد نظام المجموعة دون الحاجة إلى ارتباط خاص أو نفق. يتوفر خادم API خلف VIP موازن تحميل داخلي في الشبكة الفرعية المفوضة، والتي تم تكوين العقد للاستفادة منها. باستخدام تكامل الشبكة الظاهرية لخادم API، يمكنك ضمان بقاء حركة مرور الشبكة بين خادم واجهة برمجة التطبيقات وتجمعات العقد الخاصة بك على الشبكة الخاصة فقط.

بالنسبة لمعظم أعباء العمل الإنتاجية، تعتبر AKS Automatic تجربة AKS الافتراضية الموصى بها. AKS Automatic جاهز للإنتاج بشكل افتراضي ويتضمن تكامل خادم API VNet كقدرة أمان معدة مسبقا في العنقود. في AKS Standard، يكون تكامل خادم API VNet اختياريا ويمكنك تفعيله أثناء إنشاء العنقود أو بتحديث عنقود موجود.

لمعرفة المزيد عن AKS Automatic، انظر ما هو خدمة Azure Kubernetes ‏(AKS) Automatic?

تكامل VNet في خادم API في AKS Automatic وAKS Standard

يتوفر تكامل خادم API VNet في كلا وضعي عنقود AKS، لكن الإعدادات تختلف:

  • AKS Automatic: تكامل خادم API VNet تم إعداده مسبقا.
  • معيار AKS: تكامل VNet في خادم API اختياري ويجب تفعيله بشكل صريح.

بالنسبة لمعظم سيناريوهات الإنتاج، ابدأ ب AKS Automatic لاستخدام الإعدادات الافتراضية الجاهزة للإنتاج وتقليل العبء التشغيلي.

اتصال خادم API

مستوى التحكم أو خادم API موجود في اشتراك Azure مدار من AKS. مجموعة العقد أو مجموعة العقد الخاصة بك موجودة في اشتراك Azure الخاص بك. يمكن للخادم والأجهزة الظاهرية التي تشكل عقد نظام المجموعة الاتصال مع بعضها البعض من خلال خادم API VIP وIPs pod التي يتم إسقاطها في الشبكة الفرعية المفوضة.

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

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

  • يجب أن يكون لديك Azure CLI الإصدار 2.73.0 أو أحدثه مثبتا. يمكنك التحقق من الإصدار الخاص بك باستخدام az --version الأمر .
  • إذا أحضرت شبكتك الافتراضية الخاصة، راجع متطلبات الشبكة الافتراضية.

Limitations

تنطبق القيود التالية على تكامل خادم API VNet، سواء تم تكوينه مسبقا على AKS Automatic أو مفعل صراحة على AKS Standard:

  • لا يدعم تكامل VNet في خادم API تشفير Virtual Network. العناقيد المنشورة على وحدات العقد v3 أو AKS السابقة (التي لا تدعم تشفير VNet) مسموح بها، لكن حركة المرور غير مشفرة. يتم حظر العناقيد المنشورة على وحدات العقد v4 أو AKS الأحدث (التي تدعم تشفير VNet) لأن شبكات VNet المشفرة غير متوافقة مع تكامل VNet في خادم API (API). لمزيد من المعلومات، راجع وحدات SKUs الافتراضية المدعومة من AKS.
  • لاستخدام الشبكات ذات المكدس المزدوج، يحتاج عنقودك إلى إصدار Kubernetes 1.26.3 أو أحدث، وإضافة azure الشبكة، ووضع overlayإضافة الشبكة. لمزيد من المعلومات، راجع Azure عنقود CNI مع شبكات مزدوجة المكدس.

Availability

  • يتوفر تكامل خادم API VNet في جميع مناطق السحابة العامة العامة باستثناء qatarcentral.

أنشئ عنقودا باستخدام تكامل خادم API VNet

في AKS Automatic، يتم إعداد تكامل VNet لخوادم API مسبقا. لا حاجة لعلم صريح --enable-apiserver-vnet-integration .

أنشئ مجموعة AKS التلقائية باتباع البدء السريع:

معيار AKS: VNet المدار

يمكنك تكوين عناقيد AKS Standard مع تكامل خادم VNet في وضع VNet المدار كمجموعات عامة أو خاصة.

إشعار

تكامل VNet في خادم API غير متوفر في قطر سنترال.

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

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

az group create --location <location> --name <resource-group>

توزيع نظام مجموعة عام

نشر عنقود AKS Standard عام مع تكامل VNet لخادم API لنظام VNet المدار باستخدام az aks create الأمر مع العلم --enable-apiserver-vnet-integration .

az aks create --name <cluster-name> \
    --resource-group <resource-group> \
    --location <location> \
    --network-plugin azure \
    --enable-apiserver-vnet-integration \
    --generate-ssh-keys

توزيع نظام مجموعة خاص

نشر عنقود AKS Standard خاص مع تكامل VNet لخادم API لإدارة VNet باستخدام az aks create الأمر مع --enable-apiserver-vnet-integration الأعلام و --enable-private-cluster .

az aks create --name <cluster-name> \
    --resource-group <resource-group> \
    --location <location> \
    --network-plugin azure \
    --enable-private-cluster \
    --enable-apiserver-vnet-integration \
    --generate-ssh-keys

AKS ستاندرد: إحضار VNet الخاص بك

عند استخدام VNet الخاص بك، يجب عليك إنشاء وتفويض شبكة فرعية لخادم API إلى Microsoft.ContainerService/managedClusters. يمنح هذا التفويض خدمة AKS صلاحيات لحقن كبسولات خادم API وموازن التحميل الداخلي في تلك الشبكة الفرعية. لا يمكنك استخدام الشبكة الفرعية لأي أحمال عمل أخرى، ولكن يمكنك استخدامها لمجموعات AKS متعددة موجودة في نفس الشبكة الظاهرية. الحد الأدنى لحجم شبكة الواجهة المدعومة لخادم واجهة برمجة التطبيقات هو /28.

تحتاج هوية نظام المجموعة إلى أذونات لكل من الشبكة الفرعية لخادم API والشبكة الفرعية للعقدة. يمكن أن يؤدي عدم وجود أذونات في الشبكة الفرعية لخادم API إلى فشل التزويد.

تحذير

يحتفظ عنقود AKS بما لا يقل عن تسعة عناوين IP في مساحة عناوين الشبكة الفرعية. نفاد عناوين IP يمكن أن يمنع توسع خوادم API ويسبب انقطاعا في خادم API.

إشعار

تكامل VNet في خادم API غير متوفر في قطر سنترال.

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

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

az group create --location <location> --name <resource-group>

إنشاء شبكة ظاهرية

  1. إنشاء شبكة ظاهرية az network vnet create باستخدام الأمر .

    az network vnet create --name <vnet-name> \
    --resource-group <resource-group> \
    --location <location> \
    --address-prefixes 172.19.0.0/16
    
  2. إنشاء شبكة فرعية لخادم API باستخدام az network vnet subnet create الأمر .

    az network vnet subnet create --resource-group <resource-group> \
    --vnet-name <vnet-name> \
    --name <apiserver-subnet-name> \
    --delegations Microsoft.ContainerService/managedClusters \
    --address-prefixes 172.19.0.0/28
    
  3. إنشاء شبكة فرعية az network vnet subnet create لنظام المجموعة باستخدام الأمر .

    az network vnet subnet create --resource-group <resource-group> \
    --vnet-name <vnet-name> \
    --name <cluster-subnet-name> \
    --address-prefixes 172.19.1.0/24
    

إنشاء هوية مدارة ومنحها أذونات على الشبكة الظاهرية

  1. إنشاء هوية مدارة az identity create باستخدام الأمر .

    az identity create --resource-group <resource-group> --name <managed-identity-name> --location <location>
    
  2. تعيين دور مساهم الشبكة إلى الشبكة الفرعية لخادم API باستخدام az role assignment create الأمر .

    az role assignment create --scope <apiserver-subnet-resource-id> \
    --role "Network Contributor" \
    --assignee <managed-identity-client-id>
    
  3. تعيين دور مساهم الشبكة إلى الشبكة الفرعية لنظام المجموعة باستخدام az role assignment create الأمر .

    az role assignment create --scope <cluster-subnet-resource-id> \
    --role "Network Contributor" \
    --assignee <managed-identity-client-id>
    

توزيع نظام مجموعة عام

نشر مجموعة AKS عامة مع تكامل API Server VNet باستخدام az aks create الأمر مع العلامة --enable-apiserver-vnet-integration .

az aks create --name <cluster-name> \
    --resource-group <resource-group> \
    --location <location> \
    --network-plugin azure \
    --enable-apiserver-vnet-integration \
    --vnet-subnet-id <cluster-subnet-resource-id> \
    --apiserver-subnet-id <apiserver-subnet-resource-id> \
    --assign-identity <managed-identity-resource-id> \
    --generate-ssh-keys

توزيع نظام مجموعة خاص

نشر مجموعة AKS خاصة مع تكامل API Server VNet باستخدام az aks create الأمر مع --enable-apiserver-vnet-integration علامات و --enable-private-cluster .

az aks create --name <cluster-name> \
    --resource-group <resource-group> \
    --location <location> \
    --network-plugin azure \
    --enable-private-cluster \
    --enable-apiserver-vnet-integration \
    --vnet-subnet-id <cluster-subnet-resource-id> \
    --apiserver-subnet-id <apiserver-subnet-resource-id> \
    --assign-identity <managed-identity-resource-id> \
    --generate-ssh-keys

تحويل مجموعة AKS Standard الحالية إلى تكامل VNet لخادم API

تحذير

تكامل VNet في خوادم API هو ميزة حساسة للسعة باتجاه واحد. عند تفعيل تكامل خادم API VNet على عنقود AKS Standard موجود، تنطبق القيود التالية:

  • يتطلب إعادة تشغيل يدوية: بعد تفعيل تكامل خادم API VNet باستخدام az aks update --enable-apiserver-vnet-integration، وبسبب انتقال الموارد إلى مستوى التحكم، يجب عليك إعادة تشغيل العنقود فورا ليبدأ التغيير حيز التنفيذ. هذه الإعادة ليست مؤتمتة. يؤدي تأخير إعادة التشغيل إلى زيادة خطر عدم توفر السعة، مما قد يمنع بدء تشغيل خادم واجهة برمجة التطبيقات. تضمن إعادة تشغيل العنقود أيضا أن جميع العقد تعيد الاتصال بشكل موثوق إلى نقطة نهاية خادم API الجديدة.
  • يتم التحقق من السعة، ولكن ليس المحجوزة: تقوم AKS بالتحقق من السعة الإقليمية عند تفعيل الميزة على عنقود موجود، لكن هذا التحقق لا يحجز السعة. إذا أخرت إعادة التشغيل وأصبحت السعة غير متاحة في هذه الأثناء، قد يفشل الcluster في التشغيل بعد التوقف أو إعادة التشغيل. العناقيد التي فعلت هذه الميزة قبل توفر العموميات (GA)، أو التي لم تعيد التشغيل بعد منذ التفعيل، لا تخضع لفحص السعة.
  • لا يمكن تعطيل الميزة: بمجرد تفعيلها، تصبح الميزة دائمة. لا يمكنك تعطيل تكامل خادم API VNet.

تقوم هذه الترقية بإجراء ترقية إصدار صورة العقدة على جميع تجمعات العقد وإعادة تشغيل جميع أحمال العمل أثناء خضوعها لترقية صورة متجددة.

تحذير

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

  1. تحديث نظام المجموعة إلى API Server VNet Integration باستخدام az aks update الأمر مع العلامة --enable-apiserver-vnet-integration .

    az aks update --name <cluster-name> \
        --resource-group <resource-group> \
        --enable-apiserver-vnet-integration \
        --apiserver-subnet-id <apiserver-subnet-resource-id>
    
  2. أعد تشغيل المجموعة باستخدام أوامر [az aks stop][az-aks-stop] و [az aks start][az-aks-start].

    az aks stop --name <cluster-name> --resource-group <resource-group>
    az aks start --name <cluster-name> --resource-group <resource-group>
    

تمكين أو تعطيل وضع نظام المجموعة الخاص على نظام مجموعة موجود مع API Server VNet Integration

يمكن أن يكون لدى أنظمة مجموعات AKS التي تم تكوينها باستخدام API Server VNet Integration إمكانية الوصول إلى الشبكة العامة/وضع نظام المجموعة الخاص ممكن أو معطل دون إعادة توزيع نظام المجموعة. لا يتغير اسم مضيف خادم API، ولكن يتم تعديل إدخالات DNS العامة أو إزالتها إذا لزم الأمر.

إشعار

--disable-private-cluster قيد المعاينة حاليًا. لمزيد من المعلومات، راجع مستويات المرجع والدعم.

تمكين وضع نظام المجموعة الخاص

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

az aks update --name <cluster-name> \
    --resource-group <resource-group> \
    --enable-private-cluster \
    --enable-apiserver-vnet-integration \
    --apiserver-subnet-id <apiserver-subnet-resource-id>

تعطيل وضع نظام المجموعة الخاص

تعطيل وضع نظام المجموعة الخاص باستخدام az aks update الأمر مع العلامة --disable-private-cluster .

az aks update --name <cluster-name> \
    --resource-group <resource-group> \
    --disable-private-cluster

الاتصال بالمجموعة باستخدام kubectl

قم بتكوين kubectl للاتصال بالمجموعة باستخدام az aks get-credentials الأمر .

az aks get-credentials --resource-group <resource-group> --name <cluster-name>

يمكنك كشف نقطة نهاية خادم API في عنقود خاص باستخدام API Server VNet Integration باستخدام Azure Private Link. تظهر الخطوات التالية كيفية إنشاء خدمة Private Link (PLS) في VNet الخاص بالعنقود والاتصال بها من VNet آخر أو اشتراك باستخدام نقطة نهاية خاصة.

إشعار

تكامل VNet في خادم API غير متوفر في قطر سنترال.

إنشاء نظام مجموعة خاصة للتكامل الخاص لخادم API Server VNet

إنشاء نظام مجموعة AKS خاص مع API Server VNet Integration باستخدام az aks create الأمر مع --enable-apiserver-vnet-integration علامات و --enable-private-cluster .

az aks create --name <cluster-name> \
    --resource-group <resource-group> \
    --location <location> \
    --enable-private-cluster \
    --enable-apiserver-vnet-integration

لمزيد من الإرشادات حول كيفية إعداد Private Link مع تكامل خادم API VNet، راجع Private Link مع تكامل VNet في خادم API Integr.

قواعد أمان مجموعة أمن الشبكة (NSG)

يسمح بكافة نسبة استخدام الشبكة داخل الشبكة الظاهرية بشكل افتراضي. ولكن إذا أضفت قواعد NSG لتقييد حركة المرور بين الشبكات الفرعية المختلفة، فتأكد من أن قواعد أمان NSG تسمح بأنواع الاتصال التالية:

الوجهة المصدر البروتوكول المنفذ استخدام
شبكة APIServer الفرعية CIDR الشبكة الفرعية لنظام المجموعة TCP 443 و4443 مطلوب لتمكين الاتصال بين العقد وخادم API.
شبكة APIServer الفرعية CIDR موازن تحميل Azure TCP 9988 مطلوب لتمكين التواصل بين موازن تحميل Azure وخادم API. يمكنك أيضا تفعيل جميع الاتصالات بين موازن تحميل Azure وخادم API Subnet CIDR.