نقل جهاز موازنة حمل الشبكة من المجموعات المستهدفة إلى خدمات الخلفية الإقليمية

1. مقدمة

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

المعلومات التي ستطّلع عليها

  • فهم مزايا خدمات الخلفية الإقليمية
  • إنشاء جهاز موازنة حمل الشبكة باستخدام الوحدات الإعلانية المستهدفة
  • إجراء التحقُّق من صحة المجموعة المستهدَفة
  • إنشاء خدمة خلفية إقليمية باستخدام مجموعات المثيلات غير المُدارة
  • تنفيذ مجموعة مستهدفة لنقل الخدمة الخلفية
  • إجراء التحقُّق من خدمات الخلفية

المتطلبات

  • خبرة في أجهزة موازنة الحمل

2. نظرة عامة على خدمات الخلفية الإقليمية لموازنة حمولة الشبكة

باستخدام موازنة حمل الشبكة، يمتلك عملاء Google Cloud أداة فعّالة لتوزيع الزيارات الخارجية بين الأجهزة الافتراضية في إحدى مناطق Google Cloud. ومن أجل تسهيل إدارة حركة البيانات الواردة على عملائنا والتحكم في سلوك جهاز موازنة الحمل على العملاء، أضفنا مؤخرًا دعمًا لخدمات الخلفية إلى "موازنة حمل الشبكة". ويوفر ذلك مزيدًا من التوسّع والسرعة والأداء والمرونة أمام عملائنا خلال عملية النشر، وكل ذلك بطريقة سهلة الإدارة.

نوفّر الآن خدمات الخلفية من خلال ميزة "موازنة حمل الشبكة"، وهي تحسين كبير مقارنةً بالأسلوب السابق، وهو مجموعات الاستهداف. تحدد خدمة الخلفية الطريقة التي توزع بها أجهزة موازنة الحمل حركة البيانات الواردة على الخلفيات المرفقة، وتوفر تحكمًا أكثر دقة في سلوك جهاز موازنة الحمل.

3- مزايا خدمات الخلفية الإقليمية

يجلب اختيار خدمة خلفية إقليمية لجهاز موازنة التحميل عددًا من المزايا لبيئتك.

267db35a58145be.png

وتتيح خدمات الخلفية الإقليمية ما يلي:

  • التحقّق من الصحة بدقة عالية باستخدام ميزة التحقّق الموحّد من الصحة: من خلال خدمات الخلفية الإقليمية، يمكنك الآن الاستفادة بشكل كامل من ميزات التحقّق من الصحة الخاصة بموازنة التحميل، ما يغنيك عن قيود عمليات التحقّق القديمة من صحة HTTP. لأسباب تتعلق بالامتثال، كانت عمليات التحقق من حالة بروتوكول TCP مع إتاحة سلاسل الطلبات والاستجابة المخصصة أو بروتوكول HTTPS من الطلبات الشائعة لعملاء موازنة حمل الشبكة.
  • مرونة أفضل مع مجموعات تجاوز الأعطال - باستخدام مجموعات تجاوز الأعطال، يمكنك تعيين مجموعة مثيلات كأساسية ومجموعة أخرى كمجموعة ثانوية وتجاوز عدد الزيارات عندما تقل سلامة المثيلات في المجموعة النشطة عن حد معين. لمزيد من التحكّم في آلية تجاوز الأعطال، يمكنك استخدام وكيل، مثل keepalived أو جهاز تنظيم ضربات القلب، مع الكشف عن حالة فحص الحالة الصحية أو عدم اجتيازه بناءً على التغيرات في حالة مثيل الخلفية.
  • قابلية التوسّع والتوفّر العالي من خلال مجموعات النُسخ الافتراضية المُدارة: تتوافق خدمات الخلفية الإقليمية مع المجموعات الافتراضية المُدارة كخلفيات. يمكنك الآن تحديد نموذج لمثيلات الأجهزة الافتراضية في الخلفية والاستفادة من القياس التلقائي المستنِد إلى استخدام وحدة المعالجة المركزية (CPU) أو مقاييس المراقبة الأخرى.

بالإضافة إلى ما سبق، ستتمكن من الاستفادة من "تصريف الاتصال" في ما يتعلق بالبروتوكول المهيأ للاتصال (TCP) ووقت برمجة أسرع لعمليات النشر الكبيرة.

مخططات الشبكة التطبيقية حول الترميز

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

يتيح لك الانتقال إلى خدمة خلفية إقليمية الاستفادة من ميزات مثل عمليات التحقق من الصحة غير القديمة (لبروتوكول TCP وSSL وHTTP وHTTPS وHTTP/2) ومجموعات المثيلات المُدارة واستنزاف الاتصالات وسياسة تجاوز الأعطال.

يرشدك هذا الدليل خلال عملية نقل النموذج التالي لموازنة حمل الشبكة المستند إلى مجموعة الاستهدافات التالية إلى استخدام خدمة خلفية إقليمية بدلاً من ذلك

b2ac8a09e53e27f8.png

قبل: موازنة حمل الشبكة باستخدام مجموعة مستهدفة

ستبدو عملية نشر جهاز موازنة حمل الشبكة المستنِدة إلى خدمة في الخلفية على النحو التالي:

f628fdad64c83af3.png

بعد: موازنة حمل الشبكة باستخدام خدمة خلفية إقليمية

نفترض في هذا المثال أنّ لديك جهاز موازنة حمل الشبكة يعتمد على مجموعة مستهدَفة تقليدية مع حالتَين في المنطقة us-central-1a، وحالتين في المنطقة us-central-1c.

الخطوات عالية المستوى المطلوبة لعملية النقل هذه هي:

  1. يمكنك تجميع مثيلات المجموعة المستهدَفة في مجموعات مثيلات. لا تعمل خدمات الخلفية إلا مع مجموعات المثيلات المُدارة أو غير المُدارة. تجدر الإشارة إلى أنّه على الرغم من عدم وجود حدّ أقصى لعدد النُسخ الافتراضية التي يمكن وضعها في مجموعة مستهدَفة واحدة، تحتوي مجموعات المثيلات الافتراضية على حدّ أقصى للحجم. إذا كانت المجموعة المستهدَفة تضم أكثر من هذا الحد الأقصى لعدد المثيلات، ستحتاج إلى تقسيم خلفياتها على مجموعات مثيلات متعددة. إذا كانت عملية النشر الحالية تتضمّن مجموعة مثيلات احتياطية مستهدفة، يمكنك إنشاء مجموعة مثيلات منفصلة لهذه المثيلات. سيتم ضبط مجموعة المثيلات هذه كمجموعة تجاوز الإخفاق.
  2. إنشاء خدمة خلفية إقليمية إذا كان النشر يتضمن مجموعة أهداف احتياطية، ستحتاج إلى تحديد نسبة تجاوز الفشل أثناء إنشاء خدمة الخلفية. ويجب أن يتطابق هذا مع نسبة تجاوز الأعطال التي تم ضبطها سابقًا لنشر المجموعة المستهدفة.
  3. إضافة مجموعات المثيلات (التي تم إنشاؤها سابقًا) إلى خدمة الخلفية. إذا كانت عملية النشر تتضمن مجموعة أهداف احتياطية، ضع علامة "-إخفاق" على مجموعة مثيلات تجاوز الفشل المقابلة عند إضافتها إلى خدمة الخلفية.
  4. يمكنك ضبط قاعدة إعادة توجيه تشير إلى خدمة الخلفية الجديدة. أمامك خياران هنا:
  • (إجراء يُنصح به) عدِّل قاعدة إعادة التوجيه الحالية للتوجيه إلى خدمة الخلفية. أو
  • إنشاء إعادة توجيه جديدة تشير إلى خدمة الخلفية. يتطلب منك هذا إنشاء عنوان IP جديد للواجهة الأمامية لجهاز موازنة الحمل. بعد ذلك، عدِّل إعدادات نظام أسماء النطاقات للانتقال بسلاسة من عنوان IP القديم لجهاز موازنة الحمل المستند إلى مجموعة الهدف إلى عنوان IP الجديد.

إعداد بيئة ذاتية

  1. سجِّل الدخول إلى Cloud Console وأنشِئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. إذا لم يكن لديك حساب على Gmail أو Google Workspace، عليك إنشاء حساب.

96a9c957bc475304.png

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.png

يُرجى تذكُّر رقم تعريف المشروع، وهو اسم فريد في جميع مشاريع Google Cloud (سبق أن تم استخدام الاسم أعلاه ولن يكون مناسبًا لك). ستتم الإشارة إليها لاحقًا في هذا الدرس التطبيقي حول الترميز باسم PROJECT_ID.

  1. بعد ذلك، عليك تفعيل الفوترة في Cloud Console لاستخدام موارد Google Cloud.

إنّ تنفيذ هذا الدرس التطبيقي حول الترميز لن يكون مكلفًا أو مكلفًا على الإطلاق. احرص على اتّباع أي تعليمات في قسم "الحذف سريعًا". الذي يقدم لك نصائح حول كيفية إيقاف تشغيل الموارد حتى لا تتكبّد أي فواتير خارج نطاق هذا البرنامج التعليمي. يكون مستخدمو Google Cloud الجدد مؤهَّلون للانضمام إلى برنامج فترة تجريبية مجانية بقيمة 300 دولار أمريكي.

بدء Cloud Shell

مع أنّه يمكن إدارة Google Cloud عن بُعد من الكمبيوتر المحمول، ستستخدم في هذا الدرس التطبيقي Google Cloud Shell، وهي بيئة سطر أوامر يتم تشغيلها في السحابة الإلكترونية.

من وحدة تحكّم Google Cloud Platform، انقر على رمز Cloud Shell في شريط الأدوات العلوي الأيسر:

bce75f34b2c53987.png

من المفترَض أن تستغرق عملية إدارة الحسابات والاتصال بالبيئة بضع لحظات فقط. عند الانتهاء، من المفترض أن يظهر لك شيء مثل هذا:

f6ef2b5f13479f3a.png

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

تسجيل الدخول إلى Cloudshell وضبط معرّف المشروع

gcloud config list project
gcloud config set project [YOUR-PROJECT-ID]

Perform setting your projectID:
projectid=YOUR-PROJECT-ID

echo $projectid

4. إنشاء شبكة VPC

شبكة سحابة VPC

من Cloud Shell

gcloud compute networks create network-lb --subnet-mode custom

إنشاء شبكة فرعية

من Cloud Shell

gcloud compute networks subnets create network-lb-subnet \
        --network network-lb --range 10.0.0.0/24 --region us-central1

إنشاء قواعد جدار الحماية

من Cloud Shell

gcloud compute --project=$projectid firewall-rules create www-firewall-network-lb --direction=INGRESS --priority=1000 --network=network-lb --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=network-lb-tag

إنشاء مثيلات غير مُدارة

إنشاء مثيلَين لكل منطقة، us-central1-a & us-central1-c

إنشاء المثيل 1 من Cloud Shell

gcloud compute instances create www1 \
--subnet network-lb-subnet \
--image-family debian-9 \
--image-project debian-cloud \
--zone us-central1-a \
--tags network-lb-tag \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install apache2 -y
sudo service apache2 restart
echo '<!doctype html><html><body><h1>www1</h1></body></html>' | tee /var/www/html/index.html"

إنشاء المثيل 2 من Cloud Shell

gcloud compute instances create www2 \
--subnet network-lb-subnet \
--image-family debian-9 \
--image-project debian-cloud \
--zone us-central1-a \
--tags network-lb-tag \
--metadata startup-script="#! /bin/bash
sudo apt-get update
sudo apt-get install apache2 -y
sudo service apache2 restart 
echo '<!doctype html><html><body><h1>www2</h1></body></html>' | tee /var/www/html/index.html"

إنشاء المثيل 3 من Cloud Shell

gcloud compute instances create www3 \
--subnet network-lb-subnet \
--image-family debian-9 \
--image-project debian-cloud \
--zone us-central1-c \
--tags network-lb-tag \
--metadata startup-script="#! /bin/bash
sudo apt-get update 
sudo apt-get install apache2 -y 
sudo service apache2 restart 
echo '<!doctype html><html><body><h1>www3</h1></body></html>' | tee /var/www/html/index.html"

إنشاء المثيل 4 من Cloud Shell

gcloud compute instances create www4 \
--subnet network-lb-subnet \
--image-family debian-9 \
--image-project debian-cloud \
--zone us-central1-c \
--tags network-lb-tag \
--metadata startup-script="#! /bin/bash
sudo apt-get update 
sudo apt-get install apache2 -y 
sudo service apache2 restart
echo '<!doctype html><html><body><h1>www4</h1></body></html>' | tee /var/www/html/index.html"

إنشاء قاعدة جدار حماية للسماح بالزيارات الخارجية إلى هذه الأجهزة الافتراضية

من Cloud Shell

gcloud compute --project=$projectid firewall-rules create www-firewall-network-lb --direction=INGRESS --priority=1000 --network=network-lb --action=ALLOW --rules=tcp:80 --source-ranges=0.0.0.0/0 --target-tags=network-lb-tag

إنشاء عنوان IP خارجي ثابت لجهاز موازنة الحمل

من Cloud Shell

gcloud compute addresses create network-lb-ip-1 \
    --region us-central1

إضافة مورد قديم للتحقق من صحة HTTP

من Cloud Shell

gcloud compute http-health-checks create basic-check

5- إنشاء قاعدة إعادة توجيه وتجميع مستهدف

إنشاء مجموعة مستهدَفة

gcloud compute target-pools create www-pool \
            --region us-central1 --http-health-check basic-check

إضافة مثيلاتك إلى المجموعة المستهدَفة، us-central1-a

gcloud compute target-pools add-instances www-pool \
--instances www1,www2 \
--instances-zone us-central1-a

إضافة مثيلاتك إلى المجموعة المستهدفة، us-central1-c

gcloud compute target-pools add-instances www-pool \
--instances www3,www4 \
--instances-zone us-central1-c

إضافة قاعدة إعادة توجيه

gcloud compute forwarding-rules create www-rule \
--region us-central1 \
--ports 80 \
--address network-lb-ip-1 \
--target-pool www-pool

التحقّق من وظيفة مجموعة البيانات المستهدَفة

حدد عنوان IP للواجهة الأمامية من خلال تحديد موازين التحميل ← الواجهات الأمامية (www-rule)

يمكنك استخدام الأمر curl من الوحدة الطرفية لمحطة العمل للوصول إلى عنوان IP الخارجي ومراقبة موازنة التحميل على المثيلات الأربعة المستهدفة. أغلِق الوحدة الطرفية بعد التحقُّق من صحتها.

while true; do curl -m1 IP_ADDRESS; done

6- نقل جهاز موازنة حمل الشبكة من المجموعة المستهدفة إلى خدمة الخلفية

إنشاء عمليات تحقّق موحّدة من الصحة لخدمتك الخلفية

gcloud compute health-checks create tcp my-tcp-health-check --port 80 --region us-central1

إنشاء مجموعات مثيلات من المثيلات الحالية من المجموعة المستهدفة

gcloud compute --project=$projectid instance-groups unmanaged create www-instance-group-central1a --zone=us-central1-a

gcloud compute --project=$projectid instance-groups unmanaged add-instances www-instance-group-central1a --zone=us-central1-a --instances=www1,www2

إنشاء مجموعات مثيلات من المثيلات الحالية من المجموعة المستهدفة

gcloud compute --project=$projectid instance-groups unmanaged create www-instance-group-central1c --zone=us-central1-c

gcloud compute --project=$projectid instance-groups unmanaged add-instances www-instance-group-central1c --zone=us-central1-c --instances=www3,www4

إنشاء خدمة خلفية وربطها بعمليات التحقّق من الصحة التي تم إنشاؤها حديثًا

gcloud compute backend-services create my-backend-service --region us-central1 --health-checks my-tcp-health-check --health-checks-region us-central1 --load-balancing-scheme external

ضبط خدمة الخلفية وإضافة مجموعات المثيلات

gcloud compute backend-services add-backend my-backend-service --instance-group www-instance-group-central1a --instance-group-zone us-central1-a --region us-central1

gcloud compute backend-services add-backend my-backend-service --instance-group www-instance-group-central1c --instance-group-zone us-central1-c --region us-central1

تعديل قاعدة إعادة التوجيه الحالية لدعم خدمات الخلفية

ملاحظة اسم قاعدة إعادة التوجيه "www-rule" وعنوان IP المرتبط بها عن طريق إجراء ما يلي:

اختيار جهاز موازنة الحمل ← الواجهات الأمامية

لاحظ أيضًا أن المجموعات المستهدفة الأربعة

اختَر جهاز موازنة الحمل ← اختَر "www-pool".

توجيه الزيارات إلى خدمات الخلفية من خلال تعديل قاعدة إعادة التوجيه الحالية

gcloud compute forwarding-rules set-target www-rule --region=us-central1 --backend-service my-backend-service --region us-central1

التحقّق من جهاز موازنة الحمل "www-pool" لم يعد مهيأً بالواجهة الأمامية "www-rule" (يُرجى الاطّلاع على لقطة الشاشة أدناه)

اختَر جهاز موازنة الحمل ← www-pool

9a393b3ca4e0942c.png

تم ربط قاعدة "التحقّق من صحة إعادة توجيه الواجهة الأمامية" الآن بجهاز موازنة الحمل "my-backend-service".

اختيار جهاز موازنة الحمل ← الواجهات الأمامية

لاحظ اسم القاعدة "www-rule" يتم الاحتفاظ بعنوان IP وسيتمكّن جهاز موازنة الحمل "my-backend-service" قيد الاستخدام الآن

يمكنك استخدام الأمر curl من الوحدة الطرفية لمحطة العمل للوصول إلى عنوان IP الخارجي ومراقبة موازنة التحميل في خدمة الخلفية المرتبطة حديثًا. أغلِق الوحدة الطرفية بعد التحقُّق من صحتها.

while true; do curl -m1 IP_ADDRESS; done

7. خطوات التنظيف

gcloud compute forwarding-rules delete www-rule --region=us-central1 --quiet
 
gcloud compute backend-services delete my-backend-service --region us-central1 --quiet
 
gcloud compute target-pools delete www-pool --region us-central1 --quiet
 
gcloud compute addresses delete network-lb-ip-1 --region us-central1 --quiet

gcloud compute firewall-rules delete www-firewall-network-lb --quiet
 
gcloud compute instances delete www4 --zone us-central1-c --quiet
 
gcloud compute instances delete www3 --zone us-central1-c --quiet
 
gcloud compute instances delete www2 --zone us-central1-a --quiet

gcloud compute instances delete www1 --zone us-central1-a --quiet
 
gcloud compute networks subnets delete network-lb-subnet --region us-central1 --quiet

gcloud compute networks delete network-lb --quiet

gcloud compute instance-groups unmanaged delete www-instance-group-central1a --zone us-central1-a --quiet

gcloud compute instance-groups unmanaged delete www-instance-group-central1c --zone us-central1-c --quiet

8. تهانينا!

تهانينا على إكمال الدرس التطبيقي حول الترميز.

المواضيع التي تناولناها

  • فهم مزايا خدمات الخلفية الإقليمية
  • إنشاء جهاز موازنة حمل الشبكة باستخدام الوحدات الإعلانية المستهدفة
  • إجراء التحقُّق من صحة المجموعة المستهدَفة
  • إنشاء خدمة خلفية إقليمية باستخدام مجموعات المثيلات غير المُدارة
  • تنفيذ مجموعة مستهدفة لنقل الخدمة الخلفية
  • إجراء التحقُّق من خدمات الخلفية