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

1. Введение

Добро пожаловать на практическую работу по внешнему HTTPs LB с расширенным управлением трафиком (Envoy)!

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

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

Чему вы научитесь

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

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

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

Топология и вариант использования Codelab

dd8bd5e8e1341878.png

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

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

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

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

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

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

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

Запустить Cloud Shell

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

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

55efc1aaa7a4d3ad.png

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

7ffe5cbb04455448.png

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

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

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

проект списка конфигураций gcloud

gcloud config set project [ИМЯ-ВАШЕГО-ПРОЕКТА]

PROJECT_ID=[ИМЯ-ВАШЕГО-ПРОЕКТА]

эхо $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_Address>

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

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

Из 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. Мы также добавили заголовок ответа value:{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-vm

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

Из 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...

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

Теперь, когда 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 отправляет правильный заголовок ответа. Вы настроили его на отправку тестового заголовка со значением содержимого. Выполнение команды curl из Cloud Shell даст ожидаемый ответ.

Из 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 LB с расширенным управлением трафиком (Envoy)»!

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

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

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

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