مشاركة عبر


كشف عنوان IP ثابت لمجموعة الحاويات

توضح هذه المقالة إحدى طرق الكشف عن عنوان IP عام وثابت لـ مجموعة حاويات باستخدام بوابة تطبيقAzure. اتبع هذه الخطوات عندما تحتاج إلى نقطة إدخال ثابتة لتطبيق خارجي في حاوية يتم تشغيله في مثيلات Azure Container.

ستستخدم في هذه المقالة Azure CLI لإنشاء الموارد لهذا السيناريو:

  • شبكة Azure الظاهرية
  • تم نشر مجموعة حاويات في الشبكة الظاهرية التي تستضيف تطبيق ويب صغيراً
  • بوابة تطبيق مع عنوان IP للواجهة الأمامية العامة، ومستمع لاستضافة موقع ويب على البوابة، وطريق إلى مجموعة حاوية الواجهة الخلفية

طالما أن بوابة التطبيق تعمل وتعرض مجموعة الحاوية عنوان IP خاصًّا ثابتاً في الشبكة الفرعية المفوضة للشبكة، يمكن الوصول إلى مجموعة الحاوية على عنوان IP العام هذا.

إشعار

تدعم بوابة تطبيق Azure بروتوكولات HTTP وHTTPS وHTTP/2 وWebSocket.

رسوم Azure لبوابة التطبيق بناءً على مقدار الوقت الذي يتم فيه توفير البوابة وإتاحتها، فضلاً عن مقدار البيانات التي تعالجها. راجع التسعير.

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

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

إذا كنت بحاجة إلى واحد، فأنشئ مجموعة موارد Azure. على سبيل المثال:

az group create --name myResourceGroup --location eastus

أنشئ شبكة افتراضية باستخدام الأمر az network vnet create. يقوم هذا الأمر بإنشاء الشبكة الفرعية myAGSubnet في الشبكة.

az network vnet create \
  --name myVNet \
  --resource-group myResourceGroup \
  --location eastus \
  --address-prefix 10.0.0.0/16 \
  --subnet-name myAGSubnet \
  --subnet-prefix 10.0.1.0/24

استخدم الأمر إنشاء الشبكة الفرعية لشبكة vnet من az لإنشاء شبكة فرعية لمجموعة حاوية الواجهة الخلفية. هنا، اسمه myACISubnet.

az network vnet subnet create \
  --name myACISubnet \
  --resource-group myResourceGroup \
  --vnet-name myVNet   \
  --address-prefix 10.0.2.0/24

استخدم الأمر az network public-ip create لإنشاء مورد IP عام ثابت. في خطوة لاحقة، تم تكوين هذا العنوان ليكون الواجهة الأمامية لبوابة التطبيق.

az network public-ip create \
  --resource-group myResourceGroup \
  --name myAGPublicIPAddress \
  --allocation-method Static \
  --sku Standard

إنشاء مجموعة الحاويات

قم بتشغيل إنشاء حاوية az التالية لإنشاء مجموعة حاويات في الشبكة الظاهرية التي قمت بتكوينها في الخطوة السابقة.

تم نشر المجموعة في الشبكة الفرعية myACISubnet وتحتوي على مثيل واحد باسم appcontainer يسحب الصورة aci-helloworld. تعمل هذه الصورة على حزم تطبيق ويب صغير مكتوب بلغة Node.js يقدم صفحة HTML ثابتة.

az container create \
  --name appcontainer \
  --resource-group myResourceGroup \
  --image mcr.microsoft.com/azuredocs/aci-helloworld \
  --vnet myVNet \
  --subnet myACISubnet

عند النشر بنجاح، يتم تعيين عنوان IP خاص لمجموعة الحاوية في الشبكة الظاهرية. على سبيل المثال، قم بتشغيل الأمر az container show التالي لاسترداد عنوان IP للمجموعة:

az container show \
  --name appcontainer --resource-group myResourceGroup \
  --query ipAddress.ip --output tsv

الإخراج مشابه لـ: 10.0.2.4.

لاستخدامه في خطوة لاحقة، احفظ عنوان IP في متغير بيئة:

ACI_IP=$(az container show \
  --name appcontainer \
  --resource-group myResourceGroup \
  --query ipAddress.ip --output tsv)

هام

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

إنشاء بوابة التطبيق

أنشئ بوابة تطبيق في الشبكة الظاهرية، باتباع الخطوات الواردة في التطبيق السريع لعبّارة التطبيق. الأمر التالي az network application-gateway create ينشئ بوابة بعنوان IP للواجهة الأمامية العامة وتوجيه إلى مجموعة حاوية الواجهة الخلفية. راجع وثائق Application Gateway للحصول على تفاصيل حول إعدادات البوابة.

az network application-gateway create \
  --name myAppGateway \
  --location eastus \
  --resource-group myResourceGroup \
  --capacity 2 \
  --sku Standard_v2 \
  --http-settings-protocol http \
  --public-ip-address myAGPublicIPAddress \
  --vnet-name myVNet \
  --subnet myAGSubnet \
  --servers "$ACI_IP" \ 
  --priority 100

قد يستغرق Azure ما يصل إلى 15 دقيقة لإنشاء بوابة التطبيق.

اختبار عنوان IP العامّ

يمكنك الآن اختبار الوصول إلى تطبيق الويب الذي يعمل في مجموعة الحاوية خلف بوابة التطبيق.

قم بتشغيل الأمر az network public-ip show لاسترداد عنوان IP العامّ للواجهة الأمامية للبوابة:

az network public-ip show \
--resource-group myresourcegroup \
--name myAGPublicIPAddress \
--query [ipAddress] \
--output tsv

الإخراج هو عنوان IP عامّ مشابه لـ: 52.142.18.133.

لعرض تطبيق الويب قيد التشغيل عند التكوين بنجاح، انتقل إلى عنوان IP العامّ للبوابة في متصفحك. الوصول الناجح مشابه لـ:

لقطة شاشة للمتصفح تعرض التطبيق قيد التشغيل في مثيل حاوية Azure

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

  • راجع نموذج البدء السريع لإنشاء مجموعة حاويات بمثيل حاوية WordPress كخادم خلفية خلف بوابة التطبيق.
  • يمكنك أيضاً تكوين بوابة تطبيق بشهادة إنهاء SSL. راجع نظرة عامة والبرنامج التعليمي.
  • اعتماداً على السيناريو الخاص بك، ضع في اعتبارك استخدام حلول موازنة أحمال Azure الأخرى مع مثيلات Azure Container. على سبيل المثال، استخدم Azure Traffic Manager لتوزيع نسبة استخدام الشبكة عبر مثيلات حاوية متعددة وعبر مناطق متعددة. راجع مشاركة المدونة هذه.