إنشاء نظام مجموعة خدمة Azure Kubernetes مع تكامل الشبكة الظاهرية لخادم API (معاينة)

مجموعة Azure Kubernetes Service (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 الخاصة مثل المجموعات الخاصة القياسية.

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

يتوفر تكامل الشبكة الظاهرية لخادم API في جميع مناطق Azure العالمية.

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

  • Azure CLI بملحق aks-Preview 0.5.97 أو إصدار أحدث.
  • في حالة استخدام ARM أو REST API، يجب أن يكون إصدار AKS API معاينة 2022-04-02 أو أحدث.

تثبيت ملحق aks-preview Azure CLI

هام

تتوفر ميزات معاينة AKS على أساس الخدمة الذاتية والاشتراك. يتم توفير المعاينات "كما هي" و"كما هي متوفرة"، ويتم استبعادها من اتفاقيات مستوى الخدمة والضمان المحدود. تتم تغطية معاينات AKS جزئيًا بواسطة دعم العملاء على أساس بذل أفضل الجهود. على هذا النحو، هذه الميزات ليست مخصصة للاستخدام الإنتاجي. لمزيد من المعلومات، يُرجي الاطلاع على مقالات الدعم الآتية:

  • تثبيت ملحق aks-preview باستخدام az extension add الأمر .

    az extension add --name aks-preview
    
  • التحديث إلى أحدث إصدار من الملحق الذي تم إصداره باستخدام az extension update الأمر .

    az extension update --name aks-preview
    

تسجيل علامة ميزة "EnableAPIServerVnetIntegrationPreview"

  1. تسجيل علامة الميزة EnableAPIServerVnetIntegrationPreview باستخدام az feature register الأمر .

    az feature register --namespace "Microsoft.ContainerService" --name "EnableAPIServerVnetIntegrationPreview"
    

    يستغرق الأمر بضع دقائق حتى تظهر الحالة مُسجل.

  2. تحقق من حالة التسجيل باستخدام az feature show الأمر :

    az feature show --namespace "Microsoft.ContainerService" --name "EnableAPIServerVnetIntegrationPreview"
    
  3. عندما تعكس الحالة Registered، قم بتحديث تسجيل موفر موارد Microsoft.ContainerService باستخدام az provider register الأمر .

    az provider register --namespace Microsoft.ContainerService
    

إنشاء نظام مجموعة 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-api-server-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-api-server-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 الخاصة بك

عند استخدام إحضار الشبكة الظاهرية الخاصة بك، يجب إنشاء وتفويض شبكة فرعية لخادم 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-api-server-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-api-server-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

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

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

تحذير

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

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

  • تعطيل وضع نظام المجموعة الخاص باستخدام 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>
    

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

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