Подключение виртуализированной сетевой функции (VNF) для развертывания в Операторе Azure Nexus к Диспетчеру служб операторов Azure (AOSM)
В этом руководстве издатели сетевых функций и конструкторы служб узнайте, как использовать расширение AOSM Azure CLI для подключения виртуализированной сетевой функции к AOSM. Эта виртуальная виртуальная машина впоследствии может быть развернута в Операторе Azure Nexus. Подключение — это многоэтапный процесс. После выполнения предварительных требований вы будете использовать расширение AOSM Azure CLI для следующих целей:
- Создайте файлы BICEP, определяющие группу определения сетевой функции и версию (NFD).
- Опубликуйте NFD и отправьте образ VNF в хранилище артефактов (управляемый AOSM Реестр контейнеров Azure (ACR).
- Добавьте опубликованный NFD в файлы BICEP, определяющие группу разработки и версию сетевой службы (NSD).
- Опубликуйте NSD.
Необходимые компоненты
- У вас есть доступ к экземпляру Оператора Azure Nexus и выполнены предварительные требования для развертывания рабочей нагрузки.
- Вы включили AOSM в подписке Azure.
Примечание.
Настоятельно рекомендуется проверить, успешно ли развертывание виртуальной машины в экземпляре Оператора Azure Nexus перед подключением виртуальной машины к AOSM.
Образы виртуальных машин в Операторе Azure Nexus и шаблоны Azure Resource Manager (ARM)
Вы создали образ для виртуальной машины Оператора Azure Nexus. Этот образ должен быть доступен в ACR.
Вы создали шаблон ARM, который развертывает виртуальную машину Оператора Azure Nexus.
Шаблон ARM виртуальной машины (для AzureCore и Оператора Azure Nexus) может развертывать только ресурсы ARM из следующих поставщиков ресурсов.
- Microsoft.Compute;
- Microsoft.Network.
- Microsoft.NetworkCloud
- Microsoft.Storage;
- Microsoft.NetworkFabric
- Microsoft.Authorization
- Microsoft.ManagedIdentity
Шаблон VNF ARM должен развернуть одну виртуальную машину. Несколько виртуальных машин можно развернуть, включив несколько экземпляров NFDV в NSDV.
Настройка разрешений
- Для создания группы ресурсов или существующей группы ресурсов, в которой у вас есть роль участника, требуется роль участника для подписки.
- Вам требуются
Reader
/AcrPull
назначения ролей в исходном ACR, содержащего изображения. - Вам требуются
Contributor
назначения ролей вAcrPush
подписке, которая будет содержать управляемое хранилище артефактов AOSM. Эти разрешения позволяют расширению AOSM Azure CLI выполнять прямую копию ACR-to-ACR. Прямая копия — это самый быстрый метод передачи изображений из одного ACR в другой.- Политика вашей компании может предотвратить наличие разрешений на область подписки. Параметр
--no-subscription-permissions
, доступный вaz aosm nfd publish
командах иaz aosm nsd publish
командах, использует строго область разрешения, производные от службы AOSM, для оркестрации двухфакторной копии на локальный компьютер и с него. Это двухфакторная копия медленнее, но не требует область разрешений подписки.
- Политика вашей компании может предотвратить наличие разрешений на область подписки. Параметр
Скачивание и установка Azure CLI
Чтобы установить Azure CLI локально, см. инструкции по установке Azure CLI.
Чтобы войти в Azure CLI, выполните az login
команду и выполните запросы, отображаемые в терминале, чтобы завершить проверку подлинности. Дополнительные параметры входа см. в статье "Вход с помощью Azure CLI".
Примечание.
Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker. Вы также можете использовать среду Bash в облачной оболочке Azure. Дополнительные сведения см. в статье "Запуск Cloud Shell для использования среды Bash в Azure Cloud Shell".
Обработчик Helm и Docker
- Установите интерфейс командной строки Helm на хост-компьютере. Необходимо использовать Helm версии 3.8.0 или более поздней версии.
- Установите Docker на хост-компьютере.
Установка расширения интерфейса командной строки AOSM
Для расширения AOSM Az CLI требуется версия 2.54.0 или более поздняя версия Azure CLI.
- Запустите
az version
, чтобы просмотреть установленные версии и зависимые библиотеки. - Выполните
az upgrade
обновление до текущей версии Azure CLI.
Установите расширение ИНТЕРФЕЙСА командной строки AOSM с помощью следующей команды:
az extension add --name aosm
Создание группы определений сетевой функции и версии
В этом разделе создается папка в рабочем каталоге vnf-cli-output
с шаблонами BICEP ресурсов AOSM, определяющих группу определений и версию сетевой функции, а также хранилище артефактов. Эти ресурсы в конечном итоге будут включены в структуру сетевой службы
Создайте входной файл расширения AOSM Azure CLI для VNF.
az aosm nfd generate-config --definition-type vnf-nexus --output-file <filename.jsonc>
Откройте входной файл, созданный на предыдущем шаге, и введите необходимые значения строковый комментарий. В этом примере показан входной файл расширения Az CLI AOSM для вымышленного VNF Contoso, который выполняется в Операторе Azure Nexus.
Примечание.
Расширение AOSM Azure CLI предоставляет только необходимые параметры без значений по умолчанию в входном шаблоне ARM. Можно задать
expose_all_parameters
дляtrue
предоставления всех параметров шаблона ARM в версии определения сетевой функции (NFDV) и схеме группы конфигурации (CGS). Дополнительные сведения см. в разделе "Параметр" с помощью расширения ИНТЕРФЕЙСА командной строки AOSM.{ // Azure location to use when creating resources e.g uksouth "location": "eastus", // Name of the Publisher resource you want your definition published to. // Will be created if it does not exist. "publisher_name": "contoso", // Resource group for the Publisher resource. // Will be created if it does not exist. "publisher_resource_group_name": "contoso-vnf", // Name of the ACR Artifact Store resource. // Will be created if it does not exist. "acr_artifact_store_name": "contoso-vnf-artifact-store", // Name of the network function. "nf_name": "contoso-vnf", // Version of the network function definition in 1.1.1 format (three integers separated by dots). "version": "1.0.0", // If set to true, all NFD configuration parameters are made available to the designer, including optional parameters and those with defaults. // If not set or set to false, only required parameters without defaults will be exposed. "expose_all_parameters": false, // ARM template configuration. The ARM templates given here would deploy a VM if run. They will be used to generate the VNF. "arm_templates": [ { // Name of the artifact. Used as internal reference only. "artifact_name": "contoso-vnf", // Version of the artifact in 1.1.1 format (three integers separated by dots). "version": "1.0.0", // File path (absolute or relative to this configuration file) of the artifact you wish to upload from your local disk. // Use Linux slash (/) file separator even if running on Windows. "file_path": "/home/contoso-vnf/contoso-vnf-arm-template.json" } ], // List of images to be pulled from the acr registry. // You must provide the source acr registry, the image name and the version. // For example: 'sourceacr.azurecr.io/imagename:imageversion'. "images": ["contoso-vnf.azurecr.io/contosovnf:1.0.0"] }```
Выполните следующую команду, чтобы создать группу определений сетевых функций и версию.
az aosm nfd build --definition-type vnf-nexus --config-file <filename.jsonc>
Публикация группы определений сетевых функций и версий
На этом шаге создаются ресурсы AOSM, определяющие определение сетевой функции и хранилище артефактов, которые будут использоваться для хранения образов виртуальных машин сетевой функции. Он также отправляет изображения в Хранилище артефактов либо путем копирования их непосредственно из исходного ACR, либо, если у вас нет подписки область Contributor
и AcrPush
ролей, переместив образы Docker локально и отправив их в хранилище артефактов с помощью строго область учетных данных, созданных из службы AOSM.
- Выполните следующую команду, чтобы опубликовать группу определений и версию сетевой функции. Если у вас нет подписки область
Contributor
иAcrPush
ролей, включите--no-subscription-permissions
в команду.
az aosm nfd publish --build-output-folder vnf-cli-output --definition-type vnf
Можно просмотреть структуру папок и файлов и внести изменения при необходимости.
Создание группы разработки и версии сетевой службы
В этом разделе создается папка в рабочем nsd-cli-output
каталоге. Эта папка содержит шаблоны BICEP ресурсов AOSM, которые определяют группу и версию сетевой службы. Этот шаблон сетевой службы — это шаблон, используемый в ресурсе сетевой службы сайта, который будет развертывать сетевую функцию, подключенную в предыдущих разделах.
Создайте входной файл NSD расширения AOSM Azure CLI.
az aosm nsd generate-config --output-file <nsd-output-filename.jsonc>
Откройте входной файл, созданный на предыдущем шаге, и введите необходимые значения строковый комментарий. Созданный входной файл содержит дополнительный
resource_element_type
типArmTemplate
. Это не требуется при подключении виртуальной виртуальной машины; его можно удалить. В этом примере показан входной файл расширения Az CLI AOSM для вымышленного NSD Contoso, который можно использовать для развертывания вымышленного экземпляра Contoso Operator Nexus.{ // Azure location to use when creating resources e.g uksouth "location": "eastus", // Name of the Publisher resource you want your definition published to. // Will be created if it does not exist. "publisher_name": "contoso", // Resource group for the Publisher resource. // Will be created if it does not exist. "publisher_resource_group_name": "contoso-vnf", // Name of the ACR Artifact Store resource. // Will be created if it does not exist. "acr_artifact_store_name": "contoso-vnf-artifact-store", // Network Service Design (NSD) name. This is the collection of Network Service Design Versions. Will be created if it does not exist. "nsd_name": "contoso-vnf-nsd", // Version of the NSD to be created. This should be in the format A.B.C "nsd_version": "1.0.0", // Optional. Description of the Network Service Design Version (NSDV). "nsdv_description": "An NSD that deploys the onboarded contoso-vnf NFD", // List of Resource Element Templates (RETs). // There must be at least one NF RET. // ArmTemplate RETs are optional. Delete if not required. "resource_element_templates": [ { // Type of Resource Element. Either NF or ArmTemplate "resource_element_type": "NF", "properties": { // The name of the existing publisher for the NSD. "publisher": "contoso", // The resource group that the publisher is hosted in. "publisher_resource_group": "contoso-vnf", // The name of the existing Network Function Definition Group to deploy using this NSD. // This will be the same as the NF name if you published your NFDV using the CLI. "name": "contoso-vnf", // The version of the existing Network Function Definition to base this NSD on. // This NSD will be able to deploy any NFDV with deployment parameters compatible with this version. "version": "1.0.0", // The region that the NFDV is published to. "publisher_offering_location": "eastus", // Type of Network Function. Valid values are 'cnf' or 'vnf'. "type": "vnf" } } ] }
Примечание.
Раздел шаблона элемента ресурса определяет, какой NFD включен в NSD. Свойства должны соответствовать тем, которые используются во входном файле, переданном команде
az aosm nfd build
. Это связано с тем, что расширение AOSM Azure CLI проверяет правильность подключения NFD при создании NSD.Выполните следующую команду, чтобы создать группу проектирования сетевых служб и шаблоны BICEP версии.
az aosm nsd build --config-file <nsd-output-filename.jsonc>
Можно просмотреть структуру папок и файлов и внести изменения при необходимости.
Публикация конструктора сетевой службы (NSD)
На этом шаге создаются ресурсы AOSM, определяющие группу разработки и версию сетевой службы. Он также отправляет артефакты, необходимые NSD, в хранилище артефактов (шаблон ARM сетевой функции).
- Выполните следующую команду, чтобы опубликовать группу разработки и версию сетевой службы. Если у вас нет подписки область
Contributor
иAcrPush
ролей, включите--no-subscription-permissions
в команду.
az aosm nsd publish --build-output-folder nsd-cli-output
Теперь у вас есть полный набор ресурсов издателя AOSM и готовы к выполнению потока оператора.