مشاركة عبر


توفير شبكة ظاهرية لبيئة Azure Container Apps

يوضح لك المثال التالي كيفية إنشاء بيئة Container Apps في شبكة ظاهرية موجودة (VNet).

تَسجيل الدخول إلى مدخل Microsoft Azure.

إنشاء تطبيق حاويات

لإنشاء تطبيق الحاوية، ابدأ من الصفحة الرئيسية لمدخل Microsoft Azure.

  1. ابحث عن Container Apps في شريط البحث العلوي.
  2. حدد Container Apps في نتائج البحث.
  3. حدد زر إنشاء.

علامة تبويبBasics

في علامة التبويب أساسيات، قم بالإجراءات التالية.

  1. أدخل القيم التالية في قسم Project Details.

    الإعدادات الإجراء
    الاشتراك حدد اشتراك Azure الخاص بك.
    مجموعة الموارد حدد Create new وأدخل my-container-apps.
    اسم تَطبيق الحاوية أدخل my-container-app.
    مصدر التوزيع حدد صورة الحاوية.

إنشاء بيئة

بعد ذلك، إنشاء بيئة لتطبيق الحاوية.

  1. حدد المنطقة المناسبة.

    الإعداد القيمة‬
    المنطقة حدد Central US.
  2. في الحقل Create Container Apps environment، حدد الرابط Create new.

  3. في صفحة Create Container Apps environment في علامة التبويب Basics ، أدخل القيم التالية:

    الإعداد القيمة‬
    اسم البيئة قم بإدخال my-environment.
    نوع البيئة حدد ملفات تعريف حمل العمل.
    التكرار في المنطقة حدد Disabled
  4. حدد علامة التبويب مراقبة لإنشاء مساحة عمل Log Analytics.

  5. حدد Azure Log Analytics كوجهة السجلات.

  6. حدد الرابط Create new في حقل مساحة عمل سجل التحليلات وأدخل القيم التالية.

    الإعداد القيمة‬
    الاسم أدخل my-container-apps-logs.

    يتم ملء حقل الموقع مسبقا مع وسط الولايات المتحدة نيابة عنك.

  7. حدد موافق.

لديك أيضا خيار نشر DNS خاص لبيئة تطبيقات الحاوية الخاصة بك. لمزيد من المعلومات، راجع إنشاء وتكوين منطقة Azure Private DNS.

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

إشعار

لاستخدام شبكة ظاهرية مع تطبيقات الحاوية، يجب أن يكون للشبكة الظاهرية شبكة فرعية مخصصة مع نطاق /23 CIDR أو أكبر عند استخدام بيئة الاستهلاك فقط، أو نطاق CIDR أو /27 أكبر عند استخدام بيئة ملفات تعريف حمل العمل. لمعرفة المزيد حول تغيير حجم الشبكة الفرعية، راجع نظرة عامة على بنية الشبكة.

  1. حدد علامة التبويب Networking

  2. حدد نعم بجوار استخدام الشبكة الظاهرية الخاصة بك.

  3. بجوار مربع Virtual network، حدد الارتباط Create new وأدخل القيمة التالية.

    الإعداد القيمة‬
    الاسم أدخل my-custom-vnet.
  4. حدد الزر موافق.

  5. بجوار مربع الشبكة الفرعية للبنية الأساسية، حدد الارتباط Create new وأدخل القيم التالية:

    الإعداد القيمة‬
    Subnet Name أدخل شبكة فرعية للبنية الأساسية.
    كتلة عنوان الشبكة الافتراضية احتفظ بالقيم الافتراضية.
    Subnet Address Block احتفظ بالقيم الافتراضية.
  6. حدد الزر موافق.

  7. ضمن عنوان IP الظاهري، حدد خارجي لبيئة خارجية، أو داخلي لبيئة داخلية.

  8. حدد إنشاء.

توزيع تطبيق الحاوية

  1. حدد Review and create في أسفل الصفحة.

    إذا لم يتم العثور على أي أخطاء، يتم تمكين الزرCreate.

    إذا كانت هناك أخطاء، توضع علامة التبويب التي تحتوي على أخطاء بنقطة حمراء. انتقل إلى علامة التبويب المناسبة. يتم تمييز الحقول التي تحتوي على خطأ باللون الأحمر. بمجرد إصلاح كافة الأخطاء، حدد Review and create مرة أخرى.

  2. حدد إنشاء.

    يتم عرض صفحة مع الرسالة النشر قيد التقدم. بمجرد اكتمال النشر بنجاح، سترى الرسالة: اكتمل النشر الخاص بك.

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

الإعداد

لتسجيل الدخول إلى Azure من CLI، قم بتشغيل الأمر التالي واتبع المطالبات لإكمال عملية المصادقة.

az login

للتأكد من تشغيل أحدث إصدار من CLI، قم بتشغيل أمر الترقية.

az upgrade

بعد ذلك، قم بتثبيت أو تحديث ملحق Azure Container Apps ل CLI.

إذا تلقيت أخطاء حول المعلمات المفقودة عند تشغيل az containerapp الأوامر في Azure CLI أو cmdlets من Az.App الوحدة النمطية في PowerShell، فتأكد من تثبيت أحدث إصدار من ملحق Azure Container Apps.

az extension add --name containerapp --upgrade

إشعار

بدءا من مايو 2024، لم تعد ملحقات Azure CLI تمكن ميزات المعاينة بشكل افتراضي. للوصول إلى ميزات معاينة تطبيقات الحاوية، قم بتثبيت ملحق Container Apps باستخدام --allow-preview true.

az extension add --name containerapp --upgrade --allow-preview true

الآن بعد تثبيت الملحق أو الوحدة النمطية Microsoft.App الحالية، قم بتسجيل مساحات الأسماء و Microsoft.OperationalInsights .

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

تعيين متغيرات البيئة

تعيين متغيرات البيئة التالية. <PLACEHOLDERS> استبدل بالقيم الخاصة بك:

RESOURCE_GROUP="<RESOURCE_GROUP>"
LOCATION="<LOCATION>"
CONTAINERAPPS_ENVIRONMENT="<CONTAINERAPPS_ENVIRONMENT>"

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

إنشاء مجموعة موارد لتنظيم الخدمات المتعلقة بنشر تطبيق الحاوية.

az group create \
  --name $RESOURCE_GROUP \
  --location "$LOCATION"

إنشاء بيئة

يمكن لبيئة Azure Container Apps إنشاء حدود آمنة حول مجموعة من تطبيقات الحاويات. يتم توزيع Container Apps المنتشرة في نفس البيئة في نفس الشبكة الظاهرية وكتابة سجلات إلى نفس مساحة عمل Log Analytics.

Microsoft.ContainerService تسجيل الموفر.

az provider register --namespace Microsoft.ContainerService

قم بتعريف متغير للاحتفاظ باسم VNet.

VNET_NAME="my-custom-vnet"

الآن قم بإنشاء شبكة ظاهرية لإقرانها ببيئة Container Apps. يجب أن تحتوي الشبكة الظاهرية على شبكة فرعية متوفرة لنشر البيئة.

az network vnet create \
  --resource-group $RESOURCE_GROUP \
  --name $VNET_NAME \
  --location $LOCATION \
  --address-prefix 10.0.0.0/16
az network vnet subnet create \
  --resource-group $RESOURCE_GROUP \
  --vnet-name $VNET_NAME \
  --name infrastructure-subnet \
  --address-prefixes 10.0.0.0/23

عند استخدام بيئة ملفات تعريف حمل العمل، تحتاج إلى تحديث VNet لتفويض الشبكة الفرعية إلى Microsoft.App/environments. لا تفوض الشبكة الفرعية عند استخدام بيئة الاستهلاك فقط.

az network vnet subnet update \
  --resource-group $RESOURCE_GROUP \
  --vnet-name $VNET_NAME \
  --name infrastructure-subnet \
  --delegations Microsoft.App/environments

مع إنشاء الشبكة الظاهرية، يمكنك الآن الاستعلام عن معرف الشبكة الفرعية للبنية الأساسية.

INFRASTRUCTURE_SUBNET=`az network vnet subnet show --resource-group ${RESOURCE_GROUP} --vnet-name $VNET_NAME --name infrastructure-subnet --query "id" -o tsv | tr -d '[:space:]'`

وأخيرا، قم بإنشاء بيئة Container Apps باستخدام VNet المخصص.

لإنشاء البيئة، قم بتشغيل الأمر التالي. لإنشاء بيئة داخلية، أضف --internal-only.

az containerapp env create \
  --name $CONTAINERAPPS_ENVIRONMENT \
  --resource-group $RESOURCE_GROUP \
  --location "$LOCATION" \
  --infrastructure-subnet-resource-id $INFRASTRUCTURE_SUBNET

يصف الجدول التالي المعلمات المستخدمة مع containerapp env create.

المعلمة ‏‏الوصف‬
name اسم بيئة Container Apps.
resource-group اسم مجموعة الموارد.
logs-workspace-id (اختياري) معرف مساحة عمل Log Analytics موجودة. إذا تم حذفها، يتم إنشاء مساحة عمل لك.
logs-workspace-key سجل التحليلات لسرية العميل مطلوب في حالة استخدام مساحة عمل موجودة.
location موقع Azure حيث يتم توزيع البيئة.
infrastructure-subnet-resource-id معرف المورد لشبكة فرعية لمكونات البنية الأساسية وحاويات تطبيقات المستخدم.
internal-only (اختياري) لا تستخدم البيئة IP ثابتا عاما، بل عناوين IP الداخلية فقط المتوفرة في VNet المخصصة. (يتطلب معرف مورد الشبكة الفرعية للبنية الأساسية.)

التكوين الاختياري

لديك خيار نشر DNS خاص وتحديد نطاقات IP للشبكات المخصصة لبيئة تطبيقات الحاوية الخاصة بك.

توزيعDNS الخاص

إذا كنت تريد نشر تطبيق الحاوية الخاص بك مع DNS الخاص، شغل الأوامر التالية.

أولًا، استخراج معلومات تعريف من البيئة.

ENVIRONMENT_DEFAULT_DOMAIN=`az containerapp env show --name ${CONTAINERAPPS_ENVIRONMENT} --resource-group ${RESOURCE_GROUP} --query properties.defaultDomain --out json | tr -d '"'`
ENVIRONMENT_STATIC_IP=`az containerapp env show --name ${CONTAINERAPPS_ENVIRONMENT} --resource-group ${RESOURCE_GROUP} --query properties.staticIp --out json | tr -d '"'`
VNET_ID=`az network vnet show --resource-group ${RESOURCE_GROUP} --name ${VNET_NAME} --query id --out json | tr -d '"'`

بعد ذلك، إعداد DNS الخاص.

az network private-dns zone create \
  --resource-group $RESOURCE_GROUP \
  --name $ENVIRONMENT_DEFAULT_DOMAIN
az network private-dns link vnet create \
  --resource-group $RESOURCE_GROUP \
  --name $VNET_NAME \
  --virtual-network $VNET_ID \
  --zone-name $ENVIRONMENT_DEFAULT_DOMAIN -e true
az network private-dns record-set a add-record \
  --resource-group $RESOURCE_GROUP \
  --record-set-name "*" \
  --ipv4-address $ENVIRONMENT_STATIC_IP \
  --zone-name $ENVIRONMENT_DEFAULT_DOMAIN

معلمات الشبكات

عند استخدام بيئة الاستهلاك فقط، هناك ثلاثة معلمات شبكة اختيارية يمكنك اختيار تعريفها عند استدعاء containerapp env create. استخدم هذه الخيارات عندما يكون لديك شبكة ظاهرية نظيرة مع نطاقات عناوين منفصلة. يضمن تكوين هذه النطاقات بشكل صريح عدم تعارض العناوين المستخدمة من قبل بيئة Container Apps مع النطاقات الأخرى في البنية الأساسية للشبكة.

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

المعلمة ‏‏الوصف‬
platform-reserved-cidr نطاق العنوان المستخدم داخليا لخدمات البنية الأساسية للبيئة. يجب أن يكون له حجم بين /23 و /12 عند استخدام بيئة الاستهلاك فقط
platform-reserved-dns-ip عنوان IP من النطاق platform-reserved-cidr المستخدم لخادم DNS الداخلي. لا يمكن أن يكون العنوان هو العنوان الأول في النطاق أو عنوان الشبكة. على سبيل المثال، إذا تم تعيين platform-reserved-cidr على 10.2.0.0/16، فإن platform-reserved-dns-ip لا يمكن أن يكون 10.2.0.0 (عنوان الشبكة)، أو 10.2.0.1 (تحتفظ البنية الأساسية باستخدام هذا العنوان IP). في هذه الحالة، سيكون عنوان IP الأول القابل للاستخدام لـDNS هو 10.2.0.2.
docker-bridge-cidr نطاق العنوان المعين لشبكة جسر Docker. أن يكون لهذا النطاق حجم بين /28 و/12.
  • لا يمكن أن تتعارض نطاقات العناوين platform-reserved-cidr وdocker-bridge-cidr مع بعضها البعض، أو مع نطاقات الشبكة الفرعية المقدمة. علاوة على ذلك، تأكد من أن هذه النطاقات لا تتعارض مع أي نطاق عناوين آخر في VNet.

  • إذا لم يتم توفير هذه الخصائص، يقوم CLI تلقائيا بإنشاء قيم النطاق استنادا إلى نطاق عناوين الشبكة الظاهرية لتجنب تعارضات النطاق.

تنظيف الموارد

إذا كنت لن تستمر في استخدام هذا التطبيق، يمكنك حذف مجموعة موارد my-container-apps . يؤدي هذا إلى حذف مثيل Azure Container Apps وجميع الخدمات المقترنة. كما أنه يحذف مجموعة الموارد التي أنشأتها خدمة Container Apps تلقائيا والتي تحتوي على مكونات الشبكة المخصصة.

تنبيه

يحذف الأمر التالي مجموعة الموارد المحددة وجميع الموارد المضمنة فيها. إذا كانت الموارد خارج نطاق هذا الدليل موجودة في مجموعة الموارد المحددة، حذفها أيضا.

az group delete --name $RESOURCE_GROUP

الموارد الإضافية

  • لاستخدام دخول نطاق VNet، يجب إعداد DNS.

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