Краткое руководство. Проектирование структуры сетевой службы (NSD) для виртуальной машины Ubuntu в качестве виртуализированной сетевой функции (VNF)
В этом кратком руководстве описывается, как использовать az aosm
расширение Azure CLI для создания и публикации базовой структуры сетевой службы.
Необходимые компоненты
Учетная запись Azure с активной подпиской. Если у вас нет подписки Azure, следуйте инструкциям, приведенным здесь , чтобы создать учетную запись перед началом работы.
Необходимо следовать предварительным требованиям в кратком руководстве. Публикация виртуальной машины Ubuntu в качестве функции виртуальная сеть (VNF).
Создание входного файла
Создайте входной файл для публикации конструктора сетевой службы. Выполните следующую команду, чтобы создать входной файл конфигурации для конструктора сетевых служб (NSD).
az aosm nsd generate-config
Файл nsd-input.jsonc
создается при выполнении этой команды.
Примечание.
Измените файл nsd-input.jsonc, заменив его значениями, отображаемыми в примере. Удалите раздел, в котором для resource_element_type задано значение ArmTemplate. Это для добавления инфраструктуры (например, виртуальных сетей) в более сложные NSD, которые не требуются в этом кратком руководстве. Сохраните файл как input-vnf-nsd.jsonc.
Если вы изменили имя издателя при публикации NFDV, используйте имя издателя как для полей, так publisher_name
и publisher
для полей (последний находится в массиве resource_element_templates
).
Если вы использовали другое имя группы ресурсов, обновите publisher_resource_group_name
оба publisher_resource_group
поля (последний находится в массиве resource_element_templates
).
{
// Azure location to use when creating resources e.g uksouth
"location": "uksouth",
// Name of the Publisher resource you want your definition published to.
// Will be created if it does not exist.
"publisher_name": "ubuntu-publisher",
// Resource group for the Publisher resource.
// You should create this before running the publish command.
"publisher_resource_group_name": "ubuntu-publisher-rg",
// Name of the ACR Artifact Store resource.
// Will be created if it does not exist.
"acr_artifact_store_name": "ubuntu-acr",
// Network Service Design (NSD) name. This is the collection of Network Service Design Versions. Will be created if it does not exist.
"nsd_name": "ubuntu-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": "Plain ubuntu VM",
// 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": "ubuntu-publisher",
// The resource group that the publisher is hosted in.
"publisher_resource_group": "ubuntu-publisher-rg",
// 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": "ubuntu-vm",
// 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": "uksouth",
// Type of Network Function. Valid values are 'cnf' or 'vnf'.
"type": "vnf"
}
}
]
}
«Переменная» | Description |
---|---|
publisher_name | Имя ресурса издателя, для которого нужно опубликовать определение. Создано, если оно не существует. |
publisher_resource_group_name | Группа ресурсов для ресурса Publisher. Создано, если оно не существует. |
acr_artifact_store_name | Имя ресурса хранилища артефактов Реестр контейнеров Azure (ACR). Создано, если оно не существует. |
расположение | Расположение Azure для использования при создании ресурсов. |
сетевые функции | издатель: имя издателя, в котором опубликована версия определения сетевой функции (NFDV). |
publisher_resource_group: группа ресурсов, в которую размещается издатель. | |
name: имя существующей группы определения сетевых функций для развертывания с помощью этого NSD. | |
версия: версия существующего определения сетевой функции, на основе этого NSD. Этот NSD может развернуть любой NFDV с параметрами развертывания, совместимыми с этой версией. | |
publisher_offering_location: регион, в котором публикуется NFDV. | |
тип сетевой функции. Допустимые значения — cnf или vnf. | |
nsd_name | Имя группы конструктора сетевых служб. Коллекция версий конструктора сетевых служб. Создано, если оно не существует. |
nsd_version | Созданная версия NSD. Формат должен быть A.B.C. |
nsdv_description | Описание NSDV. |
Создание структуры сетевой службы (NSD)
Инициируйте процесс сборки для конструктора сетевых служб (NSD) с помощью следующей команды:
az aosm nsd build --config-file input-vnf-nsd.jsonc
После завершения процесса сборки просмотрите следующие созданные файлы, чтобы получить аналитические сведения об архитектуре и структуре NSD.
Эти файлы создаются в подкаталоге с именем nsd-cli-output:
Каталог или файл | Description |
---|---|
nsd-cli-output/artifactManifest | |
deploy.bicep | Шаблон Bicep для создания манифеста артефакта с артефактами, заполненными из входного файла |
nsd-cli-output/artifacts | |
artifacts.json | Список артефактов (изображений и шаблонов ARM), которые нужно отправить при публикации. Коррелирует с манифестом артефакта |
<nf-name.bicep> | Шаблон Bicep для каждой сетевой функции (NF), предоставленной в входном файле, для развертывания NF. Этот шаблон преобразуется в шаблон ARM и передается в хранилище артефактов при выполнении команды публикации. |
nsd-cli-output/base | |
deploy.bicep | Шаблон Bicep для создания издателя, учетных записей хранения и группы разработки сетевых служб, общих для всех NSD-дисков этой группы NSD |
nsd-cli-output/nsdDefinition | |
deploy.bicep | Шаблон Bicep для создания версии конструктора сетевой службы (NSDV). Этот шаблон содержит шаблоны дочерних элементов ресурса, которые взяты из опубликованных NFS или шаблонов ARM (для инфраструктуры), определенных в файле nsd-input.jsonc |
config-group-schema.json | Объединенная схема группы конфигурации для всех NFS в этом NSDV. Эта схема определяет входные данные, которые оператор должен предоставить в значениях группы конфигурации при развертывании NSDV в рамках сетевой службы сайта (SNS). |
<nf-name>-mappings.json | Файл, который сопоставляет значения группы конфигурации, предоставляемые оператором, с параметрами развертывания, определенными в NSDV. В NSDV есть один на NF. |
nsd-cli-output | |
all_deploy.parameters.json | Супермножество всех NF-параметров развертывания, предоставляющее один файл для настройки имен ресурсов. Выходные данные этого файла командой сборки взяты из файла nsd-input.jsonc. Можно изменить значения в этом файле перед запуском публикации, например опубликовать в другом расположении или использовать другое имя издателя. |
index.json | Файл, используемый внутренне при публикации ресурсов. Не редактируйте |
Публикация конструктора сетевой службы (NSD)
Чтобы опубликовать конструктор сетевых служб (NSD) и связанные с ним артефакты, выполните следующую команду:
az aosm nsd publish --build-output-folder nsd-cli-output
Перейдите в группу ресурсов издателя, чтобы наблюдать и просматривать созданные ресурсы и артефакты.
Эти ресурсы создаются:
Имя ресурса | Тип ресурса |
---|---|
ubuntu-nsd | Проектирование сетевой службы. |
1.0.0 (ubuntu-nsd/1.0.0) | Версия конструктора сетевой службы. |
ubuntu-nsd-nsd-manifest-1-0-0 | Манифест артефакта издателя. |
ConfigGroupSchema | Схема группы конфигурации. |