Aracılığıyla paylaş


Azure Operatör Hizmet Yöneticisi'ne (AOSM) Kapsayıcılı Ağ İşlevi (CNF) ekleme

Bu nasıl yapılır kılavuzunda Ağ İşlevi Yayımcıları ve Hizmet Tasarım Aracı, Kapsayıcılı ağ işlevini AOSM'ye eklemek için Azure CLI AOSM uzantısının nasıl kullanılacağını öğrenir. CNF daha sonra Azure Operatör Nexus kümesi de dahil olmak üzere Azure Arc bağlantılı kubernetes kümesine dağıtılabilir.

Ekleme çok adımlı bir işlemdir. Önkoşulları karşıladıktan sonra Azure CLI AOSM uzantısını kullanarak şunları yapacaksınız:

  1. Helm grafiklerinize ve values.yaml değerlerinize göre bir Ağ İşlevi Tanım Grubu ve Sürümü (NFD) tanımlayan BICEP dosyaları oluşturun.
  2. NFD'yi yayımlayın ve CNF görüntülerini ve grafiklerini bir Yapıt Deposu'na (AOSM tarafından yönetilen Azure Container Registry (ACR)) yükleyin.
  3. Yayımlanan NFD'nizi Ağ Hizmeti Tasarım Grubu ve Sürümü (NSD) tanımlayan BICEP dosyalarına ekleyin.
  4. NSD'yi yayımlayın.

Önkoşullar

Not

Helm paketinizden birinin helm install hedef Arc bağlantılı Kubernetes ortamınızda başarılı olduğunu test etmiş olmanız kesinlikle önerilir.

İzinleri yapılandırma

  • Kaynak Grubu veya Katkıda Bulunan rolüne sahip olduğunuz mevcut bir Kaynak Grubu oluşturmak için aboneliğiniz üzerinde Katkıda Bulunan rolüne ihtiyacınız vardır.
  • Görüntülerinizi içeren kaynak ACR'de rol atamalarına ihtiyacınız vardır Reader/AcrPull .
  • AOSM yönetilen Yapıt Deposu'na sahip olacak abonelikte ve AcrPush rol atamalarına ihtiyacınız vardırContributor. Bu izinler, Azure CLI AOSM Uzantısı'nın doğrudan ACR'ye ACR kopyası gerçekleştirmesine olanak sağlar. Doğrudan kopyalama, görüntüleri bir ACR'den diğerine aktarmanın en hızlı yöntemidir.
    • Şirket ilkeniz abonelik kapsamında izinlere sahip olmanıza engel olabilir. --no-subscription-permissions ve az aosm nsd publish komutlarında az aosm nfd publish kullanılabilen parametresi, yerel makinenize ve yerel makinenizden iki aşamalı bir kopyayı düzenleme amacıyla AOSM hizmetinden türetilen sıkı kapsamlı izinleri kullanır. Bu iki adımlı kopya daha yavaştır, ancak abonelik kapsamlı izinler gerektirmez.

Helm paketleri

  • Eklemeyi planladığınız Helm paketleri, CLI'yı yürütmekte olduğunuz makinenin yerel depolaması üzerinde mevcut olmalıdır.
    • Azure CLI AOSM uzantısı, dosyayı varsayılan olarak helm paketinde kullanır values.yaml . CLI, bu davranışı alternatif values.yamlbir ile geçersiz kılmayı destekler. Bu alternatif dosya, CLI'yı yürüttüğüniz makinenin yerel depolaması üzerinde bulunmalıdır.

Not

Helm paketinin helm değerleri için bir şema içermesi ve helm paketi şablonlarının AOSM'ye eklerken kullanmayı planladığınız value.yaml kullanılarak çalıştırıldığında helm template beklediğiniz şekilde içermesi kesinlikle önerilir.

Kapsayıcı görüntüleri

  • Kapsayıcı görüntüleriniz mevcut bir ACR'de veya Docker API'sini destekleyen alternatif bir kapsayıcı kayıt defterinde bulunur. Kapsayıcı görüntüleri, kaynak kayıt defterinizde helm grafiklerinizde tanımlanan görüntü konumuyla eşleşen bir yapıda depolanmalıdır. Bu gereksinim CLI CNF görüntü bulma ve karşıya yükleme bölümünde açıklanmıştır.
  • docker login Herhangi az aosm bir komut çalıştırmadan önce kapsayıcı görüntülerinizi barındıran Azure dışı bir kapsayıcı kayıt defterinde oturum açmak için komutunu kullanın. ACR kullanıyorsanız bu adım gerekli değildir: Azure CLI AOSM uzantısı otomatik olarak oturum açar.

Helm ve Docker altyapısı

Azure CLI'yi indirme ve yükleme

Azure CLI'yi yerel olarak yüklemek için bkz . Azure CLI'yi yükleme.

Azure CLI'da oturum açmak için komutunu kullanın az login ve terminalinizde görüntülenen istemleri tamamlayarak kimlik doğrulamasını tamamlayın. Daha fazla oturum açma seçeneği için bkz . Azure CLI ile oturum açma.

Not

Windows veya macOS üzerinde çalışıyorsanız Azure CLI’yi bir Docker kapsayıcısında çalıştırmayı değerlendirin. Daha fazla bilgi için bkz . Docker kapsayıcısında Azure CLI'yi çalıştırma. Bash ortamını Azure cloud shell'de de kullanabilirsiniz. Daha fazla bilgi için bkz . Azure Cloud Shell'de Bash ortamını kullanmak için Cloud Shell'i başlatma.

AOSM CLI uzantısını yükleme

Az CLI AOSM Uzantısı, Azure CLI'nın 2.54.0 veya sonraki bir sürümünü gerektirir.

  1. Yüklü sürümü ve bağımlı kitaplıkları görmek için komutunu çalıştırın az version .
  2. Azure CLI'nın geçerli sürümüne yükseltmek için komutunu çalıştırın az upgrade .

Şu komutu kullanarak AOSM CLI uzantısını yükleyin:

az extension add --name aosm

Ağ İşlevi Tanım Grubunu ve Sürümünü Oluşturma

Bu adım, çalışma dizininde Ağ İşlevi Tanım Grubunuzu ve Sürümünüzü tanımlayan AOSM kaynaklarının BICEP şablonları ve Yapıt Deposu ile adlı cnf-cli-output bir klasör oluşturur. Bu kaynaklar sonunda Ağ Hizmeti Tasarımınıza dahil edilecek.

  1. CNF için Azure CLI AOSM uzantısı giriş dosyasını oluşturun.

    az aosm nfd generate-config --definition-type cnf --output-file <filename.jsonc>
    
  2. Önceki adımda oluşturduğunuz giriş dosyasını açın ve gerekli değerleri girmek için satır içi açıklamaları kullanın. Bu örnekte, kurgusal contoso CNF için Az CLI AOSM uzantısı giriş dosyası gösterilmektedir.

    Not

    Azure CLI AOSM uzantısı, varsayılan olarak girişte values.yaml varsayılan değerler olmadan yalnızca gerekli parametreleri kullanıma sunar. Ağ İşlevi Tanımı Sürümü (NFDV) ve Yapılandırma Grubu Şeması'ndaki (CGS) tüm helm değerlerini kullanıma açmak için olarak ayarlayabilirsiniz expose_all_parameterstrue . Daha fazla bilgi için bkz . AOSM CLI uzantısını kullanarak parametre kullanıma sunma.

    {
      // 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.
      // You should create this before running the publish command
      "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",
      // Name of NF definition.
      "nf_name": "contoso-cnf-nfd",
      // Version of the NF 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,
      // List of registries from which to pull the image(s).
      // For example ["sourceacr.azurecr.io/test", "myacr2.azurecr.io", "ghcr.io/path"].
      // For non Azure Container Registries, ensure you have run a docker login command before running build.
      "image_sources": ["contoso.azuercr.io/contoso", "docker.io"],
      // List of Helm packages to be included in the CNF.
      "helm_packages": [
          {
              // The name of the Helm package.
              "name": "contoso-helm-package",
              // The file path to the helm chart on the local disk, relative to the directory from which the command is run.
              // Accepts .tgz, .tar or .tar.gz, or an unpacked directory. Use Linux slash (/) file separator even if running on Windows.
              "path_to_chart": "/home/cnf-onboard/contoso-cnf-helm-chart-0-1-0.tgz",
              // The file path (absolute or relative to this configuration file) of YAML values file on the local disk which will be used instead of the values.yaml file present in the helm chart.
              // Accepts .yaml or .yml. Use Linux slash (/) file separator even if running on Windows.
              "default_values": "",
          }
      ]
    }
    
  3. Ağ İşlevi Tanım Grubu ve Sürüm BICEP şablonlarını oluşturmak için aşağıdaki komutu yürütebilirsiniz.

az aosm nfd build --definition-type cnf --config-file <filename.jsonc>

Klasör ve dosya yapısını gözden geçirebilir ve gerekirse değişiklikler yapabilirsiniz.

Ağ İşlevi Tanım Grubunu ve Sürümünü Yayımlama

Bu adım, Ağ İşlevi Tanımını tanımlayan AOSM kaynaklarını ve Ağ İşlevi'nin kapsayıcı görüntülerini depolamak için kullanılacak Yapıt Deposu'nı oluşturur. Ayrıca görüntüleri ve grafikleri doğrudan kaynak ACR'den kopyalayarak veya abonelik kapsamı Contributor ve AcrPush rolleriniz yoksa docker görüntülerini yerel olarak yeniden etiketleyerek ve AOSM hizmetinden oluşturulan sıkı kapsamlı kimlik bilgilerini kullanarak Yapıt Deposu'na yükler.

  1. Aşağıdaki komutu yürüterek Ağ İşlevi Tanım Grubunu ve Sürümünü yayımlayın. Abonelik kapsamınız Contributor ve AcrPush rolleriniz yoksa komutuna ekleyin --no-subscription-permissions .

Not

Windows kullanıyorsanız yayımlama adımı sırasında Docker Desktop'ın çalışıyor olması gerekir.

az aosm nfd publish --build-output-folder cnf-cli-output --definition-type cnf

Ağ Hizmeti Tasarım Grubu ve Sürümü Oluşturma

Bu bölüm, çalışma dizininde adlı nsd-cli-outputbir klasör oluşturur. Bu klasör, Ağ Hizmeti Tasarım Grubu ve Sürümü tanımlayan AOSM kaynaklarının BICEP şablonlarını içerir. Bu Ağ Hizmeti Tasarımı, önceki bölümlerde eklediğiniz Ağ İşlevini dağıtacak Site Ağ Hizmeti kaynağında kullanılan bir şablondur.

  1. Azure CLI AOSM Uzantısı NSD giriş dosyasını oluşturun.

    az aosm nsd generate-config --output-file <nsd-output-filename.jsonc>
    
  2. Önceki adımda oluşturduğunuz giriş dosyasını açın ve gerekli değerleri girmek için satır içi açıklamaları kullanın. Oluşturulan giriş dosyası türünde ek resource_element_typeArmTemplatebir içerir. CNF eklenirken bu gereksizdir; silebilirsiniz. Sonuç bu örnekteki gibi görünmelidir. Örnekte, Kurgusal Contoso CNF'yi Arc bağlantılı Bir Nexus Kubernetes kümesine dağıtmak için kullanılabilecek kurgusal bir Contoso NSD için Az CLI AOSM uzantısı giriş dosyası gösterilmektedir.

    {
        // 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",
        // 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"
                }
            }
        ]
    }
    

    Not

    Kaynak öğesi şablonu bölümü, NSD'ye hangi NFD'nin dahil olduğunu tanımlar. Özellikler, komuta geçirilen giriş dosyasında kullanılanlarla az aosm nfd build eşleşmelidir. Bunun nedeni, Azure CLI AOSM Uzantısı'nın NSD'yi oluştururken NFD'nin doğru şekilde eklendiğini doğrulamasıdır.

  3. Ağ Hizmeti Tasarım Grubu ve Sürüm BICEP şablonlarını oluşturmak için aşağıdaki komutu yürütebilirsiniz.

az aosm nsd build --config-file <nsd-output-filename.jsonc>

Klasör ve dosya yapısını gözden geçirebilir ve gerekirse değişiklikler yapabilirsiniz.

Ağ Hizmeti Tasarım Grubunu ve Sürümünü Yayımlama

Bu adım, Ağ Hizmeti Tasarım Grubu ve Sürümünü tanımlayan AOSM kaynaklarını oluşturur. Ayrıca NSD tarafından gereken yapıtları Yapıt Deposu'na (Ağ İşlevi ARM şablonu) yükler.

  1. Ağ Hizmeti Tasarım Grubunu ve Sürümünü yayımlamak için aşağıdaki komutu yürütür. Abonelik kapsamınız Contributor ve AcrPush rolleriniz yoksa komutuna ekleyin --no-subscription-permissions .
az aosm nsd publish --build-output-folder nsd-cli-output

Artık tam bir AOSM yayımcı kaynakları kümeniz var ve işleç akışını gerçekleştirmeye hazırsınız.

Sonraki adımlar