В разделе показан минимальный сценарий, в котором вы создаёте образ Ubuntu 24.04, диск из этого образа и виртуальную машину (ВМ), подключаетесь к ней по консоли, а затем удаляете созданные ресурсы.

  • В командной строке
  • В веб-интерфейсе
  1. Создайте образ VirtualImage из внешнего источника:

    d8 k apply -f - <<EOF
    apiVersion: virtualization.deckhouse.io/v1alpha2
    kind: VirtualImage
    metadata:
      name: ubuntu
    spec:
      storage: ContainerRegistry
      dataSource:
        type: HTTP
        http:
          url: https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img
    EOF
    
  2. Создайте диск VirtualDisk из этого образа. Убедитесь, что в кластере задан StorageClass по умолчанию, и примените манифест:

    d8 k apply -f - <<EOF
    apiVersion: virtualization.deckhouse.io/v1alpha2
    kind: VirtualDisk
    metadata:
      name: linux-disk
    spec:
      dataSource:
        type: ObjectRef
        objectRef:
          kind: VirtualImage
          name: ubuntu
    EOF
    
  3. Создайте виртуальную машину VirtualMachine. В примере используется сценарий cloud-init, который создаёт пользователя cloud:

    d8 k apply -f - <<EOF
    apiVersion: virtualization.deckhouse.io/v1alpha2
    kind: VirtualMachine
    metadata:
      name: linux-vm
    spec:
      virtualMachineClassName: generic
      cpu:
        cores: 1
      memory:
        size: 1Gi
      provisioning:
        type: UserData
        userData: |
          #cloud-config
          ssh_pwauth: True
          users:
            - name: cloud
              passwd: <PASSWORD_HASH>
              shell: /bin/bash
              sudo: ALL=(ALL) NOPASSWD:ALL
              lock_passwd: False
      blockDeviceRefs:
        - kind: VirtualDisk
          name: linux-disk
    EOF
    

    Здесь <PASSWORD_HASH> — хеш пароля пользователя в кавычках. Получите его командой mkpasswd --method=SHA-512 --rounds=4096, она запросит пароль и выведет готовое значение. Формат сценария описан в документации cloud-init.

  4. Проверьте, что образ и диск созданы, а ВМ запущена. Ресурсы переходят в готовое состояние не мгновенно, поэтому дождитесь нужных значений в колонке PHASE:

    d8 k get vi,vd,vm
    

    Пример вывода:

    NAME                                                 PHASE   CDROM   PROGRESS   AGE
    virtualimage.virtualization.deckhouse.io/ubuntu      Ready   false   100%       7h50m
    
    NAME                                                 PHASE   CAPACITY   VIRTUALMACHINE   AGE
    virtualdisk.virtualization.deckhouse.io/linux-disk   Ready   4Gi        linux-vm         7h40m
    
    NAME                                                 PHASE     UPTIME   NODE           IPADDRESS    AGE
    virtualmachine.virtualization.deckhouse.io/linux-vm  Running   7h30m    virtlab-pt-2   10.66.10.2   7h46m
    
  5. Подключитесь к ВМ по консоли:

    d8 v console linux-vm
    

    Пример вывода:

    Successfully connected to linux-vm console. The escape sequence is ^]
    
    linux-vm login: cloud
    Password:
    ...
    cloud@linux-vm:~$
    

    Чтобы выйти из консоли, нажмите Ctrl+].

  6. Удалите созданные ресурсы:

    d8 k delete vm linux-vm
    d8 k delete vd linux-disk
    d8 k delete vi ubuntu
    
  1. Создайте образ из внешнего источника:

    1. Перейдите на вкладку «Проекты» и выберите нужный проект.
    2. Перейдите в раздел «Виртуализация» → «Образы».
    3. Нажмите кнопку «Создать».
    4. В блоке «Источник» выберите «По ссылке».
    5. В открывшейся форме в поле «Имя образа» введите ubuntu.
    6. В блоке «Хранилище» в поле «Тип хранилища» выберите ContainerRegistry.
    7. В поле «URL» вставьте https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img.
    8. Нажмите кнопку «Создать».
    9. Проверьте статус образа на его странице.
  2. Создайте диск из этого образа. Шаг можно пропустить и создать диск сразу при создании ВМ.

    1. Перейдите в раздел «Виртуализация» → «Диски».
    2. Нажмите кнопку «Создать».
    3. В открывшейся форме в поле «Имя диска» введите linux-disk.
    4. В поле «Источник» из выпадающего списка выберите образ ubuntu.
    5. При необходимости в поле «Размер» укажите больший размер, например 5Gi.
    6. В поле «Класс хранения» выберите StorageClass или оставьте вариант по умолчанию.
    7. Нажмите кнопку «Создать».
    8. Проверьте статус диска на его странице.

    Если у выбранного StorageClass задан режим WaitForFirstConsumer, диск ожидает создания ВМ, которая его использует. До этого момента диск отображается со статусом «СОЗДАНИЕ 0%», но его уже можно выбрать при создании ВМ.

  3. Создайте виртуальную машину:

    1. Перейдите в раздел «Виртуализация» → «Виртуальные машины».
    2. Нажмите кнопку «Создать».
    3. В открывшейся форме в поле «Имя» введите linux-vm.
    4. В разделах «Платформа» и «Ресурсы» оставьте настройки по умолчанию.
    5. В разделе «Диски» нажмите кнопку «Добавить».

      Если диск уже создан, в открывшемся окне «Диски / Образы» выберите «Существующий» и укажите в списке диск linux-disk.

      Если диск не создан, в том же окне выберите «Создать из» и задайте параметры:

      • в поле «Название» введите linux-disk;
      • в поле «Источник» из выпадающего списка выберите образ ubuntu, в списке указан тип ресурса;
      • при необходимости в поле «Размер» укажите больший размер, например 5Gi;
      • в поле «Хранилище» выберите StorageClass или оставьте вариант по умолчанию.

      Нажмите кнопку «Добавить».

    6. Прокрутите страницу вниз до переключателя «Cloud-init» и включите его.
    7. В появившееся поле вставьте сценарий, подставив вместо <PASSWORD_HASH> хеш пароля в кавычках, полученный командой mkpasswd --method=SHA-512 --rounds=4096:

      #cloud-config
      ssh_pwauth: True
      users:
        - name: cloud
          passwd: <PASSWORD_HASH>
          shell: /bin/bash
          sudo: ALL=(ALL) NOPASSWD:ALL
          lock_passwd: False
      
    8. Нажмите кнопку «Создать».
    9. Проверьте статус ВМ на её странице.
  4. Подключитесь к ВМ по консоли:

    1. Перейдите в раздел «Виртуализация» → «Виртуальные машины».
    2. Из списка выберите нужную ВМ и нажмите на её имя.
    3. В открывшейся форме перейдите на вкладку «TTY» и войдите в систему в окне консоли.
  5. Удалите созданные ресурсы:

    1. Перейдите в раздел «Виртуализация» и выберите нужный подраздел, например «Виртуальные машины», «Диски» или «Образы».
    2. В строке ресурса нажмите кнопку с многоточием и выберите «Удалить». В некоторых списках, например в списке снимков ВМ, удаление вынесено отдельной кнопкой.
    3. В окне подтверждения нажмите кнопку «Удалить» либо откажитесь от действия кнопкой «Не удалять».

    Важно: Удаление ресурса необратимо. Диск, подключённый к запущенной виртуальной машине, удалить нельзя, для него пункт «Удалить» неактивен.

Дополнительные ресурсы