Jaringan di lingkungan Azure Container Apps

Azure Container Apps berjalan dalam konteks lingkungan, dengan jaringan virtual (VNet) sendiri.

Secara default, lingkungan Aplikasi Kontainer Anda dibuat dengan VNet yang secara otomatis dibuat untuk Anda. Untuk kontrol terperinci atas jaringan, Anda dapat menyediakan VNet yang ada saat membuat lingkungan. Setelah Anda membuat lingkungan dengan VNet yang dihasilkan atau yang sudah ada, jenis jaringan tidak dapat diubah.

VNet yang dihasilkan mengambil karakteristik berikut.

Yaitu:

  • tidak dapat diakses oleh Anda saat dibuat di penyewa Microsoft
  • dapat diakses publik melalui internet
  • hanya dapat menjangkau titik akhir yang dapat diakses internet

Selanjutnya, mereka hanya mendukung subset kemampuan jaringan terbatas seperti pembatasan IP masuk dan kontrol ingress tingkat aplikasi kontainer.

Gunakan VNet yang sudah ada jika Anda memerlukan lebih banyak fitur jaringan Azure seperti:

  • Integrasi dengan Application Gateway
  • Kelompok Keamanan Jaringan
  • Komunikasi dengan sumber daya di belakang titik akhir privat di jaringan virtual Anda

Fitur VNet yang tersedia bergantung pada pilihan lingkungan Anda.

Pemilihan lingkungan

Container Apps memiliki dua jenis lingkungan yang berbeda, yang memiliki banyak karakteristik jaringan yang sama dengan beberapa perbedaan utama.

Jenis lingkungan Deskripsi Jenis paket yang didukung
Profil beban kerja Mendukung rute yang ditentukan pengguna (UDR) dan keluar melalui NAT Gateway. Ukuran subnet minimum yang diperlukan adalah /27. Konsumsi, Khusus
Hanya konsumsi Tidak mendukung rute yang ditentukan pengguna (UDR), keluar melalui NAT Gateway, peering melalui gateway jarak jauh, atau keluar kustom lainnya. Ukuran subnet minimum yang diperlukan adalah /23. Consumption

Tingkat aksesibilitas

Anda dapat mengonfigurasi apakah aplikasi kontainer Anda mengizinkan ingress atau ingress publik hanya dari dalam VNet Anda di tingkat lingkungan.

Tingkat aksesibilitas Deskripsi
Eksternal Memungkinkan aplikasi kontainer Anda menerima permintaan publik. Lingkungan eksternal disebarkan dengan IP virtual pada alamat IP eksternal yang menghadap publik.
Internal Lingkungan internal tidak memiliki titik akhir publik dan disebarkan dengan IP virtual (VIP) yang dipetakan ke alamat IP internal. Titik akhir internal adalah load balancer internal Azure (ILB) dan alamat IP dikeluarkan dari daftar alamat IP privat VNet kustom.

Konfigurasi VNet kustom

Saat Anda membuat VNet kustom, ingatlah situasi berikut:

  • Jika Anda ingin aplikasi kontainer membatasi semua akses luar, buat lingkungan Container Apps internal.

  • Jika Anda menggunakan VNet Anda sendiri, Anda perlu menyediakan subnet yang didedikasikan secara eksklusif untuk lingkungan Aplikasi Kontainer yang Anda sebarkan. Subnet ini tidak tersedia untuk layanan lain.

  • Alamat jaringan ditetapkan dari rentang subnet yang Anda tentukan sebagai lingkungan dibuat.

    • Anda dapat menentukan rentang subnet yang digunakan oleh lingkungan Container Apps.

    • Anda dapat membatasi permintaan masuk ke lingkungan secara eksklusif ke VNet dengan menyebarkan lingkungan sebagai internal.

Catatan

Saat Anda menyediakan jaringan virtual Anda sendiri, sumber daya terkelola tambahan dibuat. Sumber daya ini dikenakan biaya dengan tarif terkait.

Saat Anda mulai merancang jaringan di sekitar aplikasi kontainer Anda, lihat Merencanakan jaringan virtual.

Diagram of how Azure Container Apps environments use an existing V NET, or you can provide your own.

Catatan

Memindahkan VNet di antara grup sumber daya atau langganan yang berbeda tidak diizinkan jika VNet digunakan oleh lingkungan Container Apps.

Perilaku proksi tepi HTTP

Azure Container Apps menggunakan proksi Envoy sebagai proksi HTTP tepi. Keamanan Lapisan Transportasi (TLS) dihentikan di tepi dan permintaan dirutekan berdasarkan aturan pemisahan lalu lintas dan merutekan lalu lintas ke aplikasi yang benar.

Skala aplikasi HTTP berdasarkan jumlah permintaan dan koneksi HTTP. Envoy merutekan lalu lintas internal di dalam kluster.

Koneksi hilir mendukung HTTP1.1 dan HTTP2 dan Envoy secara otomatis mendeteksi dan meningkatkan koneksi jika koneksi klien memerlukan peningkatan.

Koneksi upstram ditentukan dengan mengatur transport properti pada objek ingress .

Konfigurasi Ingress

Di bawah bagian ingress , Anda bisa mengonfigurasi pengaturan berikut:

  • Tingkat aksesibilitas: Anda dapat mengatur aplikasi kontainer sebagai dapat diakses secara eksternal atau internal di lingkungan. Variabel CONTAINER_APP_ENV_DNS_SUFFIX lingkungan digunakan untuk secara otomatis menyelesaikan akhiran nama domain yang sepenuhnya memenuhi syarat (FQDN) untuk lingkungan Anda. Saat berkomunikasi antara aplikasi kontainer dalam lingkungan yang sama, Anda juga dapat menggunakan nama aplikasi. Untuk informasi selengkapnya tentang cara mengakses aplikasi Anda, lihat Ingress di Azure Container Apps.

  • Aturan pemisahan lalu lintas: Anda dapat menentukan aturan pemisahan lalu lintas antara berbagai revisi aplikasi Anda. Untuk informasi selengkapnya, lihat Pemisahan lalu lintas.

Untuk informasi selengkapnya tentang skenario jaringan yang berbeda, lihat Ingress di Azure Container Apps.

Ketergantungan portal

Untuk setiap aplikasi di Azure Container Apps, ada dua URL.

Runtime Container Apps awalnya menghasilkan nama domain yang sepenuhnya memenuhi syarat (FQDN) yang digunakan untuk mengakses aplikasi Anda. Lihat Url Aplikasi di jendela Gambaran Umum aplikasi kontainer Anda di portal Azure untuk FQDN aplikasi kontainer Anda.

URL kedua juga dibuat untuk Anda. Lokasi ini memberikan akses ke layanan streaming log dan konsol. Jika perlu, Anda mungkin perlu menambahkan https://azurecontainerapps.dev/ ke daftar izin firewall atau proksi Anda.

Port dan alamat IP

Port berikut diekspos untuk koneksi masuk.

Protokol Port
HTTP/HTTPS 80, 443

Alamat IP dipecah menjadi jenis berikut:

Jenis Deskripsi
Alamat IP masuk publik Digunakan untuk lalu lintas aplikasi dalam penyebaran eksternal, dan lalu lintas manajemen dalam penyebaran internal dan eksternal.
IP publik keluar Digunakan sebagai IP "dari" untuk koneksi keluar yang meninggalkan jaringan virtual. Koneksi ini tidak dirutekan ke VPN. IP keluar dapat berubah dari waktu ke waktu. Menggunakan gateway NAT atau proksi lain untuk lalu lintas keluar dari lingkungan Container Apps hanya didukung di lingkungan profil beban kerja.
Alamat IP load balancer internal Alamat ini hanya ada di lingkungan internal.

Subnet

Integrasi jaringan virtual tergantung pada subnet khusus. Bagaimana alamat IP dialokasikan dalam subnet dan ukuran subnet apa yang didukung tergantung pada paket mana yang Anda gunakan di Azure Container Apps.

Pilih ukuran subnet Anda dengan hati-hati. Ukuran subnet tidak dapat dimodifikasi setelah Anda membuat lingkungan Container Apps.

Jenis lingkungan yang berbeda memiliki persyaratan subnet yang berbeda:

  • /27 adalah ukuran subnet minimum yang diperlukan untuk integrasi jaringan virtual.

  • Subnet Anda harus didelegasikan ke Microsoft.App/environments.

  • Saat menggunakan lingkungan eksternal dengan ingress eksternal, lalu lintas masuk merutekan melalui IP publik infrastruktur daripada melalui subnet Anda.

  • Container Apps secara otomatis mencadangkan 12 alamat IP untuk integrasi dengan subnet. Jumlah alamat IP yang diperlukan untuk integrasi infrastruktur tidak bervariasi berdasarkan tuntutan skala lingkungan. Alamat IP tambahan dialokasikan sesuai dengan aturan berikut tergantung pada jenis profil beban kerja yang Anda gunakan lebih banyak alamat IP dialokasikan tergantung pada profil beban kerja lingkungan Anda:

    • Profil beban kerja khusus: Saat aplikasi kontainer Anda diskalakan, setiap simpul memiliki satu alamat IP yang ditetapkan.

    • Profil beban kerja konsumsi: Setiap alamat IP dapat dibagikan di antara beberapa replika. Saat merencanakan berapa banyak alamat IP yang diperlukan untuk aplikasi Anda, rencanakan untuk 1 alamat IP per 10 replika.

  • Saat Anda membuat perubahan pada revisi dalam mode revisi tunggal, ruang alamat yang diperlukan digandakan untuk waktu yang singkat untuk mendukung penyebaran waktu henti nol. Ini memengaruhi replika atau simpul nyata yang didukung yang tersedia untuk ukuran subnet tertentu. Tabel berikut menunjukkan alamat maksimum yang tersedia per blok CIDR dan efek pada skala horizontal.

    Ukuran Subnet Alamat IP yangTersedia 1 Simpul maks (Profil beban kerja khusus)2 Replika maks (Profil beban kerja konsumsi)2
    23/ 500 250 2.500
    /24 244 122 1,220
    /25 116 58 580
    /26 52 26 260
    /27 20 10 100

    1 Alamat IP yang tersedia adalah ukuran subnet dikurangi 12 alamat IP yang diperlukan untuk infrastruktur Azure Container Apps.
    2 Ini memperhitungkan aplikasi dalam mode revisi tunggal.

Pembatasan rentang alamat subnet

Rentang alamat subnet tidak dapat tumpang tindih dengan rentang berikut yang dicadangkan oleh Azure Kubernetes Services:

  • 169.254.0.0/16
  • 172.30.0.0/16
  • 172.31.0.0/16
  • 192.0.2.0/24

Selain itu, lingkungan profil beban kerja mencadangkan alamat berikut:

  • 100.100.0.0/17
  • 100.100.128.0/19
  • 100.100.160.0/19
  • 100.100.192.0/19

Konfigurasi subnet dengan CLI

Saat lingkungan Container Apps dibuat, Anda menyediakan ID sumber daya untuk satu subnet.

Jika Anda menggunakan CLI, parameter untuk menentukan ID sumber daya subnet adalah infrastructure-subnet-resource-id. Subnet menghosting komponen infrastruktur dan kontainer aplikasi pengguna.

Jika Anda menggunakan Azure CLI dengan lingkungan Konsumsi saja dan rentang platformReservedCidr ditentukan, kedua subnet tidak boleh tumpang tindih dengan rentang IP yang ditentukan dalam platformReservedCidr.

Rute

Rute yang ditentukan pengguna (UDR)

Rute yang Ditentukan Pengguna (UDR) dan egress terkontrol melalui NAT Gateway didukung di lingkungan profil beban kerja. Khusus di lingkungan Konsumsi, fitur ini tidak didukung.

Catatan

Saat menggunakan UDR dengan Azure Firewall di Azure Container Apps, Anda perlu menambahkan tag FQDN dan layanan tertentu ke daftar yang diizinkan untuk firewall. Untuk mempelajari selengkapnya, lihat mengonfigurasi UDR dengan Azure Firewall.

  • Anda dapat menggunakan UDR dengan lingkungan profil beban kerja untuk membatasi lalu lintas keluar dari aplikasi kontainer Anda melalui Azure Firewall atau appliance jaringan lainnya.

  • Konfigurasi UDR dilakukan di luar cakupan lingkungan Container Apps.

Diagram of how UDR is implemented for Container Apps.

Azure membuat tabel rute default untuk jaringan virtual Anda saat dibuat. Dengan menerapkan tabel rute yang ditentukan pengguna, Anda dapat mengontrol bagaimana lalu lintas dirutekan dalam jaringan virtual Anda. Misalnya, Anda dapat membuat UDR yang merutekan semua lalu lintas ke firewall.

Mengonfigurasi UDR dengan Azure Firewall

Rute yang ditentukan pengguna hanya didukung di lingkungan profil beban kerja. Aturan aplikasi dan jaringan berikut harus ditambahkan ke daftar izin untuk firewall Anda bergantung pada sumber daya mana yang Anda gunakan.

Catatan

Untuk panduan tentang cara menyiapkan UDR dengan Aplikasi Kontainer untuk membatasi lalu lintas keluar dengan Azure Firewall, kunjungi cara untuk Container Apps dan Azure Firewall.

Aturan aplikasi

Aturan aplikasi mengizinkan atau menolak lalu lintas berdasarkan lapisan aplikasi. Aturan aplikasi firewall keluar berikut diperlukan berdasarkan skenario.

Skenario FQDN Deskripsi
Semua skenario mcr.microsoft.com, *.data.mcr.microsoft.com FQDN untuk Microsoft Container Registry (MCR) ini digunakan oleh Azure Container Apps dan aturan aplikasi ini atau aturan jaringan untuk MCR harus ditambahkan ke daftar yang diizinkan saat menggunakan Azure Container Apps dengan Azure Firewall.
Azure Container Registry (ACR) Your-ACR-address, *.blob.core.windows.net, login.microsoft.com FQDN ini diperlukan saat menggunakan Azure Container Apps dengan ACR dan Azure Firewall.
Azure Key Vault Alamat-Azure-Key-Vault Anda, login.microsoft.com FQDN ini diperlukan selain tag layanan yang diperlukan untuk aturan jaringan untuk Azure Key Vault.
Identitas Terkelola *.identity.azure.net, , login.microsoftonline.com*.login.microsoftonline.com,*.login.microsoft.com FQDN ini diperlukan saat menggunakan identitas terkelola dengan Azure Firewall di Azure Container Apps.
Docker Hub Registry hub.docker.com, , registry-1.docker.ioproduction.cloudflare.docker.com Jika Anda menggunakan registri Docker Hub dan ingin mengaksesnya melalui firewall, Anda perlu menambahkan FQDN ini ke firewall.
Aturan jaringan

Aturan jaringan mengizinkan atau menolak lalu lintas berdasarkan jaringan dan lapisan transportasi. Aturan jaringan firewall keluar berikut diperlukan berdasarkan skenario.

Skenario Tag Layanan Deskripsi
Semua skenario MicrosoftContainerRegistry, AzureFrontDoorFirstParty Tag Layanan untuk Microsoft Container Registry (MCR) ini digunakan oleh Azure Container Apps dan aturan jaringan ini atau aturan aplikasi untuk MCR harus ditambahkan ke daftar yang diizinkan saat menggunakan Azure Container Apps dengan Azure Firewall.
Azure Container Registry (ACR) AzureContainerRegistry, AzureActiveDirectory Saat menggunakan ACR dengan Azure Container Apps, Anda perlu mengonfigurasi aturan aplikasi ini yang digunakan oleh Azure Container Registry.
Azure Key Vault AzureKeyVault, AzureActiveDirectory Tag layanan ini diperlukan selain FQDN untuk aturan aplikasi untuk Azure Key Vault.
Identitas Terkelola AzureActiveDirectory Saat menggunakan Identitas Terkelola dengan Azure Container Apps, Anda harus mengonfigurasi aturan aplikasi ini yang digunakan oleh Identitas Terkelola.

Catatan

Untuk sumber daya Azure yang Anda gunakan dengan Azure Firewall yang tidak tercantum dalam artikel ini, silakan lihat dokumentasi tag layanan.

Integrasi gateway NAT

Anda dapat menggunakan NAT Gateway untuk menyederhanakan konektivitas keluar untuk lalu lintas internet keluar di jaringan virtual Anda di lingkungan profil beban kerja.

Saat Anda mengonfigurasi NAT Gateway di subnet Anda, NAT Gateway menyediakan alamat IP publik statis untuk lingkungan Anda. Semua lalu lintas keluar dari aplikasi kontainer Anda dirutekan melalui alamat IP publik statis NAT Gateway.

Keamanan lingkungan

Diagram of how to fully lock down your network for Container Apps.

Anda dapat sepenuhnya mengamankan lingkungan profil beban kerja lalu lintas jaringan masuk dan keluar Anda dengan mengambil tindakan berikut:

Enkripsi jaringan tingkat lingkungan (pratinjau)

Azure Container Apps mendukung enkripsi jaringan tingkat lingkungan menggunakan keamanan lapisan transportasi bersama (mTLS). Ketika enkripsi end-to-end diperlukan, mTLS mengenkripsi data yang dikirimkan antar aplikasi dalam lingkungan.

Aplikasi dalam lingkungan Aplikasi Kontainer diautentikasi secara otomatis. Namun, runtime Container Apps tidak mendukung otorisasi untuk kontrol akses antar aplikasi menggunakan mTLS bawaan.

Saat aplikasi Anda berkomunikasi dengan klien di luar lingkungan, autentikasi dua arah dengan mTLS didukung. Untuk mempelajari selengkapnya, lihat mengonfigurasi sertifikat klien.

Catatan

Mengaktifkan mTLS untuk aplikasi Anda dapat meningkatkan latensi respons dan mengurangi throughput maksimum dalam skenario beban tinggi.

Anda dapat mengaktifkan mTLS menggunakan perintah berikut.

Saat membuat:

az containerapp env create \
    --name <environment-name> \
    --resource-group <resource-group> \
    --location <location> \
    --enable-mtls

Untuk aplikasi kontainer yang ada:

az containerapp env update \
    --name <environment-name> \
    --resource-group <resource-group> \
    --enable-mtls

DNS

  • DNS Kustom: Jika VNet Anda menggunakan server DNS kustom alih-alih server DNS default yang disediakan Azure, konfigurasikan server DNS Anda untuk meneruskan kueri DNS yang tidak terselesaikan ke 168.63.129.16. Pemecah masalah rekursif Azure menggunakan alamat IP ini untuk menyelesaikan permintaan. Saat mengonfigurasi NSG atau firewall Anda, jangan blokir 168.63.129.16 alamat, jika tidak, lingkungan Container Apps Anda tidak akan berfungsi dengan benar.

  • ingress cakupan VNet: Jika Anda berencana menggunakan ingress cakupan VNet di lingkungan internal, konfigurasikan domain Anda dengan salah satu cara berikut:

    1. Domain non-kustom: Jika Anda tidak berencana menggunakan domain kustom, buat zona DNS privat yang menyelesaikan domain default lingkungan Container Apps ke alamat IP statis lingkungan Container Apps. Anda dapat menggunakan Azure Private DNS atau server DNS Anda sendiri. Jika Anda menggunakan Azure Private DNS, buat Zona DNS privat bernama sebagai domain default lingkungan Aplikasi Kontainer (<UNIQUE_IDENTIFIER>.<REGION_NAME>.azurecontainerapps.io), dengan A catatan. Catatan A berisi nama *<DNS Suffix> dan alamat IP statis lingkungan Container Apps.

    2. Domain kustom: Jika Anda berencana menggunakan domain kustom dan menggunakan lingkungan Container Apps eksternal, gunakan domain yang dapat diselesaikan secara publik untuk menambahkan domain dan sertifikat kustom ke aplikasi kontainer. Jika Anda menggunakan lingkungan Container Apps internal, tidak ada validasi untuk pengikatan DNS, karena kluster hanya dapat diakses dari dalam jaringan virtual. Selain itu, buat zona DNS privat yang menyelesaikan domain apex ke alamat IP statis lingkungan Container Apps. Anda dapat menggunakan Azure Private DNS atau server DNS Anda sendiri. Jika Anda menggunakan DNS Privat Azure, buat Zona DNS Privat bernama sebagai domain apex, dengan A catatan yang menunjuk ke alamat IP statis lingkungan Container Apps.

Alamat IP statis lingkungan Container Apps tersedia di portal Azure di akhiran DNS Kustom halaman aplikasi kontainer atau menggunakan perintah Azure CLIaz containerapp env list.

Sumber daya terkelola

Saat Anda menyebarkan lingkungan internal atau eksternal ke jaringan Anda sendiri, grup sumber daya baru dibuat di langganan Azure tempat lingkungan Anda dihosting. Grup sumber daya ini berisi komponen infrastruktur yang dikelola oleh platform Azure Container Apps. Jangan ubah layanan dalam grup ini atau grup sumber daya itu sendiri.

Lingkungan profil beban kerja

Nama grup sumber daya yang dibuat di langganan Azure tempat lingkungan Anda dihosting diawali dengan ME_ secara default, dan nama grup sumber daya dapat disesuaikan saat Anda membuat lingkungan aplikasi kontainer Anda.

Untuk lingkungan eksternal, grup sumber daya berisi alamat IP publik yang digunakan khusus untuk konektivitas masuk ke lingkungan eksternal Anda dan load balancer. Untuk lingkungan internal, grup sumber daya hanya berisi Load Balancer.

Selain penagihan Azure Container Apps standar, Anda akan ditagih untuk:

Lingkungan konsumsi saja

Nama grup sumber daya yang dibuat di langganan Azure tempat lingkungan Anda dihosting diawali dengan MC_ secara default, dan nama grup sumber daya tidak dapat disesuaikan saat Anda membuat aplikasi kontainer. Grup sumber daya berisi alamat IP publik yang digunakan khusus untuk konektivitas keluar dari lingkungan Anda dan load balancer.

Selain penagihan Azure Container Apps standar, Anda akan ditagih untuk:

  • Satu IP publik statis standar untuk keluar. Jika Anda memerlukan lebih banyak IP untuk keluar karena masalah Terjemahan Alamat Jaringan Sumber (SNAT), buka tiket dukungan untuk meminta penimpaan.

  • Dua load balancer standar jika menggunakan lingkungan internal, atau satu load balancer standar jika menggunakan lingkungan eksternal. Setiap penyeimbang beban memiliki kurang dari enam aturan. Biaya data yang diproses (dalam GB) mencakup masuk dan keluar untuk operasi manajemen.

Langkah berikutnya