Невозможно создать пул с пользовательскими изображениями в MS Azure - PullRequest
0 голосов
/ 04 декабря 2018

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

Но когда я пытаюсь создать пул на основе этого изображения с портала Azure, я получаю сообщение об ошибке.

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

Сообщение: не удалось выделить требуемое количество выделенных узлов

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

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

Вот мои свойства пула json:

{
  "id": "my-pool-0",
  "displayName": "my-pool-0",
  "lastModified": "2018-12-04T15:54:06.467Z",
  "creationTime": "2018-12-04T15:44:18.197Z",
  "state": "active",
  "stateTransitionTime": "2018-12-04T15:44:18.197Z",
  "allocationState": "steady",
  "allocationStateTransitionTime": "2018-12-04T16:09:11.667Z",
  "vmSize": "standard_a2",
  "resizeTimeout": "PT15M",
  "currentDedicatedNodes": 0,
  "currentLowPriorityNodes": 0,
  "targetDedicatedNodes": 1,
  "targetLowPriorityNodes": 0,
  "enableAutoScale": false,
  "autoScaleFormula": null,
  "autoScaleEvaluationInterval": null,
  "enableInterNodeCommunication": false,
  "maxTasksPerNode": 1,
  "url": "https://mybatch.westeurope.batch.azure.com/pools/my-pool-0",
  "resizeErrors": [
    {
      "message": "Desired number of dedicated nodes could not be allocated",
      "code": "AllocationFailed",
      "values": [
        {
          "name": "Reason",
          "value": "The source managed disk or snapshot associated with the virtual machine Image Id was not found."
        }
      ]
    }
  ],
  "virtualMachineConfiguration": {
    "imageReference": {
      "publisher": null,
      "offer": null,
      "sku": null,
      "version": null,
      "virtualMachineImageId": "/subscriptions/79b59716-301e-401a-bb8b-22edg5c1he4j/resourceGroups/resource-group-1/providers/Microsoft.Compute/images/my-image"
    },
    "nodeAgentSKUId": "batch.node.ubuntu 18.04"
  },
  "applicationLicenses": null
}

Кажется, что текст ошибки не имеет ничего общего с тем, что на самом деле не так.Кто-нибудь сталкивался с этой ошибкой или теперь есть способ ее устранения?

ОБНОВЛЕНИЕ

Упаковщик json, использованный для создания образа ( взято отсюда )

{
  "builders": [{
    "type": "azure-arm",

    "client_id": "ffxcvbd0-c867-429a-bxcv-8ee0acvb6f99",
    "client_secret": "cvb54cvb-202d-4wq-bb8b-22cdfbce4f",
    "tenant_id": "ae33sdfd-a54c-40af-b20c-80810f0ff5da",
    "subscription_id": "096da34-4604-4bcb-85ae-2afsdf22192b",

    "managed_image_resource_group_name": "resource-group-1",
    "managed_image_name": "my-image",

    "os_type": "Linux",
    "image_publisher": "Canonical",
    "image_offer": "UbuntuServer",
    "image_sku": "18.04-LTS",

    "azure_tags": {
        "dept": "Engineering",
        "task": "Image deployment"
    },

    "location": "West Europe",
    "vm_size": "Standard_DS2_v2"
  }],
  "provisioners": [{
    "execute_command": "chmod +x {{ .Path }}; {{ .Vars }} sudo -E sh '{{ .Path }}'",
    "inline": [
      "export DEBIAN_FRONTEND=noninteractive",
      "apt-get update",
      "apt-get upgrade -y",
      "apt-get -y install nginx",

        ... 

      "/usr/sbin/waagent -force -deprovision+user && export HISTSIZE=0 && sync"
    ],
    "inline_shebang": "/bin/sh -x",
    "type": "shell"
  }]
}

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

С твоей проблемой я сделал тест как ты.Шаги здесь:

  1. Создание управляемого образа с помощью Packer.
  2. Создание пула пакетов с управляемым изображением в той же подписке и регионе.

И тогда я получаю ту же ошибку, что и вы.Затем я делаю еще один тест, который создает изображение из снимка, а затем создаю пул пакетов с изображением.Удача!Пул работает хорошо.

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

Ссылка на это описание , кажется, что пользовательское изображение не может быть создано через Packer.Я не уверен в этом.Но это действительно работает.Надеюсь, это поможет вам.

Обновление

Посмотрите на документ Пользовательские изображения с помощью Batch Shipyard .Описание:

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

В моем тесте я выполнил шаги, которые Packer выполнил для создания образа.Когда исходная виртуальная машина существует, пользовательский образ может обычно использоваться для пакетного пула.Но это не удастся, если вы удалите исходную ВМ.Таким образом, как описание, стандартная пакетная служба может просто использовать образ, созданный из файла VHD, который создает Packer, и файл VHD должен существовать во время жизни пула.

0 голосов
/ 04 декабря 2018

Если вы используете управляемое изображение, то ваш раздел imageReference должен выглядеть следующим образом:

"imageReference": { "id": "/subscriptions/79b59716-301e-401a-bb8b-22edg5c1he4j/resourceGroups/resource-group-1/providers/Microsoft.Compute/images/my-image" },

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...