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
Diperlukan akun Azure dengan langganan aktif. Jika Anda tidak memiliki langganan Azure, ikuti instruksi di sini Mulai gratis untuk membuat akun sebelum Memulai.
Grup Sumber Daya yang ada tempat Anda memiliki peran Kontributor, atau peran Kontributor atas langganan ini sehingga ekstensi AOSM CLI dapat membuat grup sumber daya.
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk