Tutorial: Mengonfigurasi kontainer sidecar untuk kontainer kustom di Azure App Service
Dalam tutorial ini, Anda menambahkan pengumpul OpenTelemetry sebagai kontainer sidecar ke aplikasi kontainer kustom Linux di Azure App Service. Untuk aplikasi Linux bring-your-own-code, lihat Tutorial: Mengonfigurasi kontainer sidecar untuk aplikasi Linux di Azure App Service.
Di Azure App Service, Anda dapat menambahkan hingga sembilan kontainer sidecar untuk setiap aplikasi kontainer kustom yang mendukung sidecar. Kontainer sidecar memungkinkan Anda menyebarkan layanan dan fitur tambahan ke aplikasi kontainer Anda tanpa membuatnya digabungkan erat ke kontainer aplikasi utama Anda. Misalnya, Anda dapat menambahkan layanan pemantauan, pengelogan, konfigurasi, dan jaringan sebagai kontainer sespan. Sidecar kolektor OpenTelemetry adalah salah satu contoh pemantauan seperti itu.
Untuk informasi selengkapnya tentang kontainer samping di App Service, lihat:
- Memperkenalkan Sidecar untuk Azure App Service untuk Linux: Sekarang Tersedia Secara Umum
- Mengumumkan ketersediaan umum ekstensibilitas sidecar di Azure App Service
Jika Anda tidak memiliki Langganan Azure, buat Akun gratis Azure sebelum memulai.
1. Siapkan sumber daya yang diperlukan
Pertama, Anda membuat sumber daya yang digunakan tutorial. Mereka digunakan untuk skenario khusus ini dan tidak diperlukan untuk kontainer sespan secara umum.
Di Azure Cloud Shell, jalankan perintah berikut:
git clone https://github.com/Azure-Samples/app-service-sidecar-tutorial-prereqs cd app-service-sidecar-tutorial-prereqs azd env new my-sidecar-env azd provision
Saat diminta, berikan langganan dan wilayah yang Anda inginkan. Contohnya:
- Langganan: Langganan Anda.
- Wilayah: (Eropa) Eropa Barat.
Saat penyebaran selesai, Anda akan melihat output berikut:
APPLICATIONINSIGHTS_CONNECTION_STRING = InstrumentationKey=...;IngestionEndpoint=...;LiveEndpoint=... Open resource group in the portal: https://portal.azure.com/#@/resource/subscriptions/.../resourceGroups/...
Buka tautan grup sumber daya di tab browser. Anda harus menggunakan string koneksi nanti.
Catatan
azd provision
menggunakan templat yang disertakan untuk membuat sumber daya Azure berikut:- Grup sumber daya yang disebut my-sidecar-env_group.
- Registri kontainer dengan dua gambar yang disebarkan:
- Gambar Nginx dengan modul OpenTelemetry.
- Gambar pengumpul OpenTelemetry, dikonfigurasi untuk diekspor ke Azure Monitor.
- Ruang kerja analitik log
- Komponen Application Insights
2. Buat aplikasi berkemampuan sespan
Di halaman manajemen grup sumber daya, pilih Buat.
Cari aplikasi web, lalu pilih panah bawah pada Buat dan pilih Aplikasi Web.
Konfigurasikan panel Dasar sebagai berikut:
- Nama: Nama yang unik
- Terbitkan: Kontainer
- Sistem Operasi: Linux
- Wilayah: Wilayah yang sama dengan wilayah yang Anda pilih
azd provision
- Paket Linux: Paket App Service baru
Pilih Kontainer. Konfigurasikan panel Kontainer sebagai berikut:
- Dukungan sidecar: Diaktifkan
- Sumber Gambar: Azure Container Registry
- Registri: Registri yang dibuat oleh
azd provision
- Gambar: nginx
- Tag: terbaru
- Port: 80
Catatan
Pengaturan ini dikonfigurasi secara berbeda di aplikasi yang mendukung sidecar. Untuk informasi selengkapnya, lihat Perbedaan untuk aplikasi yang mendukung sidecar.
Pilih Tinjau + buat, lalu pilih Buat.
Setelah penyebaran selesai, pilih Buka sumber daya.
Di tab browser baru, navigasikan ke
https://<app-name>.azurewebsites.net
dan lihat halaman Nginx default.
3. Tambahkan kontainer sespan
Di bagian ini, Anda menambahkan kontainer sidecar ke aplikasi kontainer kustom Anda.
Di halaman manajemen aplikasi, dari menu sebelah kiri, pilih Pusat Penyebaran.
Pusat penyebaran menunjukkan kepada Anda semua kontainer di aplikasi. Saat ini, ia hanya memiliki kontainer utama.
Pilih Tambahkan dan konfigurasikan kontainer baru sebagai berikut:
- Nama: otel-collector
- Sumber gambar: Azure Container Registry
- Registri: Registri yang dibuat oleh
azd provision
- Gambar: otel-collector
- Tag: terbaru
Pilih Terapkan.
Anda sekarang akan melihat dua kontainer di pusat penyebaran. Kontainer utama ditandai Main, dan kontainer sidecar ditandai Sidecar. Setiap aplikasi harus memiliki satu kontainer utama tetapi dapat memiliki beberapa kontainer sidecar.
4. Mengonfigurasi variabel lingkungan
Untuk skenario sampel, sidecar pengumpul otel dikonfigurasi untuk mengekspor data OpenTelemetry ke Azure Monitor, tetapi memerlukan string koneksi sebagai variabel lingkungan (lihat file konfigurasi OpenTelemetry untuk gambar otel-collector).
Anda mengonfigurasi variabel lingkungan untuk kontainer seperti aplikasi App Service apa pun, dengan mengonfigurasi pengaturan aplikasi. Pengaturan aplikasi dapat diakses oleh semua kontainer di aplikasi.
Di halaman manajemen aplikasi, dari menu sebelah kiri, pilih Variabel lingkungan.
Tambahkan pengaturan aplikasi dengan memilih Tambahkan dan konfigurasikan sebagai berikut:
- Nama: APPLICATIONINSIGHTS_CONNECTION_STRING
- Nilai: String koneksi dalam output
azd provision
. Jika Anda kehilangan sesi Cloud Shell, Anda juga dapat menemukannya di halaman Gambaran Umum sumber daya Application Insight, di bawah String Koneksi.
Pilih Terapkan, lalu Terapkan, lalu Konfirmasi.
Catatan
Pengaturan aplikasi tertentu tidak berlaku untuk aplikasi berkemampuan sidecar. Untuk informasi selengkapnya, lihat Perbedaan untuk aplikasi yang mendukung sidecar
5. Verifikasi di Application Insights
Sidecar pengumpul otel harus mengekspor data ke Application Insights sekarang.
Kembali ke tab browser untuk
https://<app-name>.azurewebsites.net
, refresh halaman beberapa kali untuk menghasilkan beberapa permintaan web.Kembali ke halaman gambaran umum grup sumber daya, lalu pilih sumber daya Application Insights. Sekarang Anda akan melihat beberapa data di bagan default.
Catatan
Dalam skenario pemantauan yang sangat umum ini, Application Insights hanyalah salah satu target OpenTelemetry yang dapat Anda gunakan, seperti Jaeger, Prometheus, dan Zipkin.
Membersihkan sumber daya
Saat Anda tidak lagi memerlukan lingkungan, Anda dapat menghapus grup sumber daya, Layanan aplikasi, dan semua sumber daya terkait. Cukup jalankan perintah ini di Cloud Shell, di repositori kloning:
azd down
Bagaimana kontainer sespan menangani komunikasi internal?
Kontainer sespan berbagi host jaringan yang sama dengan kontainer utama, sehingga kontainer utama (dan kontainer sespan lainnya) dapat mencapai port apa pun di sespan dengan localhost:<port>
. Ini persis bagaimana kontainer Nginx mengirim data ke sidecar (lihat konfigurasi modul OpenTelemetry untuk sampel gambar Nginx).
Dalam dialog Edit kontainer, kotak Port saat ini tidak digunakan oleh App Service. Anda dapat menggunakannya sebagai bagian dari metadata sespan, seperti untuk menunjukkan port mana yang didengarkan oleh sespan.
Perbedaan untuk aplikasi yang diaktifkan sidecar
Anda mengonfigurasi aplikasi dengan dukungan sidecar secara berbeda dari aplikasi yang tidak diaktifkan sespan. Secara khusus, Anda tidak mengonfigurasi kontainer utama dan sespan dengan pengaturan aplikasi, tetapi langsung di properti sumber daya. Pengaturan aplikasi ini tidak berlaku untuk aplikasi berkemampuan sidecar:
- Pengaturan autentikasi registri:
DOCKER_REGISTRY_SERVER_URL
,DOCKER_REGISTRY_SERVER_USERNAME
danDOCKER_REGISTRY_SERVER_PASSWORD
. - Port kontainer:
WEBSITES_PORT