Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
Практические руководства
  • Веб-сервис
    • Все руководства
    • Статический сайт в Object Storage
    • Сайт на LAMP- или LEMP-стеке
    • Отказоустойчивый сайт с балансировкой нагрузки через Network Load Balancer
    • Отказоустойчивый сайт с балансировкой нагрузки через Application Load Balancer
    • Сайт на базе Joomla с БД PostgreSQL
    • Сайт на WordPress
    • Сайт на WordPress с БД MySQL
    • Перенос WordPress сайта с хостинга в Yandex Cloud
    • Веб-сайт на базе 1С-Битрикс
    • Организация виртуального хостинга
    • Создание балансировщика с защитой от DDoS
    • Публикация обновлений для игр
    • Интеграция L7-балансировщика с Cloud CDN и Object Storage
    • Сине-зеленое и канареечное развертывание версий сервиса
    • Терминирование TLS-соединений
  • Интернет-магазины
    • Все руководства
    • Интернет-магазин на 1С-Битрикс
    • Интернет-магазин на Opencart
  • Архив данных
    • Все руководства
    • Однонодовый файловый сервер
    • Настройка SFTP-сервера на Centos 7
    • Резервное копирование в Object Storage через Acronis
    • Резервное копирование в Object Storage с помощью CloudBerry Desktop Backup
    • Резервное копирование в Object Storage через Duplicati
    • Резервное копирование в Object Storage с помощью Bacula
    • Резервное копирование в Object Storage с помощью Veritas Backup Exec
    • Распознавание архива изображений в Yandex Vision
  • Тестовая среда
    • Все руководства
    • Тестирование приложений с помощью GitLab
    • Создание тестовых ВМ через GitLab CI
    • Высокопроизводительные вычисления на прерываемых виртуальных машинах
    • Эмуляция множества IoT-устройств
    • Нагрузочное тестирование gRPC-сервиса
    • Развертывание и нагрузочное тестирование gRPC-сервиса с масштабированием
    • HTTPS-тест с постоянной нагрузкой с помощью Phantom
    • HTTPS-тест со ступенчатой нагрузкой с помощью Pandora
    • Нагрузочное тестирование с нескольких агентов
  • Управление инфраструктурой
    • Все руководства
    • Начало работы с Terraform
    • Загрузка состояний Terraform в Object Storage
    • Начало работы с Packer
    • Сборка образа ВМ с набором инфраструктурных инструментов с помощью Packer
    • Автоматизация сборки образов ВМ с помощью Jenkins
    • Непрерывное развертывание контейнеризованных приложений с помощью GitLab
    • Создание кластера Linux-серверов «1С:Предприятия» с кластером Managed Service for PostgreSQL
    • Миграция в Yandex Cloud с помощью Hystax Acura
    • Защита от сбоев с помощью Hystax Acura
    • Настройка синхронизации времени NTP
    • Работа с группой ВМ с автоматическим масштабированием
    • Автомасштабирование группы ВМ по расписанию
    • Автомасштабирование группы ВМ для обработки сообщений из очереди
    • Обновление группы ВМ под нагрузкой
    • Передача логов с ВМ в Yandex Cloud Logging
    • Резервное копирование ВМ с помощью Hystax Acura Backup
    • Настройка отказоустойчивой архитектуры в Yandex Cloud
    • Создание SAP-программы в Yandex Cloud
    • Настройка локального кеширующего DNS-резолвера
    • Миграция DNS-зон из Яндекс 360
    • Интеграция с корпоративным сервисом DNS
    • Создание веб-хука резолвера ACME для ответов на DNS01-проверки
    • Запись логов балансировщика в PostgreSQL
    • Создание триггера для бюджетов, который вызывает функцию для остановки ВМ
  • Построение Data Platform
    • Все руководства
    • Миграция базы данных из стороннего кластера Apache Kafka® в Yandex Managed Service for Apache Kafka®
    • Поставка данных из Yandex Managed Service for MySQL в Yandex Managed Service for Apache Kafka® с помощью Yandex Data Transfer
    • Поставка данных из Yandex Managed Service for PostgreSQL в Yandex Managed Service for Apache Kafka® с помощью Yandex Data Transfer
    • Поставка данных из Yandex Managed Service for Apache Kafka® в Yandex Managed Service for ClickHouse с помощью Yandex Data Transfer
    • Перенос данных между кластерами Yandex Managed Service for Apache Kafka® с помощью Yandex Data Transfer
    • Поставка данных из Yandex Managed Service for Apache Kafka® в Yandex Managed Service for YDB с помощью Yandex Data Transfer
    • Поставка данных из Yandex Managed Service for MySQL в Yandex Managed Service for Apache Kafka® с помощью Debezium
    • Поставка данных из Yandex Managed Service for PostgreSQL в Yandex Managed Service for Apache Kafka® с помощью Debezium
    • Настройка Kafka Connect для работы с кластером Yandex Managed Service for Apache Kafka®
    • Управление схемами данных в Yandex Managed Service for Apache Kafka®
    • Использование Managed Schema Registry с Yandex Managed Service for Apache Kafka®
    • Использование Confluent Schema Registry с Yandex Managed Service for Apache Kafka®
    • Миграция базы данных из MySQL в ClickHouse с помощью Yandex Data Transfer
    • Асинхронная репликация данных из PostgreSQL в ClickHouse
    • Обмен данными между Yandex Managed Service for ClickHouse и Yandex Data Proc
    • Настройка Yandex Managed Service for ClickHouse для Graphite
    • Получение данных из Yandex Managed Service for Apache Kafka® в Yandex Managed Service for ClickHouse
    • Получение данных из RabbitMQ в Yandex Managed Service for ClickHouse
    • Сохранение потока данных Yandex Data Streams в Yandex Managed Service for ClickHouse
    • Использование гибридного хранилища в Yandex Managed Service for ClickHouse
    • Шардирование таблиц Yandex Managed Service for ClickHouse
    • Настройка Yandex Cloud DNS для доступа к кластерам управляемых баз данных из других облачных сетей
    • Настройка Yandex Cloud DNS для доступа к кластеру Yandex Managed Service for ClickHouse из других облачных сетей
    • Импорт данных из Yandex Managed Service for MySQL в Yandex Data Proc с помощью Sqoop
    • Импорт данных из Yandex Managed Service for PostgreSQL в Yandex Data Proc с помощью Sqoop
    • Использование скриптов инициализации для настройки GeeseFS в Yandex Data Proc
    • Миграция данных из стороннего кластера Elasticsearch в Yandex Managed Service for Elasticsearch с помощью Reindex API
    • Миграция коллекций из стороннего кластера MongoDB в Yandex Managed Service for MongoDB
    • Миграция данных в Yandex Managed Service for MongoDB
    • Шардирование коллекций MongoDB
    • Анализ производительности и оптимизация MongoDB
    • Миграция базы данных из стороннего кластера MySQL в кластер Yandex Managed Service for MySQL
    • Анализ производительности и оптимизация Managed Service for MySQL
    • Синхронизация данных из стороннего кластера MySQL в Yandex Managed Service for MySQL с помощью Yandex Data Transfer
    • Миграция базы данных из Yandex Managed Service for MySQL в сторонний кластер MySQL
    • Миграция базы данных из Yandex Managed Service for MySQL в Yandex Managed Service for YDB с помощью Yandex Data Transfer
    • Миграция базы данных из Yandex Managed Service for MySQL в Yandex Object Storage с помощью Yandex Data Transfer
    • Создание кластера PostgreSQL для 1С
    • Анализ производительности и оптимизация Managed Service for PostgreSQL
    • Миграция базы данных из стороннего кластера PostgreSQL в кластер Yandex Managed Service for PostgreSQL
    • Миграция базы данных из Managed Service for PostgreSQL
    • Поставка данных из Yandex Managed Service for PostgreSQL в Yandex Managed Service for YDB с помощью Yandex Data Transfer
    • Миграция базы данных из Yandex Managed Service for PostgreSQL в Yandex Object Storage
    • Миграция базы данных из Greenplum® в ClickHouse
    • Миграция базы данных из Greenplum® в PostgreSQL
    • Миграция базы данных из стороннего кластера Redis в Yandex Managed Service for Redis
    • Использование кластера Managed Service for Redis в качестве хранилища сессий PHP
  • Продукты Microsoft в Yandex Cloud
    • Все руководства
    • Развертывание Active Directory
    • Развертывание Microsoft Exchange
    • Развертывание Remote Desktop Services
    • Развертывание группы доступности Always On с внутренним сетевым балансировщиком
    • Развертывание Remote Desktop Gateway
  • Сетевая инфраструктура
    • Все руководства
    • Архитектура и защита базового интернет-сервиса
    • Настройки DHCP для работы с корпоративным DNS-сервером
    • Маршрутизация с помощью NAT-инстанса
    • Создание туннеля IPSec VPN
    • Установка виртуального роутера Cisco CSR 1000v
    • Установка виртуального роутера Mikrotik CHR
    • Соединение с облачной сетью при помощи OpenVPN
    • Создание и настройка шлюза UserGate в режиме прокси-сервера
    • Создание и настройка шлюза UserGate в режиме межсетевого экрана
    • Настройка сети для Yandex Data Proc
  • Визуализация и анализ данных
    • Все руководства
    • Визуализация данных из CSV-файла
    • Создание и публикация диаграммы с картой Москвы из CSV-файла
    • Анализ продаж сети магазинов из БД ClickHouse
    • Анализ открытых данных ДТП на дорогах России
    • Анализ продаж и локаций пиццерий на данных из БД ClickHouse и Marketplace
    • Веб-аналитика с подключением к Яндекс Метрике
    • Веб-аналитика с расчетом воронок и когорт на данных Яндекс Метрики
    • Аналитика мобильного приложения на данных AppMetrica
    • Анализ статистики подкастов Яндекс Музыки (для авторов подкастов)
    • Визуализация данных с помощью SQL-чарта
    • Анализ customer journey мобильного приложения на данных AppMetrica
    • Анализ логов Object Storage при помощи DataLens
  • Интернет вещей
    • Руководства по работе с интернетом вещей
    • Мониторинг состояния географически распределенных устройств
    • Мониторинг показаний датчиков и уведомления о событиях
  • Бессерверные технологии
    • Сокращатель ссылок
    • Ввод данных в системы хранения
    • Хранение журналов работы приложения
    • Развертывание веб-приложения с использованием Java Servlet API
    • Разработка Slack-бота
    • Разработка Telegram-бота
    • Разработка пользовательской интеграции в API Gateway
    • Разработка CRUD API для сервиса фильмов
    • Разработка навыка Алисы и сайта с авторизацией
  1. Управление инфраструктурой
  2. Работа с группой ВМ с автоматическим масштабированием

Работа с группой виртуальных машин с автоматическим масштабированием

Статья создана
Yandex Cloud
  • Перед началом работы
  • Подготовьте окружение
  • Создайте группу ВМ с автоматическим масштабированием и сетевым балансировщиком нагрузки
  • Подключите сетевой балансировщик нагрузки с целевой группой
  • Проверьте работу группы ВМ и сетевого балансировщика
    • Проверьте работу автоматического масштабирования
  • Удалите инфраструктуру

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

Перед началом работы

  1. Если у вас еще нет интерфейса командной строки Yandex Cloud, установите его.

  2. Чтобы скрипты из пошагового руководства работали корректно, скачайте и установите утилиту jq.

  3. Чтобы проверить работу автоматического масштабирования, установите утилиту wrk для проведения нагрузочного тестирования.

Подготовьте окружение

  1. Создайте сервисный аккаунт с именем for-autoscale и назначьте ему роль editor:

    Консоль управления
    CLI
    API
    1. В консоли управления выберите каталог, в котором вы хотите создать сервисный аккаунт.
    2. Выберите вкладку Сервисные аккаунты.
    3. Нажмите кнопку Создать сервисный аккаунт.
    4. Введите имя for-autoscale.
    5. Чтобы назначить сервисному аккаунту роль на текущий каталог, нажмите Добавить роль и выберите роль editor.
    6. Нажмите кнопку Создать.
    1. Создайте сервисный аккаунт:

      По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name или --folder-id.

      yc iam service-account create --name for-autoscale
      

      Результат выполнения команды:

      id: ajelabcde12f33nol1v5
      folder_id: b0g12ga82bcv0cdeferg
      created_at: "2020-11-30T14:32:18.900092Z"
      name: for-autoscale
      
    2. Назначьте роль сервисному аккаунту:

      yc resource-manager folder add-access-binding b1g23ga82bcv0cdeferg \
        --role editor \
        --subject serviceAccount:ajelabcde12f33nol1v5
      

    Воспользуйтесь методом Create для ресурса ServiceAccount.

  2. Создайте сеть с именем yc-auto-network и подсети в двух зонах доступности:

    Консоль управления
    CLI
    API
    1. В консоли управления выберите каталог, в котором вы хотите создать сеть.
    2. Выберите сервис Virtual Private Cloud.
    3. Нажмите кнопку Создать сеть.
    4. Задайте имя сети yc-auto-network.
    5. Выберите дополнительную опцию Создать подсети.
    6. Нажмите кнопку Создать сеть.
    1. Создайте сеть:

      yc vpc network create --name yc-auto-network
      

      Результат выполнения команды:

      id: enpabce123hde4ft1r3t
      folder_id: b0g12ga82bcv0cdeferg
      created_at: "2020-11-30T14:57:15Z"
      name: yc-auto-network
      
    2. Создайте подсеть в зоне ru-central1-a:

      yc vpc subnet create \
        --network-id enpabce123hde4ft1r3t \
        --range 192.168.1.0/24 \
        --zone ru-central1-a
      

      Результат выполнения команды:

      id: e1lnabc23r1c9d0efoje
      folder_id: b0g12ga82bcv0cdeferg
      created_at: "2020-11-30T16:23:12Z"
      network_id: enpabce123hde4ft1r3t
      zone_id: ru-central1-a
      v4_cidr_blocks:
      - 192.168.1.0/24
      
    3. Создайте подсеть в зоне ru-central1-b:

      yc vpc subnet create \
        --network-id enpabce123hde4ft1r3t \
        --range 192.168.2.0/24 \
        --zone ru-central1-b
      

      Результат выполнения команды:

      id: b1csa2b3clideftjb121
      folder_id: b0g12ga82bcv0cdeferg
      created_at: "2020-11-30T16:25:02Z"
      network_id: enpabce123hde4ft1r3t
      zone_id: ru-central1-b
      v4_cidr_blocks:
      - 192.168.2.0/24
      
    1. Создайте сеть с помощью метода Create для ресурса Network.
    2. Создать подсети в зонах ru-central1-a и ru-central1-b с помощью метода Create для ресурса Subnet.

Создайте группу ВМ с автоматическим масштабированием и сетевым балансировщиком нагрузки

  1. Все ВМ группы создаются из образа Container Optimized Image. Каждая ВМ содержит Docker-контейнер с веб-сервером, который эмулирует нагрузку на сервис.

    Узнайте идентификатор последней версии публичного образа Container Optimized Image.

    Образ Container Optimized Image в реестре Yandex Container Registry может обновляться и меняться в соответствии с релизами. При этом образ на виртуальной машине не обновится автоматически до последней версии. Чтобы создать группу ВМ с последней версией Container Optimized Image, необходимо самостоятельно проверить ее наличие:

    CLI
    Marketplace
    yc compute image get-latest-from-family container-optimized-image --folder-id standard-images
    

    Результат:

    id: <идентификатор последней версии COI>
    folder_id: standard-images
    ...
    
    1. Перейдите на страницу Cloud Marketplace и выберите образ с нужной конфигурацией:
      • Container Optimized Image.
      • Container Optimized Image GPU.
    2. В блоке Идентификаторы продукта скопируйте значение image_id.
  2. Сохраните спецификацию группы ВМ с сетевым балансировщиком нагрузки в файл specification.yaml:

    name: auto-group
    service_account_id: <идентификатор сервисного аккаунта>
    scale_policy:
      auto_scale:
        min_zone_size: 1
        max_size: 6
        measurement_duration: 60s
        warmup_duration: 120s
        cooldown_duration: 60s
        initial_size: 2
        cpu_utilization_rule:
          utilization_target: 40
    deploy_policy:
      max_unavailable: 1
    allocation_policy:
      zones:
        - zone_id: ru-central1-a
        - zone_id: ru-central1-b
    load_balancer_spec:
      target_group_spec:
        name: auto-group-tg
    instance_template:
      service_account_id: <идентификатор сервисного аккаунта>
      platform_id: standard-v3
      resources_spec:
        memory: 2G
        cores: 2
        core_fraction: 100
      metadata:
        docker-container-declaration: |-
          spec:
            containers:
            - image: cr.yandex/yc/demo/web-app:v1
              securityContext:
                privileged: false
              tty: false
              stdin: false
      boot_disk_spec:
        mode: READ_WRITE
        disk_spec:
          type_id: network-hdd
          size: 10G
          image_id: fd8iv792kirahcnqnt0q # Идентификатор публичного образа Container Optimized Image.
      network_interface_specs:
        - network_id: <идентификатор облачной сети>
          primary_v4_address_spec: { one_to_one_nat_spec: { ip_version: IPV4 }}
    
  3. Замените в файле specification.yaml значения в угловых скобках на реальные, на основе выполнения предыдущих шагов.

  4. Создайте группу ВМ с именем auto-group с помощью спецификации specification.yaml:

    CLI
    API

    Выполните команду:

    yc compute instance-group create --file=specification.yaml
    

    Результат выполнения команды:

    done (2m45s)
    id: cl0hmabc1nd2hdefgb7k
    folder_id: b0g12ga82bcv0cdeferg
    ...
        name: auto-group-tg
    service_account_id: ajelabcde12f33nol1v5
    status: ACTIVE
    

    Воспользуйтесь методом CreateFromYaml для ресурса InstanceGroup.

  5. Убедитесь, что группа ВМ создана:

    Консоль управления
    CLI
    API
    1. В консоли управления выберите каталог, в котором вы создали группу ВМ.
    2. Выберите сервис Compute Cloud.
    3. Перейдите в раздел Группы виртуальных машин.
    4. Нажмите на имя группы ВМ auto-group.
    yc compute instance-group list-instances auto-group
    

    Результат выполнения команды:

    +----------------------+---------------------------+----------------+--------------+------------------------+----------------+
    |     INSTANCE ID      |           NAME            |  EXTERNAL IP   | INTERNAL IP  |         STATUS         | STATUS MESSAGE |
    +----------------------+---------------------------+----------------+--------------+------------------------+----------------+
    | epdab0c1ji2ad4ef8l1s | cl0habce1nd2hqstgd7e-fned | 84.201.163.202 | 192.168.1.34 | RUNNING_ACTUAL [4m26s] |                |
    | ef0uabc1s2fbde6f5tlu | cl0habce1nd2hqstga7b-craq | 130.193.56.102 | 192.168.2.19 | RUNNING_ACTUAL [4m14s] |                |
    +----------------------+---------------------------+----------------+--------------+------------------------+----------------+
    

    Посмотрите список созданных групп ВМ с помощью метода List для ресурса InstanceGroup.

Подключите сетевой балансировщик нагрузки с целевой группой

  1. Создайте сетевой балансировщик нагрузки с именем group-balancer и подключите его к созданной группе ВМ:

    Консоль управления
    CLI
    API
    1. В консоли управления выберите каталог, в котором хотите создать балансировщик.
    2. Выберите сервис Network Load Balancer.
    3. Нажмите кнопку Создать балансировщик.
    4. Задайте Имя group-balancer.
    5. В поле Публичный адрес выберите значение Автоматически.
    6. В блоке Обработчики нажмите кнопку Добавить обработчик:
      • В открывшемся окне введите Имя обработчика http.
      • В поле Порт укажите 80, на нем балансировщик будет принимать входящий трафик.
      • В поле Целевой порт укажите 80, на него балансировщик будет направлять трафик.
      • Нажмите кнопку Добавить.
    7. В блоке Целевые группы нажмите кнопку Добавить целевую группу.
    8. В поле Целевая группа выберите группу ВМ auto-group и нажмите кнопку Настроить:
      • В открывшемся окне Настройка проверки состояния введите Имя tcp.
      • Выберите Тип TCP.
      • В поле Порт укажите 80.
      • Нажмите кнопку Применить.
    9. Нажмите кнопку Создать.
    yc load-balancer network-load-balancer create \
      --listener external-ip-version=ipv4,name=http,port=80,protocol=tcp,target-port=80 \
      --name group-balancer \
      --target-group healthcheck-name=tcp,healthcheck-tcp-port=80,target-group-id=cl0hmabc1nd2hdefgb7k
    

    Результат выполнения команды:

    done (16s)
    id: b0rbabc1m2edfu2ss579
    folder_id: b0g12ga82bcv0cdeferg
    ...
        healthy_threshold: "2"
        tcp_options:
          port: "80"
    
    1. Создайте балансировщик нагрузки с помощью метода Create для ресурса NetworkLoadBalancer.
    2. Добавьте обработчик к балансировщику с помощью метода AddListener для ресурса NetworkLoadBalancer.
    3. Подключите целевую группу к балансировщику с помощью метода AttachTargetGroup для ресурса NetworkLoadBalancer.
    4. Подключите балансировщик к группе ВМ с помощью метода AddTargets для ресурса TargetGroup.
  2. Убедитесь, что сетевой балансировщик group-balancer создан и привязан к группе ВМ:

    Консоль управления
    CLI
    API
    1. В консоли управления выберите каталог, в котором вы создали балансировщик.
    2. Выберите сервис Network Load Balancer.
    3. Нажмите на имя балансировщика group-balancer.
    yc load-balancer network-load-balancer list
    

    Результат выполнения команды:

    +----------------------+----------------+-------------+----------+----------------+------------------------+--------+
    |          ID          |      NAME      |  REGION ID  |   TYPE   | LISTENER COUNT | ATTACHED TARGET GROUPS | STATUS |
    +----------------------+----------------+-------------+----------+----------------+------------------------+--------+
    | b0rbabc1m2edfu2ss579 | group-balancer | ru-central1 | EXTERNAL |              1 | b0rdabckribed1fbv2l1   | ACTIVE |
    +----------------------+----------------+-------------+----------+----------------+------------------------+--------+
    

    Воспользуйтесь методом List для ресурса NetworkLoadBalancer.

Проверьте работу группы ВМ и сетевого балансировщика

  1. Создайте нагрузку на одну из ВМ.

    Для этого сохраните скрипт с именем request.sh в домашнюю директорию. Скрипт через балансировщик group-balancer отправит на одну из ВМ запрос, который будет создавать нагрузку в 100% CPU в течение 30 секунд.

    EXTERNAL_IP=$(yc load-balancer network-load-balancer get group-balancer --format=json | jq -r .listeners[0].address)
    
    curl "http://$EXTERNAL_IP/burn-cpu?time=30000&load=100"
    
  2. Запустите скрипт:

    CLI
    sh request.sh
    

    Результат выполнения команды:

    projects/b0g12ga82bcv0cdeferg/zones/ru-central1-b
    
  3. Посмотрите нагрузку на ВМ:

    Консоль управления
    1. В консоли управления выберите каталог, в котором вы создали группу ВМ.
    2. Выберите сервис Compute Cloud.
    3. Перейдите в раздел Группы виртуальных машин.
    4. Нажмите на имя группы ВМ auto-group.
    5. Выберите вкладку Мониторинг.
      Балансировщик направил запрос на одну из ВМ группы. В зоне доступности этой ВМ среднее потребление CPU (график Average CPU utilization in zone) выше, чем в других.

Проверьте работу автоматического масштабирования

Чтобы проверить работу автоматического масштабирования группы ВМ, нужно создать повышенную нагрузку на CPU каждой ВМ. В файле specification.yaml в параметре scale_policy.auto_scale.cpu_utilization_rule.utilization_target указано значение 40 — целевой уровень нагрузки 40% CPU. Если превысить целевую нагрузку, Instance Groups увеличит количество ВМ в группе.

  1. Создайте повышенную нагрузку на группу ВМ.

    Для этого сохраните скрипт с именем load.sh в домашнюю директорию. Скрипт в течение 10 минут в 12 потоков отправляет запросы к группе ВМ. При этом у каждой ВМ используется по 20% CPU на каждое ядро, обрабатывающее запрос. Группа ВМ в каждый момент времени будет загружена на 240% CPU. Скрипт специально выполняет несколько параллельных запросов по 20% CPU, а не один в 240% CPU, чтобы запросы равномерно распределялись между ВМ в группе.

    EXTERNAL_IP=$(yc load-balancer network-load-balancer get group-balancer --format=json | jq -r .listeners[0].address)
    
    wrk -H "Connection: close" -t12 -c12 -d10m "http://$EXTERNAL_IP/burn-cpu?time=5000&load=20"
    
  2. Запустите скрипт:

    CLI
    sh load.sh
    

    Результат выполнения команды:

    Running 10m test @ http://130.193.56.111/burn-cpu?time=5000&load=20
      12 threads and 12 connections
      Thread Stats   Avg      Stdev     Max   +/- Stdev
    ...
    Requests/sec: 15.04
    Transfer/sec: 3.20KB
    
  3. Посмотрите нагрузку:

    Консоль управления
    1. В консоли управления выберите каталог, в котором вы создали группу ВМ auto-group.
    2. Выберите сервис Compute Cloud.
    3. Перейдите в раздел Группы виртуальных машин.
    4. Нажмите на название группы ВМ auto-group.
    5. Выберите вкладку Мониторинг.
      На графике Number of instance in zone отображены изменения количества ВМ в каждой зоне доступности. На графике Average CPU utilization in zone — средняя CPU-нагрузка в каждой зоне доступности.
    6. Перейдите на вкладку Логи.
      На странице отображены сообщения о действиях в рамках автоматического масштабирования группы ВМ.

    Суммарная нагрузка в 240% CPU равномерно распределилась между двумя ВМ в двух зонах доступности и превысила целевой уровень нагрузки в 40% CPU. Instance Groups создал по дополнительной ВМ в каждой зоне доступности и в группе стало четыре ВМ. Когда скрипт перестал создавать CPU-нагрузку, Instance Groups автоматически уменьшил количество ВМ в группе до двух.

Удалите инфраструктуру

  1. Удалите сетевой балансировщик нагрузки:

    Консоль управления
    CLI
    API
    1. В консоли управления выберите каталог, в котором вы создали балансировщик group-balancer.
    2. Выберите сервис Network Load Balancer.
    3. Нажмите значок в строке балансировщика group-balancer.
    4. В открывшемся меню нажмите кнопку Удалить.
    5. В открывшемся окне Удаление балансировщика нажмите кнопку Удалить.
    yc load-balancer network-load-balancer delete group-balancer
    

    Результат выполнения команды:

    done (15s)
    

    Воспользуйтесь методом Delete для ресурса NetworkLoadBalancer.

  2. Удалите группу ВМ:

    Консоль управления
    CLI
    API
    1. В консоли управления выберите каталог, в котором вы создали группу ВМ auto-group.
    2. Выберите сервис Compute Cloud.
    3. Перейдите в раздел Группы виртуальных машин.
    4. Нажмите значок для группы ВМ auto-group.
    5. В открывшемся меню нажмите кнопку Удалить.
    6. В открывшемся окне Удаление группы виртуальных машин нажмите кнопку Удалить.
    yc compute instance-group delete auto-group
    

    Результат выполнения команды:

    done (1m20s)
    

    Воспользуйтесь методом Delete для ресурса InstanceGroup.

  3. Удалите подсети:

    Консоль управления
    CLI
    API
    1. В консоли управления выберите каталог, в котором вы создали подсети.
    2. Откройте раздел Virtual Private Cloud.
    3. Нажмите на имя сети, в которой находятся подсети.
    4. Нажмите значок в строке подсети, которую требуется удалить.
    5. В открывшемся меню нажмите кнопку Удалить.
    6. В открывшемся окне нажмите кнопку Удалить.
    7. Повторите три предыдущих шага, чтобы удалить остальные подсети.
    1. Удалите подсеть в зоне ru-central1-a:

      yc vpc subnet delete e1lnabc23r1c9d0efoje
      

      Результат выполнения команды:

      done (1s)
      id: e1lnabc23r1c9d0efoje
      folder_id: b0g12ga82bcv0cdeferg
      created_at: "2020-11-30T16:23:12Z"
      network_id: enpabce123hde4ft1r3t
      zone_id: ru-central1-a
      v4_cidr_blocks:
      - 192.168.1.0/24         
      
    2. Удалите подсеть в зоне ru-central1-b:

      yc vpc subnet delete b1csa2b3clideftjb121
      

      Результат выполнения команды:

      done (1s)
      id: b1csa2b3clideftjb121
      folder_id: b0g12ga82bcv0cdeferg
      created_at: "2020-11-30T16:25:02Z"
      network_id: enpabce123hde4ft1r3t
      zone_id: ru-central1-b
      v4_cidr_blocks:
      - 192.168.2.0/24
      

    Воспользуйтесь методом Delete для ресурса Subnet.

  4. Удалите сеть:

    Консоль управления
    CLI
    API
    1. В консоли управления выберите каталог, в котором вы создали сеть.
    2. Откройте раздел Virtual Private Cloud.
    3. Нажмите значок в строке сети, которую требуется удалить.
    4. В открывшемся меню нажмите кнопку Удалить.
    5. В открывшемся окне нажмите кнопку Удалить.
    yc vpc network delete yc-auto-network
    

    Результат выполнения команды:

    id: enpabce123hde4ft1r3t
    folder_id: b0g12ga82bcv0cdeferg
    created_at: "2020-11-30T14:57:15Z"
    name: yc-auto-network
    

    Воспользуйтесь методом Delete для ресурса Network.

  5. Удалите сервисный аккаунт:

    Консоль управления
    CLI
    API
    1. В консоли управления перейдите в каталог, которому принадлежит сервисный аккаунт.
    2. Выберите вкладку Сервисные аккаунты.
    3. Нажмите значок напротив сервисного аккаунта и выберите Удалить сервисный аккаунт.
    4. Подтвердите удаление.
    yc iam service-account delete for-autoscale
    

    Результат выполнения команды:

    done (2s)
    

    Воспользуйтесь методом Delete для ресурса ServiceAccount.

Была ли статья полезна?

Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
В этой статье:
  • Перед началом работы
  • Подготовьте окружение
  • Создайте группу ВМ с автоматическим масштабированием и сетевым балансировщиком нагрузки
  • Подключите сетевой балансировщик нагрузки с целевой группой
  • Проверьте работу группы ВМ и сетевого балансировщика
  • Проверьте работу автоматического масштабирования
  • Удалите инфраструктуру