Внешний HTTPs LB с расширенным управлением трафиком (Envoy) Codelab

1. Введение

Добро пожаловать на практическое занятие по балансировке нагрузки внешнего HTTPS с расширенным управлением трафиком (Envoy)!

Последняя версия внешнего балансировщика нагрузки HTTP(S) с расширенным управлением трафиком содержит все функции нашего существующего классического глобального внешнего балансировщика нагрузки HTTP(S), но с постоянно расширяющимся списком возможностей расширенного управления трафиком. Некоторые из этих возможностей являются новыми для наших балансировщиков нагрузки, а некоторые расширяют возможности существующих. Частичный список этих возможностей включает:

  • Взвешенное разделение транспортных потоков
  • Запрос на зеркалирование
  • Выявление выбросов
  • Повторные попытки запроса
  • Внедрение ошибок
  • Дополнительные параметры привязки сессии к серверной части
  • Дополнительные параметры преобразования заголовка
  • Междоменный обмен ресурсами (CORS)
  • Новые алгоритмы балансировки нагрузки

Что вы узнаете

  • Как настроить группу управляемых экземпляров и связанные с ней правила для VPC и брандмауэра.
  • Как использовать расширенные функции управления трафиком нового балансировщика нагрузки
  • Как проверить, что расширенные функции управления дорожным движением работают должным образом.

Что вам понадобится

  • Базовые знания сетевых технологий и протокола HTTP.
  • Базовые знания командной строки Unix/Linux.

Топология и примеры использования Codelab

dd8bd5e8e1341878.png

Рисунок 1 — Топология маршрутизации балансировщика нагрузки HTTP.

В ходе этой практической работы вы настроите три группы управляемых экземпляров: одну в восточной, одну в западной и одну в центральной частях. Вы создадите глобальный внешний балансировщик нагрузки HTTPS. Балансировщик нагрузки будет использовать несколько функций из списка расширенных возможностей, поддерживаемых балансировщиком нагрузки на основе Envoy. После развертывания вы сгенерируете имитационную нагрузку и проверите, правильно ли работают заданные вами конфигурации.

2. Настройка и требования

Настройка среды для самостоятельного обучения

  1. Войдите в консоль Google Cloud и создайте новый проект или используйте существующий. Если у вас еще нет учетной записи Gmail или Google Workspace, вам необходимо ее создать .

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • Название проекта — это отображаемое имя участников данного проекта. Это строка символов, не используемая API Google. Вы всегда можете его изменить.
  • Идентификатор проекта уникален для всех проектов Google Cloud и является неизменяемым (его нельзя изменить после установки). Консоль Cloud автоматически генерирует уникальную строку; обычно вам неважно, какая она. В большинстве практических заданий вам потребуется указать идентификатор вашего проекта (обычно обозначается как PROJECT_ID ). Если сгенерированный идентификатор вас не устраивает, вы можете сгенерировать другой случайный идентификатор. В качестве альтернативы вы можете попробовать свой собственный и посмотреть, доступен ли он. После этого шага его нельзя изменить, и он сохраняется на протяжении всего проекта.
  • К вашему сведению, существует третье значение — номер проекта , которое используется некоторыми API. Подробнее обо всех трех значениях можно узнать в документации .
  1. Далее вам потребуется включить оплату в консоли Cloud для использования ресурсов/API Cloud. Выполнение этого практического задания не потребует больших затрат, если вообще потребует. Чтобы отключить ресурсы и избежать дополнительных расходов после завершения этого урока, вы можете удалить созданные ресурсы или удалить проект. Новые пользователи Google Cloud имеют право на бесплатную пробную версию стоимостью 300 долларов США .

Запустить Cloud Shell

Хотя Google Cloud можно управлять удаленно с ноутбука, в этом практическом занятии вы будете использовать Google Cloud Shell — среду командной строки, работающую в облаке.

В консоли Google Cloud нажмите на значок Cloud Shell на панели инструментов в правом верхнем углу:

55efc1aaa7a4d3ad.png

Подготовка и подключение к среде займут всего несколько минут. После завершения вы должны увидеть что-то подобное:

7ffe5cbb04455448.png

Эта виртуальная машина содержит все необходимые инструменты разработки. Она предоставляет постоянный домашний каталог объемом 5 ГБ и работает в облаке Google, что значительно повышает производительность сети и аутентификацию. Вся работа в этом практическом задании может выполняться в браузере. Вам не нужно ничего устанавливать.

Прежде чем начать

Внутри Cloud Shell убедитесь, что идентификатор вашего проекта указан правильно.

gcloud config list project

gcloud config set project [YOUR-PROJECT-NAME]

Идентификатор проекта = [Название вашего проекта]

echo $PROJECT_ID

Включить API

Включите все необходимые службы

gcloud services enable compute.googleapis.com
gcloud services enable logging.googleapis.com
gcloud services enable monitoring.googleapis.com

3. Создайте сеть VPC.

Создайте сеть VPC.

Из Cloud Shell

gcloud compute networks create httplbs --subnet-mode=auto

Выход

Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/httplbs].
NAME: httplbs
SUBNET_MODE: AUTO
BGP_ROUTING_MODE: REGIONAL
IPV4_RANGE:
GATEWAY_IPV4:

Создание правил брандмауэра VPC

После создания VPC необходимо создать правила брандмауэра. Эти правила будут использоваться для разрешения доступа всех IP-адресов к внешнему IP-адресу веб-сайта тестового приложения через порт 80 для HTTP-трафика.

Из Cloud Shell

gcloud compute firewall-rules create httplb-allow-http-rule \
--allow tcp:80 \
--network httplbs \
--source-ranges 0.0.0.0/0 \
--priority 700

Выход

Creating firewall...working..Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls/httplb-allow-http-rule].
Creating firewall...done.
NAME: httplb-allow-http-rule
NETWORK: httplbs
DIRECTION: INGRESS
PRIORITY: 700
ALLOW: tcp:80
DENY:
DISABLED: False

4. Настройте группы управляемых экземпляров.

Необходимо настроить группы управляемых экземпляров, которые включают шаблоны для ресурсов бэкэнда, используемых балансировщиком нагрузки HTTP. Сначала мы создадим шаблоны экземпляров, которые определяют конфигурацию виртуальных машин, создаваемых для каждого региона. Затем для бэкэнда в каждом регионе мы создадим группу управляемых экземпляров, которая будет ссылаться на шаблон экземпляра.

Группы управляемых экземпляров могут иметь зональный или региональный охват. В рамках этого практического задания мы создадим три региональные группы управляемых экземпляров: одну в регионе us-east1, одну в регионе us-west1 и одну в регионе us-central1.

В этом разделе вы можете увидеть предварительно созданный скрипт запуска, который будет использоваться при создании экземпляра. Этот скрипт запуска устанавливает и включает возможности веб-сервера, которые мы будем использовать для имитации веб-приложения. Можете свободно изучить этот скрипт.

Создайте шаблоны экземпляров для Востока, Запада и Центра.

Первым шагом является создание шаблона экземпляра us-east-1.

Из Cloud Shell

gcloud compute instance-templates create us-east1-template \
   --region=us-east1 \
   --network=httplbs \
   --tags=http-server, \
   --image-family=debian-12 \
   --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'

Выход

Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates/us-east1-template].
NAME: us-east1-template
MACHINE_TYPE: n1-standard-1
PREEMPTIBLE:
CREATION_TIMESTAMP: 2021-11-11T11:02:37.511-08:00

Следующий шаг — создание шаблона экземпляра us-west-1.

Из Cloud Shell

gcloud compute instance-templates create us-west1-template \
   --region=us-west1 \
   --network=httplbs \
   --tags=http-server, \
   --image-family=debian-12 \
   --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'

Выход

Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates/us-west1-template].
NAME: us-west1-template
MACHINE_TYPE: n1-standard-1
PREEMPTIBLE:
CREATION_TIMESTAMP: 2021-11-11T11:03:08.577-08:00

Следующий шаг — создание шаблона экземпляра us-central-1.

Из Cloud Shell

gcloud compute instance-templates create us-central1-template \
   --region=us-central1 \
   --network=httplbs \
   --tags=http-server, \
   --image-family=debian-12 \
   --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'

Выход

Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates/us-central1-template].
NAME: us-central1-template
MACHINE_TYPE: n1-standard-1
PREEMPTIBLE:
CREATION_TIMESTAMP: 2021-11-11T11:03:44.179-08:00

Теперь вы можете убедиться в успешном создании шаблонов экземпляров с помощью следующей команды gcloud:

Из Cloud Shell

gcloud compute instance-templates list

Выход

NAME                  MACHINE_TYPE   PREEMPTIBLE  CREATION_TIMESTAMP
us-central1-template   n1-standard-1         2021-11-09T09:25:37.263-08:00
us-east1-template      n1-standard-1         2021-11-09T09:24:35.275-08:00
us-west1-template      n1-standard-1         2021-11-09T09:25:08.016-08:00

Создайте группы управляемых экземпляров «Восток», «Запад» и «Центр».

Теперь нам необходимо создать управляемую группу экземпляров на основе шаблонов экземпляров, созданных нами ранее.

Из Cloud Shell

gcloud compute instance-groups managed create us-east1-mig \
--base-instance-name=us-east1-mig \
--size=1 \
--template=us-east1-template \
--zone=us-east1-b 

Выход

Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-east1-b/instanceGroupManagers/us-east1-mig].
NAME: us-east1-mig
LOCATION: us-east1-b
SCOPE: zone
BASE_INSTANCE_NAME: us-east1-mig
SIZE: 0
TARGET_SIZE: 1
INSTANCE_TEMPLATE: us-east1-template
AUTOSCALED: no

Из Cloud Shell

gcloud compute instance-groups managed create us-west1-mig \
--base-instance-name=us-west1-mig \
--size=1 \
--template=us-west1-template \
--zone=us-west1-a  

Выход

Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instanceGroupManagers/us-west1-mig].
NAME: us-west1-mig
LOCATION: us-west1-a
SCOPE: zone
BASE_INSTANCE_NAME: us-west1-mig
SIZE: 0
TARGET_SIZE: 1
INSTANCE_TEMPLATE: us-west1-template
AUTOSCALED: no

Из Cloud Shell

gcloud compute instance-groups managed create us-central1-mig \
--base-instance-name=us-central1-mig \
--size=1 \
--template=us-central1-template \
--zone=us-central1-a 

Выход

Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-central1-a/instanceGroupManagers/us-central1-mig].
NAME: us-central1-mig
LOCATION: us-central1-a
SCOPE: zone
BASE_INSTANCE_NAME: us-central1-mig
SIZE: 0
TARGET_SIZE: 1
INSTANCE_TEMPLATE: us-central1-template
AUTOSCALED: no

Мы можем убедиться в успешном создании групп экземпляров с помощью следующей команды gcloud:

Из Cloud Shell

gcloud compute instance-groups list

Выход

NAME                  LOCATION      SCOPE   NETWORK         MANAGED INSTANCES
us-central1-mig       us-central1   zone    httplbs          Yes      1
us-west1-mig          us-west1      zone    httplbs          Yes      1
us-east1-mig          us-east1      zone    httplbs          Yes      1

Проверьте работоспособность веб-сервера.

Каждый экземпляр настроен на запуск веб-сервера Apache с простым PHP-скриптом, который выполняет следующие действия:

c87ca81d3125ac61.png

Чтобы убедиться в корректной работе веб-серверов, перейдите в Compute Engine -> Экземпляры виртуальных машин. Убедитесь, что ваши новые экземпляры (например, us-east1-mig-xxx) созданы в соответствии с определениями групп экземпляров.

Теперь отправьте веб-запрос в браузере, чтобы убедиться, что веб-сервер запущен (запуск может занять минуту). На странице экземпляров виртуальных машин в разделе Compute Engine выберите экземпляр, созданный вашей группой экземпляров, и щелкните его внешний (публичный) IP-адрес.

Или же в браузере перейдите по адресу http://<IP_адрес>

5. Настройка балансировщика нагрузки

Создать проверку здоровья

Для начала нам необходимо провести базовую проверку работоспособности, чтобы убедиться в успешной работе наших сервисов. Мы проведем именно базовую проверку, но доступны и более сложные настройки.

Из Cloud Shell

gcloud compute health-checks create http http-basic-check \
    --port 80

Зарезервировать внешний IP-адрес

На этом этапе вам потребуется зарезервировать глобально доступный статический IP-адрес, который впоследствии будет привязан к балансировщику нагрузки.

Из Cloud Shell

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

Обязательно запишите зарезервированный IP-адрес.

gcloud compute addresses describe lb-ipv4-2 \
    --format="get(address)" \
    --global

Создание серверных служб

Теперь нам необходимо создать бэкэнд-сервис для каждой из групп управляемых экземпляров, которые мы создали ранее. По одному для Востока, Запада и Центра.

Создание серверной части для группы управляемых экземпляров East.

Из Cloud Shell

gcloud compute backend-services create east-backend-service \
    --load-balancing-scheme=EXTERNAL_MANAGED \
    --protocol=HTTP \
    --port-name=http \
    --health-checks=http-basic-check \
    --global

Создание серверной части для группы управляемых экземпляров West.

Из Cloud Shell

gcloud compute backend-services create west-backend-service \
    --load-balancing-scheme=EXTERNAL_MANAGED \
    --protocol=HTTP \
    --port-name=http \
    --health-checks=http-basic-check \
    --global

Создание серверной службы для группы управляемых экземпляров Central.

Из Cloud Shell

gcloud compute backend-services create central-backend-service \
    --load-balancing-scheme=EXTERNAL_MANAGED \
    --protocol=HTTP \
    --port-name=http \
    --health-checks=http-basic-check \
    --global

Добавить MIG в бэкэнд-сервисы

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

Добавить East MIG в состав бэкэнд-сервиса.

Из Cloud Shell

gcloud compute backend-services add-backend east-backend-service \
    --balancing-mode='UTILIZATION' \
    --instance-group=us-east1-mig \
    --instance-group-zone=us-east1-b \
    --global

Добавить West MIG в качестве бэкэнд-сервиса.

Из Cloud Shell

gcloud compute backend-services add-backend west-backend-service \
    --balancing-mode='UTILIZATION' \
    --instance-group=us-west1-mig \
    --instance-group-zone=us-west1-a \
    --global

Добавить Central MIG в качестве бэкэнд-сервиса.

Из Cloud Shell

gcloud compute backend-services add-backend central-backend-service \
    --balancing-mode='UTILIZATION' \
    --instance-group=us-central1-mig \
    --instance-group-zone=us-central1-a \
    --global

Создать карту URL

Карта URL-адресов — это место, где будут размещены расширенные функции управления трафиком для этой лабораторной работы. Нам необходимо создать файл .yaml, который будет содержать конфигурацию. В файле .yaml мы создали префиксное соответствие для /roundrobbin, поэтому эти настройки будут применяться только к трафику, соответствующему /roundrobbin. Мы указали, что 50% трафика должно направляться на east-backend-service, а 50% — на west-backend-service. Кроме того, мы добавили значение заголовка ответа: {test}, которое будет присутствовать во всех ответах. Наконец, мы добавили, что весь трафик должен зеркалироваться на central-backend-service. Трафик дублируется и отправляется сюда только в целях тестирования.

Сохраните пример в виде файла .yaml на своем компьютере.

defaultService: https://www.googleapis.com/compute/v1/projects/[project_id]/global/backendServices/east-backend-service
kind: compute #urlMap
name: web-map-http
hostRules:
- hosts:
  - '*'
  pathMatcher: matcher1
pathMatchers:
- defaultService: https://www.googleapis.com/compute/v1/projects/[project_id]/global/backendServices/east-backend-service
  name: matcher1
  routeRules:
  - matchRules:
    - prefixMatch: /roundrobbin
    priority: 2
    headerAction:
        responseHeadersToAdd:
          - headerName: test
            headerValue: value
            replace: True
    routeAction:
        weightedBackendServices:
        - backendService: https://www.googleapis.com/compute/v1/projects/[project_id]/global/backendServices/east-backend-service
          weight: 50
        - backendService: https://www.googleapis.com/compute/v1/projects/[project_id]/global/backendServices/west-backend-service
          weight: 50
        retryPolicy:
            retryConditions: ['502', '504']
            numRetries: 3
            perTryTimeout:
                seconds: 1
                nanos: 50
        requestMirrorPolicy:
          backendService: https://www.googleapis.com/compute/v1/projects/[project_id]/global/backendServices/central-backend-service

Создайте карту URL-адресов, импортировав документ с вашего компьютера. Обратите внимание, что путь к источнику будет отличаться в зависимости от того, куда вы сохраните файл .yaml.

Из Cloud Shell

gcloud compute url-maps import web-map-http \
   --source /Users/[USERNAME]/Documents/Codelab/lbconfig.yaml \
   --global

Создание HTTP-интерфейса

Последний шаг в создании балансировщика нагрузки — создание интерфейса. Он сопоставит зарезервированный вами ранее IP-адрес с созданной вами картой URL-адресов балансировщика нагрузки.

Из Cloud Shell

gcloud compute target-http-proxies create http-lb-proxy-adv \
    --url-map=web-map-http

Далее необходимо создать глобальное правило переадресации, которое будет сопоставлять ранее зарезервированный IP-адрес с HTTP-прокси.

Из Cloud Shell

gcloud compute forwarding-rules create http-content-rule \
    --load-balancing-scheme EXTERNAL_MANAGED \
    --address=lb-ipv4-2 \
    --global \
    --target-http-proxy=http-lb-proxy-adv \
    --ports=80

6. Убедитесь, что расширенные функции управления дорожным движением работают.

Для проверки работоспособности реализованной функции разделения трафика необходимо создать нагрузку. Для этого мы создадим новую виртуальную машину для имитации нагрузки.

Создать правило брандмауэра, разрешающее SSH-доступ

Для подключения к виртуальной машине, с которой мы будем генерировать трафик, по SSH сначала необходимо создать правило брандмауэра, разрешающее SSH-трафик к виртуальной машине.

Из Cloud Shell

gcloud compute firewall-rules create fw-allow-ssh \
    --network=httplbs \
    --action=allow \
    --direction=ingress \
    --target-tags=allow-ssh \
    --rules=tcp:22

Выход

NAME          NETWORK  DIRECTION  PRIORITY  ALLOW   DENY  DISABLED
fw-allow-ssh  httplbs  INGRESS    1000      tcp:22        False

Создать виртуальную машину Siege

Теперь вы создадите виртуальную машину siege, которую будете использовать для генерации нагрузки.

Из Cloud Shell

gcloud compute instances create siege-vm \
    --network=httplbs \
    --zone=us-east4-c \
    --machine-type=e2-medium \
    --tags=allow-ssh,http-server \
    --metadata=startup-script='sudo apt-get -y install siege'

Выход

NAME     ZONE        MACHINE_TYPE INTERNAL_IP  EXTERNAL_IP    STATUS
siege-vm us-east4-c  e2-medium    10.150.0.3   34.85.218.119  RUNNING

Далее вы можете подключиться к созданной виртуальной машине по SSH. После создания виртуальной машины нажмите SSH , чтобы запустить терминал и подключиться.

После подключения выполните следующую команду для создания нагрузки. Используйте IP-адрес, который вы зарезервировали ранее для внешнего балансировщика нагрузки HTTP.

Из Cloud Shell

siege -c 250 http://[$lb-ipv4-2]/roundrobbin

Выход

New configuration template added to /home/cloudcurriculumdeveloper/.siege
Run siege -C to view the current settings in that file
[alert] Zip encoding disabled; siege requires zlib support to enable it: No such file or directory
** SIEGE 4.0.2
** Preparing 250 concurrent users for battle.
The server is now under siege...

Проверка распределения нагрузки

Теперь, когда операция "Осада" запущена, пора проверить, равномерно ли распределяется трафик между группами управляемых экземпляров на востоке и западе. Кроме того, можно проверить, работает ли зеркалирование трафика и направляется ли он в центральную группу управляемых экземпляров.

В консоли Cloud Console в меню навигации щелкните «Сетевые службы» > «Балансировка нагрузки». Выберите балансировщик нагрузки web-map-http. Перейдите на вкладку «Мониторинг», и вы увидите диаграмму, показанную ниже.

f4d6803db44be253.png

Вы сможете наблюдать за распределением трафика в режиме реального времени на этом MIG-сервере. Трафик распределяется равномерно, поскольку вы настроили распределение 50/50 по принципу циклического перераспределения.

Чтобы убедиться в работоспособности созданной вами политики зеркалирования трафика, необходимо проверить использование группы управляемых экземпляров central-backend-service. Для этого перейдите в раздел «Вычисления», «Вычислительный движок», «Группы экземпляров» и выберите us-central1-mig. Затем перейдите на вкладку «Мониторинг».

cf25e44d511529e7.png

Вы увидите, как отобразятся диаграммы, демонстрирующие, что трафик был зеркалирован в эту группу управляемых экземпляров.

Остановите осаду

Теперь, когда вы продемонстрировали работоспособность расширенного разделения трафика, пришло время остановить осаду. Для этого вернитесь в SSH-терминал виртуальной машины siege-vm и нажмите CTRL+C , чтобы остановить запущенную осаду.

Проверка заголовка ответа, отправляемого в ответ на запрос.

Перед очисткой вы можете быстро убедиться, что балансировщик нагрузки HTTP отправляет соответствующий заголовок ответа. Вы настроили его на отправку заголовка test со значением contents. Выполнение команды curl из облачной оболочки даст ожидаемый ответ.

Из Cloud Shell

curl -svo /dev/null http://lb-ipv4-2/roundrobbin

Выход

*   Trying lb-ipv4-2..
* TCP_NODELAY set
* Connected to  lb-ipv4-2 ( lb-ipv4-2) port 80 (#0)
> GET /roundrobbin HTTP/1.1
> Host:  lb-ipv4-2
> User-Agent: curl/7.64.1
> Accept: */*
>
< HTTP/1.1 404 Not Found
< date: Wed, 10 Nov 2021 17:05:27 GMT
< server: envoy
< Content-Length: 273
< content-type: text/html; charset=iso-8859-1
< via: 1.1 google
< test: value
<
{ [273 bytes data]
* Connection #0 to host 34.149.2.26 left intact
* Closing connection 0

7. Уборка лаборатории

Теперь, когда мы закончили с лабораторной средой, пришло время её удалить. Пожалуйста, выполните следующие команды, чтобы удалить тестовую среду.

Из Cloud Shell

gcloud compute instances delete siege-vm --zone=us-east4-c

gcloud compute forwarding-rules delete http-content-rule --global
gcloud compute target-http-proxies delete http-lb-proxy-adv
gcloud compute url-maps delete web-map-http
gcloud compute backend-services delete east-backend-service --global
gcloud compute backend-services delete west-backend-service --global
gcloud compute backend-services delete central-backend-service --global

gcloud compute addresses delete lb-ipv4-2 --global
gcloud compute health-checks delete http-basic-check 

gcloud compute instance-groups managed delete us-east1-mig --zone us-east1-b
gcloud compute instance-groups managed delete us-west1-mig --zone us-west1-a
gcloud compute instance-groups managed delete us-central1-mig --zone us-central1-a

gcloud compute instance-templates delete "us-east1-template" 
gcloud compute instance-templates delete "us-west1-template" 
gcloud compute instance-templates delete "us-central1-template" 

gcloud compute firewall-rules delete httplb-allow-http-rule
gcloud compute firewall-rules delete fw-allow-ssh

gcloud compute networks delete httplbs 

8. Поздравляем!

Вы успешно завершили практическое занятие по балансировке нагрузки внешнего HTTPS с использованием расширенного управления трафиком (Envoy)!

Что мы рассмотрели

  • Как настроить группу управляемых экземпляров и связанные с ней правила для VPC и брандмауэра.
  • Как использовать расширенные функции управления трафиком нового балансировщика нагрузки
  • Как проверить, что расширенные функции управления дорожным движением работают должным образом.

Следующие шаги

  • Попробуйте также другие расширенные функции маршрутизации, такие как перезапись URL-адресов, добавление заголовков CORS и многое другое ( ссылка ).