Bagikan melalui


Mulai cepat: Menerbitkan kontainer Nginx sebagai Containerized Network Function (CNF)

Mulai cepat ini menjelaskan cara menggunakan az aosm ekstensi Azure CLI untuk membuat dan menerbitkan Definisi Fungsi Jaringan dasar. Tujuannya adalah untuk menunjukkan alur kerja sumber daya Publisher Azure Operator Service Manager (AOSM). Konsep dasar yang disajikan di sini dimaksudkan untuk mempersiapkan pengguna untuk membangun layanan yang lebih menarik.

Prasyarat

Membuat file input

Buat file input untuk menerbitkan Definisi Fungsi Jaringan. Jalankan perintah berikut untuk menghasilkan file konfigurasi input untuk Definisi Fungsi Jaringan (NFD).

az aosm nfd generate-config --definition-type cnf

Eksekusi perintah sebelumnya menghasilkan file cnf-input.jsonc.

Catatan

Edit file cnf-input.jsonc. Ganti dengan nilai yang diperlihatkan dalam sampel berikut. Simpan file sebagai input-cnf-nfd.jsonc.

Jika Anda menggunakan grup sumber daya yang ada, ubah publisher_resource_group_name bidang untuk mencocokkannya.

Tip

Anda dapat menggunakan beberapa registri kontainer sebagai sumber untuk gambar Anda di AOSM CLI. Gambar yang akan disalin dari registri ini dipilih secara otomatis berdasarkan skema paket helm. Registri sumber dikonfigurasi dalam image_sources daftar file cnf-input.jsonc.

Saat menggunakan ACL, Anda harus memiliki peran Pembaca dan AcrPull di ACR. Saat menggunakan registri non-ACR, Anda harus menjalankan docker login untuk mengautentikasi dengan setiap registri privat sebelum menjalankan az aosm nfd build perintah. Dalam mulai cepat ini kita gunakan docker.io sebagai registri sumber gambar. Ini adalah registri publik dan tidak memerlukan autentikasi.

Berikut adalah contoh file input-cnf-nfd.jsonc:

{
  // 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": "nginx-publisher",
  // Resource group for the Publisher resource.
  // Will be created if it does not exist.
  "publisher_resource_group_name": "nginx-publisher-rg",
  // Name of the ACR Artifact Store resource.
  // Will be created if it does not exist.
  "acr_artifact_store_name": "nginx-nsd-acr",
  // Name of NF definition.
  "nf_name": "nginx",
  // Version of the NF definition in 1.1.1 format (three integers separated by dots).
  "version": "1.0.0",
  // 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": ["docker.io"],
  // List of Helm packages to be included in the CNF.
  "helm_packages": [
    {
      "name": "nginxdemo",
      "path_to_chart": "nginxdemo-0.3.0.tgz",
      "default_values": ""
    }
  ]
}
  • publisher_name - Nama sumber daya Publisher yang ingin Anda terbitkan definisi Anda. Dibuat jika belum ada.
  • publisher_resource_group_name - Grup sumber daya untuk sumber daya Publisher. Dibuat jika belum ada.
  • acr_artifact_store_name - Nama sumber daya Penyimpanan Artefak Azure Container Registry (ACR). Dibuat jika belum ada.
  • location - Lokasi Azure untuk digunakan saat membuat sumber daya.
  • nf_name - Nama definisi NF.
  • version - Versi definisi NF dalam format A.B.C.
  • image_sources - daftar registri tempat menarik gambar.
  • helm_packages:
    • name - Nama paket Helm.
    • path_to_chart - Jalur file Bagan Helm pada disk lokal. Menerima .tgz, .tar, atau .tar.gz. Gunakan pemisah file garis miring Linux (/) bahkan jika berjalan di Windows. Jalur harus berupa jalur absolut atau jalur relatif terhadap lokasi cnf-input.jsonc file.
    • default_values - Jalur file (absolut atau relatif terhadap cnf-input.jsonc) file nilai YAML pada disk lokal yang digunakan alih-alih file values.yaml yang ada di bagan helm.
    • depends_on - Nama paket Helm yang bergantung pada paket ini. Biarkan sebagai array kosong jika tidak ada dependensi.

Membangun Definisi Fungsi Jaringan (NFD)

Untuk membangun Definisi Fungsi Jaringan (NFD), mulai proses build.

az aosm nfd build -f input-cnf-nfd.jsonc --definition-type cnf

Ekstensi AZ CLI AOSM menghasilkan direktori yang disebut cnf-cli-output. Direktori ini berisi file BICEP yang menentukan sumber daya AOSM yang diperlukan untuk menerbitkan NFDV dan mengunggah gambar yang diperlukan untuk menyebarkannya ke penyimpanan yang dikelola AOSM. Periksa file yang dihasilkan untuk mendapatkan pemahaman yang lebih baik tentang struktur Definisi Fungsi Jaringan (NFD).

Direktori/Berkas Deskripsi
nfDefinition/deployParameters.json Menentukan skema untuk parameter penyebaran yang diperlukan untuk membuat Fungsi Jaringan (NF) dari Versi Definisi Fungsi Jaringan (NFDV) ini.
nfDefinition/nginxdemo-mappings.json Memetakan parameter penyebaran untuk Versi Definisi Fungsi Jaringan (NFDV) ke nilai yang diperlukan untuk bagan helm.
nfDefinition/deploy.bicep Templat Bicep untuk membuat Versi Definisi Fungsi Jaringan (NFDV) itu sendiri.
artefak/artifacts.json Daftar paket helm dan gambar kontainer yang diperlukan oleh NF.
artifactManifest/deploy.bicep Templat Bicep untuk membuat manifes artefak.
base/deploy.bicep Templat Bicep untuk membuat penerbit, grup definisi fungsi jaringan, dan sumber daya penyimpanan artefak

Menerbitkan Definisi Fungsi Jaringan dan mengunggah artefak

Jalankan perintah berikut untuk menerbitkan Definisi Fungsi Jaringan (NFD) dan unggah artefak terkait:

Catatan

Jika Anda menggunakan Windows, Anda harus menjalankan Docker Desktop selama langkah penerbitan.

Catatan

Nama penerbit harus unik dalam suatu wilayah. Sangat mungkin bahwa 'nginx-publisher' yang ditentukan dalam contoh file konfigurasi sudah ada.

Jika Anda mendapatkan kesalahan yang mengatakan "Sumber daya penerbit privat dengan nama 'nginx-publisher' sudah ada di wilayah yang disediakan", edit publisher_name bidang dalam file konfigurasi sehingga unik (misalnya tambahkan akhiran string acak), jalankan build kembali perintah (di atas), lalu jalankan kembali perintah ini publish .

Jika Anda melanjutkan untuk membuat desain layanan jaringan, Anda harus menggunakan nama pubilsher baru ini dalam resource_element_templates array.

az aosm nfd publish -b cnf-cli-output --definition-type cnf

Saat perintah selesai, periksa sumber daya dalam Grup Sumber Daya Penerbit Anda untuk meninjau komponen dan artefak yang dibuat.

Langkah berikutnya