إلحاق وظيفة شبكة معبأة في حاويات (CNF) إلى Azure Operator Service Manager (AOSM)

في هذا الدليل الإرشادي، يتعلم ناشري وظائف الشبكة المصمم الخدمة كيفية استخدام ملحق Azure CLI AOSM لإلحاق وظيفة شبكة حاوية ب AOSM. يمكن نشر CNF لاحقا على مجموعة Kubernetes المتصلة ب Azure Arc، بما في ذلك مجموعة Azure Operator Nexus.

الإلحاق هو عملية متعددة الخطوات. بمجرد تلبية المتطلبات الأساسية، ستستخدم ملحق Azure CLI AOSM من أجل:

  1. إنشاء ملفات BICEP التي تحدد مجموعة تعريف وظيفة الشبكة والإصدار (NFD) استنادا إلى مخططات Helm والقيم.yaml.
  2. نشر NFD وتحميل صور CNF والمخططات إلى مخزن البيانات الاصطناعية (سجل حاويات Azure المدار بواسطة AOSM (ACR)).
  3. أضف NFD المنشور إلى ملفات BICEP التي تحدد مجموعة تصميم خدمة الشبكة والإصدار (NSD).
  4. نشر NSD.

المتطلبات الأساسية

  • لقد قمت بتمكين AOSM على اشتراك Azure الخاص بك.
  • إذا كان الغرض من CNF الخاص بك هو التشغيل على Azure Operator Nexus، فلديك حق الوصول إلى مثيل Azure Operator Nexus وأكملت المتطلبات الأساسية لنشر حمل العمل.

إشعار

يوصى بشدة أن تكون قد اختبرت نجاح حزمة helm install Helm الخاصة بك على بيئة Kubernetes المتصلة ب Arc المستهدفة.

تكوين الأذونات

  • تحتاج إلى دور المساهم عبر اشتراكك لإنشاء مجموعة موارد، أو مجموعة موارد موجودة حيث يكون لديك دور المساهم.
  • تحتاج إلى Reader/AcrPull تعيينات الدور على ACR المصدر الذي يحتوي على صورك.
  • تحتاج إلى Contributor تعيينات الدور و AcrPush على الاشتراك الذي سيحتوي على مخزن البيانات الاصطناعية المدار من AOSM. تسمح هذه الأذونات لملحق Azure CLI AOSM بإجراء نسخة ACR إلى ACR مباشرة. النسخ المباشر هو أسرع طريقة لنقل الصور من ACR إلى آخر.
    • قد يمنعك نهج شركتك من الحصول على أذونات ذات نطاق اشتراك. --no-subscription-permissions تستخدم المعلمة، المتوفرة az aosm nfd publish على الأمرين وaz aosm nsd publish، أذونات ذات نطاق ضيق مشتقة من خدمة AOSM لتنسيق نسخة من خطوتين من وإلى جهازك المحلي. هذه النسخة المكونة من خطوتين أبطأ، ولكنها لا تتطلب أذونات محددة النطاق للاشتراك.

حزم Helm

  • يجب أن تكون حزم Helm التي تنوي إلحاقها موجودة على التخزين المحلي للجهاز الذي تقوم بتنفيذ CLI منه.
    • سيستخدم values.yaml ملحق Azure CLI AOSM الملف في حزمة helm بشكل افتراضي. يدعم CLI تجاوز هذا السلوك باستخدام بديل values.yaml. يجب أن يكون هذا الملف البديل موجودا على التخزين المحلي للجهاز الذي تقوم بتنفيذ CLI منه.

إشعار

يوصى بشدة بأن تحتوي حزمة Helm على مخطط لقيم helm وأن قوالب حزمة helm كما تتوقع عند helm template تشغيلها باستخدام values.yaml التي تنوي استخدامها عند الإلحاق ب AOSM.

صور الحاوية

  • صور الحاوية الخاصة بك موجودة إما في ACR موجود أو سجل حاوية بديل يدعم واجهة برمجة تطبيقات Docker. يجب تخزين صور الحاوية في سجل المصدر في بنية تطابق موقع الصورة المحدد في مخططات helm. يتم شرح هذا المطلب في اكتشاف صورة CLI CNF وتحميلها.
  • docker login استخدم الأمر لتسجيل الدخول إلى سجل حاويات غير Azure يستضيف صور الحاوية قبل تشغيل أي az aosm أوامر. هذه الخطوة غير مطلوبة إذا كنت تستخدم ACR: سيقوم ملحق Azure CLI AOSM بتسجيل الدخول تلقائيا.

محرك Helm وDocker

  • تثبيت Helm CLI على الكمبيوتر المضيف. يجب استخدام Helm v3.8.0 أو أحدث.
  • تثبيت Docker على الكمبيوتر المضيف.

تنزيل Azure CLI وتثبيته

لتثبيت Azure CLI محليا، راجع كيفية تثبيت Azure CLI.

لتسجيل الدخول إلى Azure CLI، استخدم az login الأمر وأكمل المطالبات المعروضة في المحطة الطرفية لإنهاء المصادقة. لمزيد من خيارات تسجيل الدخول، راجع تسجيل الدخول باستخدام Azure CLI.

إشعار

إذا كنت تعمل على نظام تشغيل Windows أو macOS، ففكر في تشغيل Azure CLI في حاوية Docker. لمزيد من المعلومات، راجع كيفية تشغيل Azure CLI في حاوية Docker. يمكنك أيضا استخدام بيئة Bash في Azure cloud shell. لمزيد من المعلومات، راجع بدء Cloud Shell لاستخدام بيئة Bash في Azure Cloud Shell.

تثبيت ملحق AOSM CLI

يتطلب ملحق Az CLI AOSM الإصدار 2.54.0 أو أحدث من Azure CLI.

  1. قم بتشغيل az version لمشاهدة الإصدار والمكتبات التابعة المثبتة.
  2. قم بتشغيل az upgrade للترقية إلى الإصدار الحالي من Azure CLI.

تثبيت ملحق AOSM CLI باستخدام هذا الأمر:

az extension add --name aosm

إنشاء مجموعة تعريف وظيفة الشبكة والإصدار

تنشئ هذه الخطوة مجلدا في دليل العمل يسمى cnf-cli-output مع قوالب BICEP لموارد AOSM التي تحدد مجموعة تعريف وظيفة الشبكة والإصدار ومخزن البيانات الاصطناعية. سيتم تضمين هذه الموارد في نهاية المطاف في تصميم خدمة الشبكة.

  1. إنشاء ملف إدخال ملحق Azure CLI AOSM ل CNF.

    az aosm nfd generate-config --definition-type cnf --output-file <filename.jsonc>
    
  2. افتح ملف الإدخال الذي أنشأته في الخطوة السابقة واستخدم التعليقات المضمنة لإدخال القيم المطلوبة. يوضح هذا المثال ملف إدخال ملحق Az CLI AOSM ل Contoso CNF خيالي.

    إشعار

    يعرض ملحق Azure CLI AOSM المعلمات المطلوبة فقط دون قيم افتراضية في الإدخال values.yaml بشكل افتراضي. يمكنك التعيين expose_all_parameters إلى true لعرض كافة قيم helm في إصدار تعريف وظيفة الشبكة (NFDV) ومخطط مجموعة التكوين (CGS). لمزيد من المعلومات، راجع كشف المعلمة باستخدام ملحق AOSM CLI.

    {
      // 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. تنفيذ الأمر التالي لإنشاء مجموعة تعريف وظيفة الشبكة وإصدار قوالب BICEP.

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

يمكنك مراجعة بنية المجلد والملفات وإجراء تعديلات إذا لزم الأمر.

نشر مجموعة تعريف وظيفة الشبكة والإصدار

تنشئ هذه الخطوة موارد AOSM التي تحدد تعريف وظيفة الشبكة ومتجر البيانات الاصطناعية التي سيتم استخدامها لتخزين صور حاوية وظيفة الشبكة. كما يقوم بتحميل الصور والمخططات إلى Artifact Store إما عن طريق نسخها مباشرة من ACR المصدر أو، إذا لم يكن لديك نطاق Contributor الاشتراك والأدوار AcrPush ، عن طريق إعادة وضع علامات على صور docker محليا وتحميلها إلى Artifact Store باستخدام بيانات الاعتماد ذات النطاق الضيق التي تم إنشاؤها من خدمة AOSM.

  1. تنفيذ الأمر التالي لنشر مجموعة تعريف وظيفة الشبكة والإصدار. إذا لم يكن لديك نطاق Contributor الاشتراك وأدواره AcrPush ، فضمن --no-subscription-permissions في الأمر .

إشعار

إذا كنت تستخدم Windows، فيجب أن يكون Docker Desktop قيد التشغيل أثناء خطوة النشر.

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

إنشاء مجموعة تصميم خدمة الشبكة والإصدار

ينشئ هذا القسم مجلدا في دليل العمل يسمى nsd-cli-output. يحتوي هذا المجلد على قوالب BICEP لموارد AOSM التي تحدد مجموعة تصميم خدمة الشبكة والإصدار. تصميم خدمة الشبكة هذا هو قالب يستخدم في مورد خدمة شبكة الموقع الذي سينشر وظيفة الشبكة التي قمت بإلحاقها في الأقسام السابقة.

  1. إنشاء ملف إدخال NSD لملحق Azure CLI AOSM.

    az aosm nsd generate-config --output-file <nsd-output-filename.jsonc>
    
  2. افتح ملف الإدخال الذي أنشأته في الخطوة السابقة واستخدم التعليقات المضمنة لإدخال القيم المطلوبة. يحتوي ملف الإدخال الذي تم إنشاؤه على نوع إضافي resource_element_type من .ArmTemplate هذا غير ضروري عند إعداد CNF؛ يمكنك حذفه. يجب أن تبدو النتيجة مثل هذا المثال. يوضح المثال ملف إدخال ملحق Az CLI AOSM ل Contoso NSD خيالي يمكن استخدامه لنشر Contoso CNF خيالي على مجموعة Nexus Kubernetes المتصلة ب Arc.

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

    إشعار

    يحدد قسم قالب عنصر المورد NFD المضمن في NSD. يجب أن تتطابق الخصائص مع تلك المستخدمة في ملف الإدخال الذي تم تمريره az aosm nfd build إلى الأمر . وذلك لأن ملحق Azure CLI AOSM يتحقق من صحة إلحاق NFD بشكل صحيح عند إنشاء NSD.

  3. تنفيذ الأمر التالي لإنشاء مجموعة تصميم خدمة الشبكة وإصدار قوالب BICEP.

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

يمكنك مراجعة بنية المجلد والملفات وإجراء تعديلات إذا لزم الأمر.

نشر مجموعة تصميم خدمة الشبكة والإصدار

تنشئ هذه الخطوة موارد AOSM التي تحدد مجموعة تصميم خدمة الشبكة والإصدار. كما أنه يقوم بتحميل البيانات الاصطناعية المطلوبة من قبل NSD إلى مخزن البيانات الاصطناعية (قالب Arm لوظيفة الشبكة).

  1. نفذ الأمر التالي لنشر مجموعة تصميم خدمة الشبكة والإصدار. إذا لم يكن لديك نطاق Contributor الاشتراك وأدواره AcrPush ، فضمن --no-subscription-permissions في الأمر .
az aosm nsd publish --build-output-folder nsd-cli-output

لديك الآن مجموعة كاملة من موارد ناشر AOSM وجاهزة لتنفيذ تدفق عامل التشغيل.

الخطوات التالية