Перейти к содержанию

Виртуальные машины и контейнеры

Создание проекта

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

Если вы не создавали ранее у нас облачные проекты, то первым делом увидите в разделе общее описание доступных зон, процессоров и сервиса в целом. Сразу под описанием расположена кнопка Перейти к настройкам:

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

После создания проекта вы увидите таблицу со всеми вашими проектами, а также с выделенными и использованными ресурсами:

Вход в панель управления виртуальными машинами и контейнерами

Для входа в панель на вкладке Облако / Виртуальные машины выберете нужный проект и географическую зону из списка и нажмите кнопку Перейти.

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

Интерфейс интуитивно понятен, но разберем все возможности по порядку.

Управление виртуальными машинами и ресурсами

Управление виртуальными машинами

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

Географическая зона будет указана в левом верхнем углу панели.

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

Для каждого нового проекта по умолчанию устанавливаются квоты на выделенное количество ресурсов:

  • в зоне – Москва: 32 vCPU, 32 Gb RAM, 1000 Gb disk SSD, 1000 Gb disk HDD, 10 IPv4
  • в зоне – Алматы: 16 vCPU, 16 Gb RAM, 1000 Gb disk SSD, 10 IPv4
  • в зоне – Прага: 16 vCPU, 16 Gb RAM, 1000 Gb disk SSD, 10 IPv4

Для расширения квот необходимо обратиться к вашему менеджеру и согласовать с ним новые квоты.

Создание виртуальной машины

  1. Для создания виртуальной машины перейдите на вторую вкладку в меню слева Compute.

  2. Выбрав пункт Images -> Public Images, можно ознакомиться с доступными образами для создания виртуальной машины.

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

    Далее выбираем пункт Instances и нажимаем Create Instance.

  3. Available Zone оставляем по умолчанию, в поле Specification выбираем конфигурацию виртуальной машины.

    Название конфигурации включает в себя тип процессора, количество vCPU и vRAM.

    Пример:

    Из конфигурации amd-1-1 будет создана виртуальная машина на базе процессора AMD с 1 VCPU и 1 Gb vRAM.

  4. Выбираем образ операционной системы в разделе Operating System.

  5. В разделе System Disk выбираем тип диска и устанавливаем его размер.

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

    Рядом с окном для указания размера диска, устанавливается флажок Deleted with the instance. Эта настройка проставляется по умолчанию и означает то, что при удалении данной виртуальной машины, диск будет удален вместе с ней.

    Если вы хотите сохранить диск при удалении создаваемой вами машины, то необходимо снять флажок с этой настройки.

    Увидеть свой диск после удаления виртуальной машины вы сможете в разделе Storage Volumes.

    При необходимости можно добавить еще один диск, в пункте Data Disk нажав Add Data Disk. Вы так же всегда можете добавить новый диск к виртуальной машине позже.

    Далее нажимаем Next: Network Config.

  6. Появляется раздел Network Config, выбираем Shared Networks и выбираем сеть public, ip-адрес назначается автоматически.

    При необходимости, можно добавить еще один адрес, нажав Add Virtual LAN.

  7. Внизу выбираем Security Group.

    Далее нажимаем Next: System Config.

  8. В поле Name вводим название виртуальной машины

  9. В разделе Login Type выбираем как будет осуществляться доступ к виртуальной машине, по SSH (Keypair) или по паролю (Password)

    Использование ключей SSH позволяет защитить доступ SSH к виртуальным машинам. Вы можете сгенерировать пару ключей, с которыми будете подключаться к виртуальным машинам через SSH. Закрытый ключ будет храниться на клиенте, и вы сможете скопировать его на другие узлы. Открытый ключ необходимо будет загрузить и указать при создании виртуальной машины. Он будет внедрен в виртуальную машину с помощью Cloud-Init и использован для аутентификации OpenSSH. Внедрение ключей поддерживается для виртуальных машин Linux.

    Мы рекомендуем для доступа к виртуальным машинам использовать SSH ключи.

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

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

       #ps1 
      net user Administrator «Password»
      

      После добавления ключа нажимаем OK.

      Создать или подгрузить SSH ключ в панель управления виртуальными машинами можно так же заранее, в разделе Compute -> Key Pairs, по такому же алгоритму.

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

    3. Доступ по паролю к виртуальной машине с операционной системой Windows.

      На этапе создания виртуальной машины, выбираем доступ по паролю и вводим любой пароль (на данном этапе введенный пароль не влияет на настройки доступа), далее разворачиваем внизу вкладку Expand Advanced Options.

      В поле User Data введите скрипт:

      Где «Password» после Administrator должен быть пароль, с которым будете заходить в систему.

      Важный момент: в первой строчке после #ps1 есть пробел, он важен.

      Пример скрипта с паролем 1qaz@WSX представлен на скриншоте ниже:

    Далее нажимаем Next: Confirm Config.

  10. В новой вкладке проверяем конфигурацию виртуальной машины

    Справа внизу нажимаем Confirm.

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

    После того, как виртуальная машина будет создана, вы сможете увидеть ее в панели на той же вкладке Compute -> Instances.

Как подключиться к виртуальной машине (Linux, Windows)

Подключиться к машине Linux можно через консоль (например MobaXterm) по ssh дефолтный пользователь@ip машины

Имена пользователей для разных систем:

Ubuntu — ubuntu

CentOS — cloud-user

Подключиться к машине Windows можно по RDC (Remote Desktop Connection), введя нужный адрес машины

Добавление нового диска к существующие виртуальной машине (начиная с создания диска, с настройкой тома внутри машины)

Создать диск можно во вкладке Compute -> Volumes и нажать Create Volume

При создании диска нужно указать его

1) Available Zone (всегда nova)
2) Создать ли пустой диск, создать загрузочный диск из образа, либо же из снапшота другого вольюма
3) Тип диска, SSD или HDD
4) Размер диска
5) Имя диска

Присоединить вольюм можно через машины More -> Related Resources -> Attach Volume

Либо через сам вольюм присоединить его к машине More -> Instance Related -> Attach и выбрать к какой ВМ его присоединить

После перезагрузки ВМ диск должен видеться в системе

Увеличение/уменьшение диска в существующей виртуальной машине (основной диск с OS и доп диск) (с настройкой тома внутри машины)

Увеличить вольюм можно зайдя в вольюм, More -> Capacity & Type

Далее выбрать до какого объёма его увеличить

Объём существующих дисков можно только увеличить

Floating IP и настройка роутинга

Для создания Floating IP нужно зайти во вкладку Network -> Floating IPs и нажать Allocate IP

При создании адреса можно выбрать нашу public сеть, указывать подсеть необязательно, некоторые могут быть заняты

Изменение флейвора для созданной виртуальной машины

Для изменения конфигурации необходимо у ВМ выбрать опцию More -> Configuration Update -> Resize

После этого выбрать новый флейвор и подтвердить force shutdown

После какого-то времени станет доступна опция Confirm Resize or Migrate, после её нажатия у машины изменится конфигурация (также изменение конфигурации можно отменить кнопкой Revert Resize or Migrate)

Добавление второго сетевого интерфейса

Для добавления сетевого интерфейса нужно выбрать опцию More -> Related Resources -> Attach Interface

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

Выключение виртуальной машины

Для выключения машины есть несколько опций в More Instance Status

1) Stop — машина выключится, но ресурсы машины продолжат тарифицироваться
2) Sheve — все резервы снимутся, тарифицируются только диск и ip

Удаление виртуальной машины

Для удаления машины нужно выбрать More -> Delete

В окне подтверждения есть опция Immediately delete, если её активировать, все IP, интерфейсы, диски и другие ресурсы ВМ будут также удалены

Работа с облаком через OpenStack CLI

Плюсы использования CLI

  • Скорость и воспроизводимость. Скрипт = один запуск вместо множества кликов. Результат легко повторить на другом проекте.
  • Автоматизация. Интеграция в CI/CD, cron, Ansible/Terraform-провижининг, пост‑деплой шаги.
  • Полнота функций. CLI обычно первым получает новые ключи и параметры API, которые долго не появляются в UI.
  • Точная диагностика. Больше полей в выводе, удобный парсинг (-f json, -c колонки) для трейсинга проблем.
  • Масштаб. Пакетные операции над сотнями ВМ, портов, IP, томов без нагрузки на браузер и руки.
  • Идемпотентность. Комбинации вида openstack keypair show mykey || openstack keypair create ... позволяют безопасные повторные прогоны.

1. Установка OpenStack CLI

Linux (Ubuntu/Debian)

Откройте терминал.

Обычно через Ctrl+Alt+T или меню приложений (значок “Terminal”).

Обновите список пакетов:

sudo apt update
Установите pip (менеджер пакетов Python)
sudo apt install python3-pip -y

Обновите pip до последней версии:

pip3 install --upgrade pip
Установите OpenStack CLI
pip3 install python-openstackclient

Проверьте установку:

openstack --version

Должно показать номер версии, например: openstack 6.6.0

Windows

Установка Python 3
  1. Перейдите на сайт python.org.
  2. Нажмите Download Python 3.x.x.
  3. Запустите скачанный файл.
  4. Поставьте галочку “Add Python to PATH”.
  5. Нажмите Install Now и дождитесь завершения.
Открытие PowerShell
  1. Нажмите Win+R.

  2. Введите powershell и нажмите Enter. Откроется окно PowerShell.

Установка OpenStack CLI

В PowerShell введите:

pip install python-openstackclient
Проверка
openstack --version

Если установка прошла успешно, появится номер версии.

2. Получение файла конфигурации (RC-файл)

  1. Зайдите на сайт Openstack.
  2. Войдите под своей учётной записью.
  3. В правом верхнем углу наведите на иконку пользователя.
  4. Выберите Get OpenRC file.

  5. Сохраните файл, он появится у вас в папке “Загрузки” или “Downloads” с именем openrc.sh.

3. Авторизация в облаке

В терминале перейдите в папку, где лежит RC-файл:

cd ~/путь_до_openrc.sh

Выполните:

source openrc.sh

Введите пароль от панели облака(он такой же, какой у вас при заходе на сайт) при запросе.

Windows (PowerShell)

Откройте openrc.sh в блокноте, для этого можете в PowerShell прописать notepad openrc.sh или просто открыть его в через проводник выбрав “Открыть с помощью” -> Блокнот.

Найдите переменные OS_AUTH_URL, OS_USERNAME и т.д.).

В PowerShell задайте их вручную:

setx OS_AUTH_URL "https://cp.gpucloud.ru/api/openstack/moscowone/keystone/v3/"
setx OS_PROJECT_NAME "Введите тут название вашего проекта"
setx OS_USERNAME "Введите тут вашу логин"
setx OS_PASSWORD "введите_тут_ваш_пароль_от_Openstack"
setx OS_USER_DOMAIN_NAME "Введите домен с которым заходите на сайт"
setx OS_PROJECT_DOMAIN_NAME "Введите домен с которым заходите на сайт"

Закройте PowerShell и откройте снова, чтобы настройки применились.

4. Первые команды

Проверить доступ:

openstack token issue

Если неверно указан пароль, либо ошибка в параметрах вы увидите:

И вот что вы увидете если указали все верно:

Список виртуальных машин:

openstack server list

5. Создание виртуальной машины

Посмотреть шаблоны ресурсов, обычно в названии указывается:

“марка_процессора–количество_ядер–количество_ОЗУ_GB”

примеры: ice-2-2, amd-1-4, intel-4-16

openstack flavor list

Посмотреть образы(разные виды операционных систем):

openstack image list

Создать ВМ:

openstack server create --flavor amd-1-1 --image ubuntu-22.04 \ --nic net-id=<ID_сети> --security-group default \ --key-name mykey vm-test

6. Работа с сетью

Список сетей:

openstack network list

Создание сети:

openstack network create mynet

Создание подсети:

openstack subnet create --network mynet \ --subnet-range 192.168.100.0/24 mysubnet

Создание роутера:

openstack router create myrouter openstack router add subnet myrouter mysubnet

7. Работа с ключами SSH

Добавить ключ:

openstack keypair create --public-key ~/.ssh/id_rsa.pub mykey

Список ключей:

openstack keypair list

8. Работа с дисками и объектным хранилищем

Создание тома:

openstack volume create --size 10 myvolume

Прикрепить том к ВМ:

openstack server add volume vm-test myvolume

Создание контейнера:

openstack container create mycontainer

Загрузка объекта:

openstack object create mycontainer file.txt

Список объектов:

openstack object list mycontainer

Управление Openstack сетями и безопасностью

Введение в Security Groups

Security Group (группа безопасности) — это набор правил firewall, которые контролируют входящий и исходящий трафик ВМ. Каждое правило указывает:

  • Протокол (TCP, UDP, ICMP, или всё)
  • Порт или диапазон портов
  • Источник/Назначение (IP адрес или пул IP-адресов)
  • Направление (входящее/исходящее)

По умолчанию при создании ВМ ей присваивается default SG, которая разрешает весь входящий и исходящий трафик.

Создание Security Group

Через панель Skyline

  1. Перейдите в Network -> Security Groups

  2. Нажмите кнопку Create Security Group

  3. Заполните поля:
    • Name: test-sg (произвольное имя)
    • Description: SG для сервера (произвольное имя)
  4. Нажмите Create Security Group

Добавление правил в Security Group

После создания SG нужно добавить правила (Rules).

Добавить правило для SSH (TCP 22)

  1. Откройте только что созданную SG (кликните на её имя)

  2. Вкладка Rules -> нажмите Create Rule

  3. Заполните:
    • Protocol: Custom TCP Rule
    • Direction: Ingress (входящий)
    • Ether Type: IPv4
    • Port Type: Custom
    • Port/Port Range: 22
    • Remote Type: CIDR
    • Remote: 0.0.0.0/0 (разрешить всем) или конкретный IP (например, 203.0.113.50/28)
  4. Нажмите Add

В данном случае у нас появится правило, разрешающее Входящий TCP трафик на ВМ по IPv4, по 22 порту для айпи из пула 203.0.113.50-203.0.113.65

Важно: По умолчанию (Security Group “default”) все исходящие и входящие соединения (Egress/Ingress) разрешены. Если вам нужно ограничить исходящий или исходящий трафик, добавьте свои правила.

Добавление Security Group к ВМ

При создании ВМ

  • На этапе выбора Network выберите нужную SG из списка

К уже созданной ВМ

  1. Перейдите Compute -> Instances
  2. Найдите свою ВМ, кликните на её имя
  3. Вкладка Security Groups
  4. Нажмите Manage Security Groups

  5. Выберите нужные SG из списка.

  6. Нажмите Ok.

Добавление Floating IP

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

Выделение Floating IP

  1. Перейдите Network -> Floating IPs
  2. Нажмите Allocate IP to Project

  3. Выберите Pool: public (так же и других регионах)

    Owned Subnet: можете выбрать IPv6, либо оставьте без изменений, тогда будет присвоен один из свободных IPv4-адресов

    Batch Allocate: при активной опции вы сможете создать сразу необходимое количество Плавающих IP.

  4. Нажмите Ok

Привязка Floating IP к ВМ:

  1. Создание роутера

    Network -> Routers -> Create Router

    Name: Имя вашего роутера

    Availability Zone Hints: nova (обязательно!)

    Options: Open External Gateway (обязательно!)

    External Gateway: public (только он)

  2. Нажмите Ok

  3. Необходимо создать сеть и подсеть Network -> Networks -> Create Network

  4. Заполните поля:

    Name: test_net (произвольное имя вашей сети)

    Description: Ваше описание для этой сети (опционально)

    Available Zone: nova (сеть активна)

    Create Subnet: ✅ (необходимо создать подсеть)

    Subnet Name: test_subnet (произвольное имя вашей подсети)

    IP Version: ipv4 / ipv6

    CIDR: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 (вы можете указать другие маски подсети, например /24, но пул обязательно должен быть из локальных адресов, которые приведены, то есть при указании внешнего IP, например 78.135.124.12, подсеть не будет работать)

  5. Привязка подсети к роутеру Network -> Routers -> Ваш роутер -> More -> Connect Subnet

    Выберите свою сеть и подсеть

    Нажмите OK

  6. Привязка локального IP к уже созданной vm(необходимо для привязки плавающего) Compute -> Instances

    Найдите vm к которой хотите привязать плавающий IP

    Нажмите More -> Related Resources – Attach Interface

    Выберите недавно созданную сеть

    Нажмите OK

    На vm должен появиться ip из подсети, которую вы указывали, при создании сети.

  7. Привязка плавающего IP к vm Compute -> Instances

    Найдите vm к которой хотите привязать плавающий IP

    Нажмите More -> Related Resources – Associate Floating IP

    Из списка выберите локальный IP который привязан к vm (10.0.1.43). А далее вы сможете выбрать плавающий ip который вы создали ранее.

    Важно!

    • Вы не сможете привязать плавающий IP к внешнему IP-адресу(находится в сети public).
    • После привязки плавающего IP необходимо перезагрузить vm, чтобы настройки применились