AOSM(Azure Operator Service Manager)을 사용하면 NFDV(네트워크 함수 정의 버전) 및 ARM(Azure Resource Manager) 템플릿을 NSDV(네트워크 서비스 디자인 버전)로 결합할 수 있습니다. NSDV는 네트워크 함수와 실행하는 데 필요한 Azure 인프라를 모두 포함하는 네트워크 서비스에 대한 단일 템플릿이 됩니다. 그런 다음 운영자는 NF(네트워크 함수)와 해당 인프라를 하나의 작업으로 배포할 수 있습니다.
이 방법 가이드에서는 Azure CLI AOSM 확장을 사용하여 ARM(Azure Resource Manager) 리소스를 모두 포함하는 CNF(Containerized Network Function)를 포함하는 NSDV를 빌드하고 게시하는 방법을 알아봅니다.
온보딩은 다단계 프로세스입니다. 필수 구성 요소를 충족하면 Azure CLI AOSM 확장을 사용하여 다음을 수행합니다.
- 이전에 온보딩된 CNF에 대한 기존 NSDV 입력 파일을 수정합니다.
- 입력 파일을 AOSM 리소스 정의를 빌드하는 데 필요한 정보로 채웁니다.
- 입력 파일 및 ARM 템플릿을 기반으로 NSDV(네트워크 서비스 디자인 그룹 및 버전)를 정의하는 Bicep 파일을 생성합니다.
- NSDV를 게시하고 ARM 템플릿을 아티팩트 저장소(AOSM 관리형 ACR(Azure Container Registry))에 업로드합니다.
이 방법 가이드에서는 AKV(Azure Key Vault)를 Azure 리소스의 예로 사용하며, 동일한 단계에 따라 모든 Azure 리소스를 온보딩할 수 있습니다. 이 문서에서는 예제 NF로 CNF를 사용합니다. 이 프로세스는 NSDV 입력 파일의 사소한 차이점과는 별도로 VNF(가상화된 네트워크 함수)에 대해 동일합니다.
필수 조건
- Azure 구독에서 AOSM 사용으로 설정했습니다.
- CNF가 Azure Operator Nexus에서 실행되도록 의도된 경우 Azure Operator Nexus 인스턴스에 액세스할 수 있으며 워크로드 배포를 위한 필수 구성 요소를 완료했습니다.
-
CNF를 온보딩했으며 CLI를 실행 중인 컴퓨터의 로컬 스토리지에서 사용할 수 있는 파일로
az aosm nsd generate-config생성한 입력 파일이 있습니다.
권한 구성
- 리소스 그룹 또는 기여자 역할이 있는 기존 리소스 그룹을 만들려면 구독에 대한 기여자 역할이 필요합니다.
- 구독에 포함될 AOSM 관리 아티팩트 저장소에 대해
Contributor및AcrPush역할 할당이 필요합니다.- 회사 정책으로 인해 구독 범위 사용 권한이 없는 것일 수 있습니다. 명령에서
--no-subscription-permissions사용할 수 있는 매개 변수는az aosm nsd publishAOSM 서비스에서 파생된 엄격한 범위의 권한을 사용하여 로컬 컴퓨터와 2단계 복사를 오케스트레이션합니다. 이 2단계 복사는 느리지만 구독 범위 권한이 필요하지 않습니다.
- 회사 정책으로 인해 구독 범위 사용 권한이 없는 것일 수 있습니다. 명령에서
ARM 템플릿
- CLI를 실행하는 컴퓨터의 로컬 스토리지에 있는 배포하려는 Azure 리소스를 정의하는 ARM 템플릿이 있어야 합니다.
- NSDV를 배포할 운영자에게 노출하려는 모든 매개 변수는 ARM 템플릿에서 매개 변수로 정의되어야 합니다.
비고
Az CLI AOSM 확장은 Bicep 파일에 정의된 Azure 리소스 온보딩을 지원하지 않습니다. 그러나 명령을 사용하여 bicep build BICEP 파일을 ARM 템플릿으로 변환할 수 있습니다. 자세한 정보 및 지침 은 bicep CLI 설명서를 참조하세요.
Helm 및 Docker 엔진
Azure CLI 다운로드 및 설치
Azure CLI를 로컬로 설치하려면 Azure CLI 설치 방법을 참조하세요.
Azure CLI에 로그인하려면 az login 명령을 사용하고 터미널에 표시되는 프롬프트를 완료하여 인증을 완료합니다. 더 많은 로그인 옵션을 보려면 Azure CLI로 로그인을 참조하세요.
비고
Windows 또는 macOS에서 실행하는 경우 Docker 컨테이너에서 Azure CLI를 실행하는 것이 좋습니다. 자세한 내용은 Docker 컨테이너에서 Azure CLI를 실행하는 방법을 참조하세요. Azure Cloud Shell에서 Bash 환경을 사용할 수도 있습니다. 자세한 내용은 Azure Cloud Shell에서 Bash 환경을 사용하려면 Cloud Shell 시작을 참조하세요.
AOSM CLI 확장 설치
Az CLI AOSM 확장에는 Azure CLI 버전 2.54.0 이상이 필요합니다.
- 설치된 버전과 종속 라이브러리를 보려면
az version을 실행합니다. - 현재 버전의 Azure CLI로 업그레이드하려면
az upgrade를 실행합니다.
다음 명령을 사용하여 AOSM CLI 확장을 설치합니다.
az extension add --name aosm
네트워크 서비스 디자인 그룹 및 버전 빌드
CNF를 온보딩할 때 생성한 NSDV 입력 파일을 엽니다.
비고
CNF 온보딩에서
az aosm nsd generate-config --output-file <nsd-output-filename.jsonc>NSDV 입력 파일이 없는 경우 명령을 사용하여 새 입력 파일을 생성할 수 있습니다.입력 파일의 인라인 주석을 사용하여 필요한 값을 입력합니다. 이 예제에서는 가상의 Contoso CNF를 Arc에 연결된 Nexus Kubernetes 클러스터 및 Azure 위치의 AKV 인스턴스에 배포하는 데 사용할 수 있는 가상의 Contoso NSDV에 대한 Az CLI 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", // Name of the ACR Artifact Store resource. // Will be created if it does not exist. "acr_artifact_store_name": "contoso-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-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-cnf NFD and an Azure Key Vault", // 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", // 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-cnf-nfd", // 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": "cnf" } }, { // Type of Resource Element. Either NF or ArmTemplate "resource_element_type": "ArmTemplate", // Properties of the Resource Element. "properties": { // Name of the artifact. Used as internal reference only. "artifact_name": "contoso-keyvault", // 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": "./contoso-keyvault.json" } } ] }비고
리소스 요소 템플릿 섹션은 NSD에 포함되는 NFD를 정의합니다. 속성은
az aosm nfd build명령에 전달된 입력 파일에 사용되는 속성과 일치해야 합니다. 이는 Azure CLI AOSM 확장이 NSD를 빌드할 때 NFD가 올바르게 온보딩되었는지 유효성을 검사하기 때문입니다.다음 명령을 실행하여 네트워크 서비스 디자인 그룹 및 버전 Bicep 파일을 빌드합니다.
az aosm nsd build --config-file <nsd-output-filename.jsonc>
폴더 및 파일 구조를 검토하고 필요한 경우 수정할 수 있습니다.
네트워크 서비스 디자인 그룹 및 버전 게시
이 단계에서는 네트워크 서비스 디자인 그룹 및 버전을 정의하는 AOSM 리소스를 만듭니다. 또한 NSDV에 필요한 아티팩트 저장소(NF ARM 템플릿 및 AKV ARM 템플릿)에 업로드합니다.
- 다음 명령을 실행하여 네트워크 서비스 디자인 그룹 및 버전을 게시합니다. 구독 범위
Contributor및AcrPush역할이 없는 경우 명령에--no-subscription-permissions를 포함하십시오.
az aosm nsd publish --build-output-folder nsd-cli-output
이제 AOSM 게시자 리소스가 모두 준비되었으며, 운영자 작업 흐름을 수행할 준비가 되었습니다.