Create an Azure Kubernetes Service cluster with API Server VNet Integration

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

اتصال خادم 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

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

Availability

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

إنشاء نظام مجموعة AKS مع API Server VNet Integration باستخدام VNet المدارة

يمكنك تكوين مجموعات AKS الخاصة بك مع تكامل API Server VNet في VNet المدار أو إحضار وضع VNet الخاص بك. يمكنك إنشاؤها كتجمعات عامة (مع وصول خادم API متاح عبر IP عام) أو مجموعات خاصة (حيث يمكن الوصول إلى خادم API فقط عبر اتصال VNet الخاص). يمكنك أيضا التبديل بين حالة عامة وخاصة دون إعادة توزيع نظام المجموعة.

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

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

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

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

  • نشر مجموعة 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 \
        --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 \
        --generate-ssh-keys
    

إنشاء مجموعة AKS خاصة مع API Server VNet Integration باستخدام إحضار VNet الخاصة بك

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

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

تحذير

تحتفظ مجموعة AKS ب 9 عناوين IP على الأقل في مساحة عنوان الشبكة الفرعية. قد يمنع نفاد عناوين IP تحجيم خادم API ويتسبب في انقطاع خادم 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 موجود إلى API Server VNet Integration

تحذير

API Server VNet Integration هو ميزة أحادية الاتجاه حساسة للسعة.

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

  • يتم التحقق من صحة السعة، ولكن ليس محجوزا.
    تتحقق AKS من صحة السعة الإقليمية عند تمكين الميزة على مجموعة موجودة، ولكن هذا التحقق من الصحة لا يحجز السعة. إذا تأخرت إعادة التشغيل وأصبحت السعة غير متوفرة في هذه الأثناء، فقد تفشل المجموعة في البدء بعد التوقف أو إعادة التشغيل. لن تخضع المجموعات التي مكنت هذه الميزة قبل التوفر العام (GA) أو التي لم تتم إعادة تشغيلها بعد منذ التمكين، إلى التحقق من صحة السعة.

  • لا يمكن تعطيل الميزة.
    بمجرد التمكين، تكون الميزة دائمة. لا يمكنك تعطيل تكامل API Server VNet.

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

تحذير

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

  • تحديث نظام المجموعة إلى 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>
    

تمكين أو تعطيل وضع نظام المجموعة الخاص على نظام مجموعة موجود مع 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 آخر أو اشتراك باستخدام نقطة نهاية خاصة.

إنشاء نظام مجموعة خاصة للتكامل الخاص لخادم 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.

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