1. مقدمة
يقدّم هذا الدليل تعليمات لنقل خدمة موازنة حمولة الشبكة الحالية من الخلفية الخاصة بحوض الاستهداف إلى خدمة خلفية إقليمية.
ما ستتعرّف عليه
- فهم مزايا خدمات الخلفية الإقليمية
- إنشاء جهاز موازن لحمل الشبكة باستخدام مجموعات الاستهداف
- إجراء عملية التحقّق من مجموعة الاستهداف
- إنشاء خدمة خلفية على مستوى منطقة باستخدام مجموعات النُسخ غير المُدارة
- نقل مجموعة المثيلات المستهدَفة إلى الخدمة في الخلفية
- إجراء عمليات التحقّق من خدمات الخلفية
المتطلبات
- خبرة في استخدام أجهزة موازنة الحمل
2. نظرة عامة على خدمات الخلفية الإقليمية لموازنة حمولة الشبكة
باستخدام ميزة توازن تحميل الشبكة، يحصل عملاء Google Cloud على أداة فعّالة لتوزيع الزيارات الخارجية بين الأجهزة الافتراضية في منطقة Google Cloud. ومن أجل تسهيل إدارة حركة البيانات الواردة على عملائنا والتحكم في سلوك جهاز موازنة الحمل على العملاء، أضفنا مؤخرًا دعمًا لخدمات الخلفية إلى "موازنة حمل الشبكة". ويوفر ذلك مزيدًا من التوسّع والسرعة والأداء والمرونة أمام عملائنا خلال عملية النشر، وكل ذلك بطريقة سهلة الإدارة.
نوفّر الآن خدمات الخلفية باستخدام ميزة "توازن تحميل الشبكة"، وهي ميزة محسّنة بشكل كبير مقارنةً بالنهج السابق، المجموعات المستهدَفة. تحدد خدمة الخلفية الطريقة التي توزع بها أجهزة موازنة الحمل حركة البيانات الواردة على الخلفيات المرفقة وتوفر تحكمًا أكثر دقة في سلوك جهاز موازنة الحمل.
3- مزايا خدمات الخلفية الإقليمية
يجلب اختيار خدمة خلفية إقليمية لجهاز موازنة التحميل عددًا من المزايا لبيئتك.
توفّر خدمات الخلفية الإقليمية ما يلي:
- عمليات التحقّق من الصحة العالية الدقة باستخدام عمليات التحقّق من الصحة الموحّدة: باستخدام خدمات الخلفية الإقليمية، يمكنك الآن الاستفادة إلى أقصى حد من ميزات التحقّق من الصحة في ميزة "توازن التحميل"، ما يخلصك من قيود عمليات التحقّق من الصحة القديمة في بروتوكول HTTP. لأسباب تتعلّق بالامتثال، كان فحص حالة بروتوكول النقل المتعدّد (TCP) مع إتاحة سلاسل الطلبات والاستجابات المخصّصة أو بروتوكول HTTPS من الطلبات الشائعة لعملاء "توازن تحميل الشبكة".
- مرونة أفضل باستخدام مجموعات الاستبدال في حال الأعطال: باستخدام مجموعات الاستبدال في حال الأعطال، يمكنك تحديد مجموعة نُسخ أساسية ومجموعة أخرى ثانوية وإعادة توجيه الزيارات عندما تنخفض حالة النُسخ في المجموعة النشطة إلى ما دون حدّ معيّن. للحصول على مزيد من التحكّم في آلية التبديل في حال حدوث خطأ، يمكنك استخدام وكيل مثل keepalived أو pacemaker وعرض فحص سلامة سليم أو تعذّر بناءً على تغييرات حالة مثيل الخلفية.
- إمكانية التوسّع ومدى التوفّر العالي باستخدام مجموعات النُسخ المُدارة: تتوافق خدمات الخلفية الإقليمية مع مجموعات النُسخ المُدارة كخدمات خلفية. يمكنك الآن تحديد نموذج لمثيل الجهاز الظاهري في الخلفية والاستفادة من ميزة "التوسّع التلقائي" استنادًا إلى استخدام وحدة المعالجة المركزية أو مقاييس المراقبة الأخرى.
بالإضافة إلى ما سبق، ستتمكّن من الاستفادة من ميزة "استنزاف الاتصال" لبروتوكول التحكم بالنقل (TCP) ووقت برمجة أسرع لعمليات النشر الكبيرة.
طوبولوجيا شبكة Codelab
يقدّم هذا الدليل تعليمات لنقل خدمة موازنة حمولة الشبكة الحالية من الخلفية الخاصة بحوض الاستهداف إلى خدمة خلفية إقليمية.
يتيح لك الانتقال إلى خدمة خلفية إقليمية الاستفادة من ميزات مثل عمليات التحقّق من الصحة غير القديمة (لبروتوكول TCP وطبقة المقابس الآمنة وHTTP وHTTPS وHTTP/2) ومجموعات النُسخ المُدارة وإغلاق الاتصالات وسياسة الاستبدال.
يرشدك هذا الدليل خلال عملية نقل النموذج التالي لموازنة حمل الشبكة المستند إلى مجموعة الاستهدافات التالية إلى استخدام خدمة خلفية إقليمية بدلاً من ذلك
الإصدار السابق: "توازن تحميل الشبكة" باستخدام مجموعة مستهدَفة
سيظهر نشر "موازن تحميل الشبكة" المستنِد إلى خدمة الخلفية بالشكل التالي.
بعد ذلك: موازنة تحميل الشبكة باستخدام خدمة خلفية إقليمية
يفترض هذا المثال أنّ لديك جهاز موازنة حمل شبكة تقليديًا يستند إلى مجموعة استهداف مع مثيلَين في المنطقة us-central-1a ومثيلَين في المنطقة us-central-1c.
في ما يلي الخطوات العالية المستوى المطلوبة لإجراء عملية النقل هذه:
- تجميع نُسخ حزمة التطبيقات المستهدَفة في مجموعات نُسخ لا تعمل خدمات الخلفية إلا مع مجموعات النُسخ المُدارة أو غير المُدارة. تجدر الإشارة إلى أنّه على الرغم من عدم وجود حدّ أقصى لعدد النُسخ التي يمكن وضعها في مجموعة استهداف واحدة، فإنّ مجموعات النُسخ لها حجم أقصى. إذا كان لديك عدد أكبر من هذا الحد الأقصى من النُسخ في المجموعة المستهدَفة، عليك تقسيم الخلفيات على مجموعات أجهزة افتراضية متعددة. إذا كان النشر الحالي يتضمّن مجموعة استهداف احتياطية، أنشئ مجموعة نُسخ مثيل منفصلة لهذه النُسخ. سيتم ضبط مجموعة المثيلات هذه كمجموعة تجاوز الإخفاق.
- أنشئ خدمة خلفية إقليمية. إذا كان النشر يتضمّن مجموعة أهداف احتياطية، عليك تحديد نسبة تبديل الفشل أثناء إنشاء خدمة الخلفية. يجب أن تتطابق هذه النسبة مع نسبة الاستبدال في حال حدوث خطأ تم ضبطها مسبقًا لنشر المجموعة المستهدَفة.
- أضِف مجموعات النُسخ (التي تم إنشاؤها سابقًا) إلى خدمة الخلفية. إذا كان النشر يتضمّن مجموعة استهداف احتياطية، ضَع علامة على مجموعة النُسخ الاحتياطية المقابلة باستخدام العلامة -failover عند إضافتها إلى خدمة الخلفية.
- اضبط قاعدة إعادة توجيه تشير إلى خدمة الخلفية الجديدة. لديك خياران هنا:
- (إجراء مقترَح) عدِّل قاعدة إعادة التوجيه الحالية للإشارة إلى خدمة الخلفية. أو
- أنشئ إعادة توجيه جديدة تشير إلى خدمة الخلفية. يتطلّب ذلك إنشاء عنوان IP جديد لواجهة موازن الحمولة. بعد ذلك، عدِّل إعدادات نظام أسماء النطاقات لنقل البيانات بسلاسة من عنوان IP القديم لموازن الحمولة المستنِد إلى مجموعة الاستهداف إلى عنوان IP الجديد.
إعداد البيئة ذاتيًا
- سجِّل الدخول إلى Cloud Console وأنشئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. إذا لم يكن لديك حساب على Gmail أو Google Workspace، عليك إنشاء حساب.
تذكَّر رقم تعريف المشروع، وهو اسم فريد في جميع مشاريع Google Cloud (سبق أن تم استخدام الاسم أعلاه ولن يكون متاحًا لك). وسيتم الإشارة إليه لاحقًا في هذا الدليل باسم PROJECT_ID
.
- بعد ذلك، عليك تفعيل الفوترة في Cloud Console لاستخدام موارد Google Cloud.
من المفترض ألا تتطلّب المشاركة في هذا الدليل التعليمي البرمجي أي تكلفة، أو تكلفة قليلة جدًا. تأكد من اتباع أي إرشادات في قسم "التنظيف" والتي تنصحك بكيفية إيقاف تشغيل الموارد حتى لا تتحمل الفوترة إلى أكثر من هذا البرنامج التعليمي. المستخدمون الجدد في Google Cloud مؤهّلون للاستفادة من برنامج الفترة التجريبية المجانية التي تقدّم رصيدًا بقيمة 300 دولار أمريكي.
بدء Cloud Shell
مع أنّه يمكن إدارة Google Cloud عن بُعد من الكمبيوتر المحمول، ستستخدم في هذا الدرس التطبيقي Google Cloud Shell، وهي بيئة سطر أوامر يتم تشغيلها في السحابة الإلكترونية.
من وحدة تحكّم Google Cloud Platform، انقر على رمز Cloud Shell في شريط الأدوات العلوي الأيسر:
من المفترَض أن تستغرق عملية إدارة الحسابات والاتصال بالبيئة بضع لحظات فقط. عند الانتهاء، من المفترض أن يظهر لك ما يلي:
يتم تحميل هذه الآلة الافتراضية مزوّدة بكل أدوات التطوير التي ستحتاج إليها. ويقدّم هذا الدليل دليلاً منزليًا دائمًا بسعة 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"
من Cloud Shell، أنشئ المثيل 2.
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"
من Cloud Shell، أنشئ المثيل 3.
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" (اطّلِع على لقطة الشاشة أدناه).
اختيار Load Balancer (موازن حمولة البيانات) → www-pool
التحقّق من أنّ قاعدة إعادة التوجيه في الواجهة الأمامية مرتبطة الآن بموازن الحمولة "my-backend-service"
اختَر "موازن الحمولة" → "الواجهات الأمامية".
ملاحظة: يتم الاحتفاظ بعنوان IP الخاص بالقاعدة "www-rule" ويتم الآن استخدام جهاز موازنة الحمل "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. تهانينا!
تهانينا على إكمال الدرس التطبيقي حول الترميز.
المواضيع التي تناولناها
- فهم مزايا خدمات الخلفية الإقليمية
- إنشاء جهاز موازن لحمل الشبكة باستخدام مجموعات الاستهداف
- إجراء عملية التحقّق من مجموعة الاستهداف
- إنشاء خدمة خلفية على مستوى منطقة باستخدام مجموعات النُسخ غير المُدارة
- نقل مجموعة المثيلات المستهدَفة إلى الخدمة في الخلفية
- إجراء عمليات التحقّق من خدمات الخلفية