arrow_back

Налаштування розподілювачів навантаження для мережі й додатка

Get access to 700+ labs and courses

Налаштування розподілювачів навантаження для мережі й додатка

Lab 1 година universal_currency_alt 1 кредит show_chart Початковий
info This lab may incorporate AI tools to support your learning.
Get access to 700+ labs and courses

GSP007

Огляд

На цьому практичному занятті ви з’ясуєте, чим відрізняються розподілювачі навантаження мережі й додатка та навчитеся налаштовувати їх для додатків, запущених на віртуальних машинах Compute Engine.

Розподіляти навантаження в Google Cloud можна кількома способами. На цьому практичному занятті ви навчитеся налаштовувати такі розподілювачі навантаження:

Бажано вводити команди самостійно, щоб краще засвоїти основні поняття. Багато практичних робіт містять блок коду з потрібними командами. Такі команди можна просто скопіювати й вставити у відповідне місце під час практичного заняття.

Цілі

На цьому практичному занятті ви навчитеся виконувати наведені нижче дії.

  • Налаштувати регіон і зону за умовчанням для ресурсів.
  • Створити кілька екземплярів вебсерверів.
  • Налаштувати сервіс розподілу навантаження.
  • Створити розподілювач навантаження додатка.

Налаштування й вимоги

Перш ніж натиснути кнопку Start Lab (Почати практичну роботу)

Ознайомтеся з наведеними нижче вказівками. На виконання практичного заняття відводиться обмежений час, і його не можна призупинити. Щойно ви натиснете Почати заняття, з’явиться таймер, який показуватиме, скільки часу для роботи з ресурсами Google Cloud у вас залишилося.

Ви зможете виконати практичне заняття в дійсному робочому хмарному середовищі (не в симуляції або демонстраційному середовищі). Для цього на час практичного заняття вам надаються тимчасові облікові дані для реєстрації і входу в Google Cloud.

Для цього практичного заняття потрібно мати:

  • стандартний вебпереглядач, наприклад Chrome (рекомендовано);
Примітка. Виконуйте практичне заняття в анонімному вікні вебпереглядача (рекомендовано). Так ви уникнете додаткової плати, що може стягуватися з вашого особистого облікового запису внаслідок його помилкового використання замість облікового запису для навчання.
  • достатню кількість часу, оскільки почавши практичне заняття, ви не зможете призупинити його.
Примітка. Для виконання цього практичного заняття використовуйте лише обліковий запис для навчання, оскільки з іншого облікового запису Google Cloud може стягуватися плата.

Як почати виконувати практичну роботу й увійти в Google Cloud Console

  1. Натисніть кнопку Start Lab (Почати практичне заняття). Якщо за практичне заняття необхідно заплатити, відкриється вікно, де ви зможете обрати спосіб оплати. Ліворуч розміщено панель "Відомості про практичне заняття" з такими компонентами:

    • кнопка "Відкрити консоль Google";
    • час до закінчення;
    • тимчасові облікові дані, які потрібно використовувати для доступу до цього практичного заняття;
    • інша інформація, необхідна для виконання цього практичного заняття.
  2. Натисніть Відкрити консоль Google або натисніть правою кнопкою миші й виберіть Відкрити анонімне вікно, якщо ви використовуєте вебпереглядач Chrome.

    Завантажаться необхідні ресурси. Потім відкриється нова вкладка зі сторінкою "Увійти".

    Порада. Упорядковуйте вкладки в окремих вікнах, розміщуючи їх поруч.

    Примітка. Якщо з’явиться вікно Виберіть обліковий запис, натисніть Вибрати інший обліковий запис.
  3. За потреби скопіюйте значення в полі Username (Ім’я користувача) нижче й вставте його у вікні Вхід.

    {{{user_0.username | "Username"}}}

    Поле "Ім’я користувача" також можна знайти на панелі "Відомості про практичне заняття".

  4. Натисніть Далі.

  5. Скопіюйте значення в полі Password (Пароль) нижче й вставте його у вікні Welcome (Привітання).

    {{{user_0.password | "Password"}}}

    Поле "Пароль" також можна знайти на панелі "Відомості про практичне заняття".

  6. Натисніть Далі.

    Важливо. Обов’язково використовуйте облікові дані, призначені для відповідного практичного заняття. Не використовуйте облікові дані Google Cloud. Примітка. Якщо ввійти у власний обліковий запис Google Cloud, може стягуватися додаткова плата.
  7. Що від вас очікується

    • Прийміть Умови використання.
    • Не додавайте способи відновлення й двохетапну перевірку (оскільки це тимчасовий обліковий запис).
    • Не реєструйте безкоштовні пробні версії.

Через кілька секунд консоль Google Cloud відкриється в новій вкладці.

Примітка. Щоб отримати доступ до продуктів і сервісів Google Cloud, натисніть меню навігації або введіть назву сервісу чи продукту в полі пошуку.

Як активувати Cloud Shell

Cloud Shell – це віртуальна машина з попередньо завантаженими інструментами для розробників. Вона містить головний каталог обсягом 5 ГБ постійної пам’яті й працює в середовищі Google Cloud. Cloud Shell надає доступ до ресурсів Google Cloud через командний рядок.

  1. Угорі консолі Google Cloud натисніть Activate Cloud Shell (Активувати Cloud Shell) .

  2. У вікнах, що відкриються, виконайте наведені нижче дії.

    • У вікні з інформацією про Cloud Shell натисніть Continue (Далі).
    • Дозвольте Cloud Shell використовувати ваші облікові дані, щоб здійснювати виклики Google Cloud API.

Щойно ви підключитеся, вас буде автентифіковано, а проєкт отримає ваш Project_ID (Ідентифікатор проєкту). Вивід міститиме рядок зі значенням Project_ID (Ідентифікатор проєкту) для цього сеансу:

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud – це інструмент командного рядка для Google Cloud. Він входить у пакет Cloud Shell і підтримує функцію автозавершення клавішею TAB.

  1. (Необов’язково) Щоб вивести поточне ім’я облікового запису, введіть таку команду:
gcloud auth list
  1. Натисніть Authorize (Авторизувати).

Вивід:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Необов’язково) Щоб вивести ідентифікатор проєкту, введіть таку команду:
gcloud config list project

Вивід:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Примітка. Щоб знайти повну документацію щодо gcloud, перегляньте посібник з інтерфейсу командного рядка gcloud у Google Cloud.

Завдання 1. Налаштуйте регіон і зону за умовчанням для всіх ресурсів

  1. Налаштуйте регіон за умовчанням:

    gcloud config set compute/region {{{project_0.default_region | Region}}}
  2. Налаштуйте зону за умовчанням у Cloud Shell:

    gcloud config set compute/zone {{{project_0.default_zone | Zone}}}

    Щоб дізнатися більше про вибір зон і регіонів, перегляньте цей розділ документації Compute Engine.

Завдання 2. Створіть кілька екземплярів вебсерверів

Створіть три екземпляри віртуальних машин Compute Engine для цього сценарію розподілу навантаження й установіть на них Apache. Потім додайте правило брандмауера, що дозволяє трафік HTTP до екземплярів.

За вказаним кодом буде налаштовано зону . У полі tags можна вказати позначку, за якою потрібні налаштування, як-от правило брандмауера, застосовуватимуться до всіх цих екземплярів. Крім того, ці команди встановлюють на кожному екземплярі Apache й створюють для кожного екземпляра унікальну головну сторінку.

  1. Створіть віртуальну машину www1 у зоні за умовчанням за допомогою такого коду:

    gcloud compute instances create www1 \ --zone={{{project_0.default_zone | Zone}}} \ --tags=network-lb-tag \ --machine-type=e2-small \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#!/bin/bash apt-get update apt-get install apache2 -y service apache2 restart echo "

    Web Server: www1

    " | tee /var/www/html/index.html'
  2. Створіть віртуальну машину www2 в зоні за умовчанням за допомогою такого коду:

    gcloud compute instances create www2 \ --zone={{{project_0.default_zone | Zone}}} \ --tags=network-lb-tag \ --machine-type=e2-small \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#!/bin/bash apt-get update apt-get install apache2 -y service apache2 restart echo "

    Web Server: www2

    " | tee /var/www/html/index.html'
  3. Створіть віртуальну машину www3 в зоні за умовчанням.

    gcloud compute instances create www3 \ --zone={{{project_0.default_zone | Zone}}} \ --tags=network-lb-tag \ --machine-type=e2-small \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#!/bin/bash apt-get update apt-get install apache2 -y service apache2 restart echo "

    Web Server: www3

    " | tee /var/www/html/index.html'
  4. Створіть правило для брандмауера, що дозволяє зовнішній трафік до екземплярів віртуальних машин:

    gcloud compute firewall-rules create www-firewall-network-lb \ --target-tags network-lb-tag --allow tcp:80

Тепер потрібно отримати зовнішні IP-адреси екземплярів і перевірити, чи вони запущені.

  1. Виконайте наведену нижче команду, щоб переглянути список екземплярів. Їх ІР-адреси з’являться в стовпці EXTERNAL_IP.

    gcloud compute instances list
  2. Виконайте команду curl, щоб перевірити, чи запущено кожен екземпляр (для кожного екземпляра замініть [IP_ADDRESS] на зовнішню ІР-адресу відповідної віртуальної машини).

    curl http://[IP_ADDRESS]

    Щоб підтвердити створення групи вебсерверів, натисніть Підтвердити виконання. Створіть кілька екземплярів вебсерверів

Завдання 3. Налаштуйте сервіс розподілу навантаження

Після налаштування сервісу розподілу навантаження ваші екземпляри віртуальних машин отримуватимуть пакети, призначені для статичної зовнішньої IP-адреси, яку ви налаштували. Екземпляри, створені за допомогою образу Compute Engine, автоматично налаштовані на обробку цієї ІР-адреси.

Примітка. Щоб дізнатися більше про налаштування, перегляньте посібник із зовнішніх розподілювачів навантаження мережі для проходження (на основі серверного сервісу).
  1. Створіть статичну зовнішню IP-адресу для розподілювача навантаження:

    gcloud compute addresses create network-lb-ip-1 \ --region {{{project_0.default_region | Region}}}

    Вивід:

    Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-xxxxxxxxxxx/regions/{{{project_0.startup_script.project_region}}}/addresses/network-lb-ip-1].
  2. Додайте застарілий ресурс для перевірки стану HTTP:

    gcloud compute http-health-checks create basic-check
  3. Додайте цільовий пул у регіоні, де розташовано ваші екземпляри. Виконайте наведену нижче команду, щоб створити цільовий пул і використати перевірку стану, без якої сервіс не функціонуватиме.

    gcloud compute target-pools create www-pool \ --region {{{project_0.default_region | Region}}} --http-health-check basic-check
  4. Додайте екземпляри в пул:

    gcloud compute target-pools add-instances www-pool \ --instances www1,www2,www3
  5. Додайте правило переадресування:

    gcloud compute forwarding-rules create www-rule \ --region {{{project_0.default_region | Region}}} \ --ports 80 \ --address network-lb-ip-1 \ --target-pool www-pool

    Щоб підтвердити створення розподілювача навантаження мережі L4, що вказує на вебсервери, натисніть Підтвердити виконання. Налаштуйте сервіс розподілу навантаження

Завдання 4. Спрямуйте трафік до екземплярів

Сервіс розподілу навантаження налаштовано, тож можна почати спрямовувати трафік до правила переадресування – ви побачите, як трафік розподіляється між різними екземплярами.

  1. Введіть наведену нижче команду, щоб переглянути зовнішню IP-адресу правила переадресування www-rule, що використовується розподілювачем навантаження.

    gcloud compute forwarding-rules describe www-rule --region {{{project_0.default_region | Region}}}
  2. Щоб отримати доступ до зовнішньої IP-адреси, виконайте таку команду:

    IPADDRESS=$(gcloud compute forwarding-rules describe www-rule --region {{{project_0.default_region | Region}}} --format="json" | jq -r .IPAddress)
  3. Щоб відобразити зовнішню IP-адресу, виконайте таку команду:

    echo $IPADDRESS
  4. Виконайте команду curl, щоб отримати доступ до зовнішньої IP-адреси (замініть IPADDRESS на зовнішню IP-адресу, яку ви отримали за допомогою попередньої команди).

    while true; do curl -m1 $IPADDRESS; done

    Вивід команди curl для трьох екземплярів відрізняється. Якщо команду не вдається виконати з першої спроби, зачекайте приблизно 30 секунд, доки конфігурацію буде повністю завантажено й екземпляри успішно пройдуть перевірку стану, а потім повторіть спробу.

  5. Щоб зупинити виконання команди, натисніть Ctrl + C.

Завдання 5. Створіть розподілювач навантаження додатка

Розподіл навантаження додатка здійснюється в сервісі Google Front End (GFE). Сервіси GFE розподілені по всьому світу, але працюють разом за допомогою площини керування й глобальної мережі Google. Можна налаштувати правила URL-адрес, щоб спрямовувати певні URL-адреси до одного набору екземплярів, а інші URL-адреси – до інших екземплярів.

Запити завжди спрямовуються до тієї групи екземплярів, яка розташована найближче до користувача (якщо така група має достатню ємність і відповідає запиту). Якщо найближчій групі бракує ємності, запит надсилається до найближчої групи достатньої ємності.

Розподілювач навантаження можна налаштувати за допомогою серверної частини Compute Engine, якщо віртуальні машини об’єднані в групу екземплярів. Група керованих екземплярів містить віртуальні машини, на яких запущено внутрішні сервери зовнішнього розподілювача навантаження додатка. На цьому практичному занятті серверні частини обслуговують власні імена хостів.

  1. Спочатку створіть шаблон розподілювача навантаження:

    gcloud compute instance-templates create lb-backend-template \ --region={{{project_0.default_region | Region}}} \ --network=default \ --subnet=default \ --tags=allow-health-check \ --machine-type=e2-medium \ --image-family=debian-11 \ --image-project=debian-cloud \ --metadata=startup-script='#!/bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://169.254.169.254/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'

    За допомогою груп керованих екземплярів можна керувати додатками на кількох ідентичних віртуальних машинах. Щоб забезпечити масштабованість і доступність робочих навантажень, скористайтеся автоматизованими сервісами груп керованих екземплярів, зокрема автомасштабуванням, автоматичним виправленням помилок, регіональним розгортанням (у кількох зонах), а також автоматичним оновленням.

  2. Створіть групу керованих екземплярів за шаблоном:

    gcloud compute instance-groups managed create lb-backend-group \ --template=lb-backend-template --size=2 --zone={{{project_0.default_zone | Zone}}}
  3. Створіть правило брандмауера fw-allow-health-check.

    gcloud compute firewall-rules create fw-allow-health-check \ --network=default \ --action=allow \ --direction=ingress \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --target-tags=allow-health-check \ --rules=tcp:80 Примітка. Це правило вхідного трафіку дозволяє трафік із систем перевірки стану Google Cloud (130.211.0.0/22 й 35.191.0.0/16). У цій практичній роботі для визначення віртуальних машин використовується цільовий тег allow-health-check.
  4. Екземпляри запущено. Тепер налаштуйте глобальну статичну зовнішню IP-адресу, яку ваші клієнти використовуватимуть для доступу до розподілювача навантаження.

    gcloud compute addresses create lb-ipv4-1 \ --ip-version=IPV4 \ --global

    Зверніть увагу на адресу IPv4, яку було зарезервовано:

    gcloud compute addresses describe lb-ipv4-1 \ --format="get(address)" \ --global
  5. Створіть перевірку стану для розподілювача навантаження:

    gcloud compute health-checks create http http-basic-check \ --port 80 Примітка. У Google Cloud є механізми перевірки стану, які визначають, чи реагують екземпляри серверної частини на трафік належним чином. Щоб дізнатися більше про створення перевірок стану, перегляньте цей документ.
  6. Створіть серверний сервіс:

    gcloud compute backend-services create web-backend-service \ --protocol=HTTP \ --port-name=http \ --health-checks=http-basic-check \ --global
  7. Додайте свою групу екземплярів як серверну частину до цього сервісу:

    gcloud compute backend-services add-backend web-backend-service \ --instance-group=lb-backend-group \ --instance-group-zone={{{project_0.default_zone | Zone}}} \ --global
  8. Створіть карту URL-адрес, щоб спрямовувати запити до серверного сервісу за умовчанням:

    gcloud compute url-maps create web-map-http \ --default-service web-backend-service Примітка. Карта URL-адрес – це ресурс конфігурації Google Cloud, що використовується для спрямування запитів до серверних сервісів або їх сегментів. Наприклад, із зовнішнім розподілювачем навантаження додатка можна використовувати одну карту URL-адрес, щоб спрямовувати запити на різні цільові сторінки відповідно до правил, налаштованих у такій карті URL-адрес:

    • запити щодо https://example.com/video спрямовуються до одного серверного сервісу;
    • запити щодо https://example.com/audio спрямовуються до іншого серверного сервісу;
    • запити щодо https://example.com/images спрямовуються до сегмента серверної частини Cloud Storage;
    • запити щодо решти комбінацій хостів і шляхів спрямовуються до серверного сервісу за умовчанням.
  9. Створіть цільовий проксі-сервер HTTP, щоб спрямовувати запити до вашої карти URL-адрес:

    gcloud compute target-http-proxies create http-lb-proxy \ --url-map web-map-http
  10. Створіть глобальне правило переадресування для спрямування вхідних запитів до проксі-сервера:

    gcloud compute forwarding-rules create http-content-rule \ --address=lb-ipv4-1\ --global \ --target-http-proxy=http-lb-proxy \ --ports=80
Примітка. Правило переадресування й відповідна ІР-адреса є конфігурацією інтерфейсної частини розподілювача навантаження Google Cloud. Для загального розуміння правил переадресування ознайомтесь із цим посібником.

Щоб підтвердити створення розподілювача навантаження додатка L7, натисніть Підтвердити виконання. Створіть розподілювач навантаження додатка

Завдання 6. Перевірте, як трафік спрямовується до ваших екземплярів

  1. На панелі заголовка консолі Google Cloud введіть Load balancing (Розподіл навантаження) у полі Search (Пошук), а потім виберіть Load balancing (Розподіл навантаження) у результатах пошуку.

  2. Натисніть розподілювач навантаження, який ви щойно створили (web-map-http).

  3. У розділі Backend (Серверна частина) натисніть назву серверної частини й переконайтесь, що віртуальні машини мають статус Healthy (У нормальному стані). Якщо це не так, зачекайте кілька хвилин і спробуйте оновити сторінку.

  4. Якщо віртуальні машини в нормальному стані, протестуйте розподілювач навантаження через вебпереглядач: перейдіть на сторінку http://IP_ADDRESS/, замінивши IP_ADDRESS на ІР-адресу розподілювача навантаження, яку ви скопіювали раніше.

Примітка. Підключення може тривати до трьох чи навіть п’яти хвилин. Якщо не вдалося підключитися, зачекайте хвилину й оновіть вебпереглядач.

Вебпереглядач має відобразити сторінку з інформацією, що містить назву екземпляра, на якому розміщено цю сторінку, а також відповідну зону (наприклад: Page served from: lb-backend-group-xxxx).

Вітаємо!

На цьому практичному занятті ви створили розподілювачі навантаження мережі й додатка, а також потренувалися використовувати шаблони екземплярів і групи керованих екземплярів.

Наступні кроки/Докладніше

Щоб дізнатися більше, перегляньте наведені нижче посібники.

Щоб поглибити свої знання, перейдіть до наведеного нижче практичного заняття.

Навчання й сертифікація Google Cloud

…допомагають ефективно використовувати технології Google Cloud. Наші курси передбачають опанування технічних навичок, а також ознайомлення з рекомендаціями, що допоможуть вам швидко зорієнтуватися й вивчити матеріал. Ми пропонуємо курси різних рівнів – від базового до високого. Ви можете вибрати формат навчання (за запитом, онлайн або офлайн) відповідно до власного розкладу. Пройшовши сертифікацію, ви перевірите й підтвердите свої навички та досвід роботи з технологіями Google Cloud.

Посібник востаннє оновлено 11 грудня 2024 року

Практичне заняття востаннє протестовано 11 грудня 2024 року

© Google LLC 2025. Усі права захищено. Назва та логотип Google є торговельними марками Google LLC. Усі інші назви компаній і продуктів можуть бути торговельними марками відповідних компаній, з якими вони пов’язані.

Before you begin

  1. Labs create a Google Cloud project and resources for a fixed time
  2. Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
  3. On the top left of your screen, click Start lab to begin

This content is not currently available

We will notify you via email when it becomes available

Great!

We will contact you via email if it becomes available

One lab at a time

Confirm to end all existing labs and start this one

Use private browsing to run the lab

Use an Incognito or private browser window to run this lab. This prevents any conflicts between your personal account and the Student account, which may cause extra charges incurred to your personal account.