Tutorial: Menskalakan aplikasi kontainer
Azure Container Apps mengelola penskalaan horizontal otomatis melalui set aturan penskalaan deklaratif. Ketika aplikasi kontainer memperluas skala, instans baru aplikasi kontainer dibuat sesuai permintaan. Instans ini dikenal sebagai replika.
Dalam tutorial ini, Anda menambahkan aturan skala HTTP ke aplikasi kontainer Anda dan mengamati bagaimana aplikasi Anda diskalakan.
Prasyarat
Persyaratan | Petunjuk |
---|---|
Akun Azure | Jika Anda tidak memiliki akun Azure, Anda dapat membuat akun secara gratis. Anda memerlukan izin Kontributor pada langganan Azure untuk melanjutkan. Lihat Menetapkan peran Azure menggunakan portal Azure untuk detailnya. |
Akun GitHub | Dapatkan satu secara gratis. |
Azure CLI | Instal Azure CLI. |
Siapkan
Untuk masuk ke Azure dari CLI, jalankan perintah berikut dan ikuti perintah untuk menyelesaikan proses autentikasi.
az login
Untuk memastikan Anda menjalankan CLI versi terbaru, jalankan perintah peningkatan.
az upgrade
Selanjutnya, instal atau perbarui ekstensi Azure Container Apps untuk CLI.
Jika Anda menerima kesalahan tentang parameter yang hilang saat menjalankan az containerapp
perintah di Azure CLI atau cmdlet dari Az.App
modul di PowerShell, pastikan Anda memiliki versi terbaru ekstensi Azure Container Apps yang diinstal.
az extension add --name containerapp --upgrade
Catatan
Mulai Mei 2024, ekstensi Azure CLI tidak lagi mengaktifkan fitur pratinjau secara default. Untuk mengakses fitur pratinjau Container Apps, instal ekstensi Container Apps dengan --allow-preview true
.
az extension add --name containerapp --upgrade --allow-preview true
Sekarang setelah ekstensi atau modul saat ini diinstal, daftarkan Microsoft.App
namespace layanan dan Microsoft.OperationalInsights
.
az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights
Membuat dan menyebarkan aplikasi kontainer
Buat dan sebarkan aplikasi kontainer Anda dengan containerapp up
perintah . Perintah ini membuat:
- Grup sumber daya
- Lingkungan Container Apps
- Ruang kerja Analitik Log
Jika salah satu sumber daya ini sudah ada, perintah menggunakan sumber daya yang ada daripada membuat sumber daya baru.
Terakhir, perintah membuat dan menyebarkan aplikasi kontainer menggunakan gambar kontainer publik.
az containerapp up \
--name my-container-app \
--resource-group my-container-apps \
--location centralus \
--environment 'my-container-apps' \
--image mcr.microsoft.com/k8se/quickstart:latest \
--target-port 8080 \
--ingress external \
--query properties.configuration.ingress.fqdn \
Catatan
Pastikan nilai untuk parameter --image
dalam huruf kecil.
Dengan mengatur --ingress
ke external
, Anda membuat aplikasi kontainer tersedia untuk permintaan publik.
up
Perintah mengembalikan nama domain yang sepenuhnya memenuhi syarat (FQDN) untuk aplikasi kontainer. Salin FQDN ini ke file teks. Anda akan menggunakannya di bagian Kirim permintaan . FQDN Anda terlihat seperti contoh berikut:
https://my-container-app.icydune-96848328.centralus.azurecontainerapps.io
Menambahkan aturan skala
Tambahkan aturan skala HTTP ke aplikasi kontainer Anda dengan menjalankan az containerapp update
perintah .
az containerapp update \
--name my-container-app \
--resource-group my-container-apps \
--scale-rule-name my-http-scale-rule \
--scale-rule-http-concurrency 1
Perintah ini menambahkan aturan skala HTTP ke aplikasi kontainer Anda dengan nama my-http-scale-rule
dan pengaturan konkurensi .1
Jika aplikasi Anda menerima lebih dari satu permintaan HTTP bersamaan, runtime membuat replika aplikasi Anda untuk menangani permintaan.
Perintah update
mengembalikan konfigurasi baru sebagai respons JSON untuk memverifikasi bahwa permintaan Anda berhasil.
Mulai output log
Anda dapat mengamati efek penskalaan aplikasi Anda dengan melihat log yang dihasilkan oleh runtime Aplikasi Kontainer.
az containerapp logs show
Gunakan perintah untuk mulai mendengarkan entri log.
az containerapp logs show \
--name my-container-app \
--resource-group my-container-apps \
--type=system \
--follow=true
show
Perintah mengembalikan entri dari log sistem untuk aplikasi kontainer Anda secara real time. Anda dapat mengharapkan respons seperti contoh berikut:
{
"TimeStamp":"2023-08-01T16:49:03.02752",
"Log":"Connecting to the container 'my-container-app'..."
}
{
"TimeStamp":"2023-08-01T16:49:03.04437",
"Log":"Successfully Connected to container:
'my-container-app' [Revision: 'my-container-app--9uj51l6',
Replica: 'my-container-app--9uj51l6-5f96557ffb-5khg9']"
}
{
"TimeStamp":"2023-08-01T16:47:31.9480811+00:00",
"Log":"Microsoft.Hosting.Lifetime[14]"
}
{
"TimeStamp":"2023-08-01T16:47:31.9481264+00:00",
"Log":"Now listening on: http://[::]:8080"
}
{
"TimeStamp":"2023-08-01T16:47:31.9490917+00:00",
"Log":"Microsoft.Hosting.Lifetime[0]"
}
{
"TimeStamp":"2023-08-01T16:47:31.9491036+00:00",
"Log":"Application started. Press Ctrl+C to shut down."
}
{
"TimeStamp":"2023-08-01T16:47:31.949723+00:00",
"Log":"Microsoft.Hosting.Lifetime[0]"
}
{
"TimeStamp":"2023-08-01T16:47:31.9497292+00:00",
"Log":"Hosting environment: Production"
}
{
"TimeStamp":"2023-08-01T16:47:31.9497325+00:00",
"Log":"Microsoft.Hosting.Lifetime[0]"
}
{
"TimeStamp":"2023-08-01T16:47:31.9497367+00:00",
"Log":"Content root path: /app/"
}
Untuk informasi selengkapnya, lihat log az containerapp.
Mengirim permintaan
Buka shell bash baru. Jalankan perintah berikut, ganti <YOUR_CONTAINER_APP_FQDN>
dengan nama domain yang sepenuhnya memenuhi syarat untuk aplikasi kontainer yang Anda simpan dari bagian Buat dan sebarkan aplikasi kontainer.
seq 1 50 | xargs -Iname -P10 curl "<YOUR_CONTAINER_APP_FQDN>"
Perintah ini mengirim 50 permintaan ke aplikasi kontainer Anda dalam batch bersamaan masing-masing dari 10 permintaan.
Perintah atau argumen | Deskripsi |
---|---|
seq 1 50 |
Menghasilkan urutan angka dari 1 hingga 50. |
| |
Operator pipa mengirimkan urutan ke xargs perintah . |
xargs |
curl Berjalan dengan URL yang ditentukan |
-Iname |
Bertindak sebagai tempat penampung untuk output .seq Argumen ini mencegah nilai pengembalian dikirim ke curl perintah . |
curl |
Memanggil URL yang diberikan. |
-P10 |
Menginstruksikan xargs untuk menjalankan hingga 10 proses pada satu waktu. |
Untuk informasi selengkapnya, lihat dokumentasi untuk:
Di shell pertama, tempat Anda menjalankan az containerapp logs show
perintah, output sekarang berisi satu atau beberapa entri log seperti berikut ini.
{
"TimeStamp":"2023-08-01 18:09:52 +0000 UTC",
"Type":"Normal",
"ContainerAppName":"my-container-app",
"RevisionName":"my-container-app--9uj51l6",
"ReplicaName":"my-container-app--9uj51l6-5f96557ffb-f795d",
"Msg":"Replica 'my-container-app--9uj51l6-5f96557ffb-f795d' has been scheduled to run on a node.",
"Reason":"AssigningReplica",
"EventSource":"ContainerAppController",
"Count":0
}
Menampilkan penskalakan dalam portal Azure (opsional)
- Masuk ke portal Azure.
- Di bilah Pencarian di bagian atas, masukkan my-container-app.
- Di hasil pencarian, di bawah Sumber Daya, pilih my-container-app.
- Di bilah navigasi di sebelah kiri, perluas Aplikasi dan pilih Skalakan dan replika.
- Di halaman Skala dan Replika , pilih Replika.
- Aplikasi kontainer Anda sekarang memiliki lebih dari satu replika yang berjalan.
Anda mungkin perlu memilih Refresh untuk melihat replika baru.
Di bilah navigasi di sebelah kiri, perluas Pemantauan dan pilih Metrik.
Di halaman Metrik , atur Metrik ke Permintaan.
Pilih Terapkan pemisahan.
Perluas menu drop-down Nilai dan periksa Replika.
Pilih ikon tanda centang biru untuk menyelesaikan pengeditan pemisahan.
Grafik menunjukkan permintaan yang diterima oleh aplikasi kontainer Anda, dibagi berdasarkan replika.
Secara default, skala grafik diatur ke 24 jam terakhir, dengan granularitas waktu 15 menit. Pilih skala dan ubah menjadi 30 menit terakhir, dengan granularitas waktu satu menit. Pilih tombol Terapkan.
Pilih pada grafik dan seret untuk menyoroti peningkatan permintaan terbaru yang diterima oleh aplikasi kontainer Anda.
Cuplikan layar berikut menunjukkan tampilan yang diperbesar tentang bagaimana permintaan yang diterima oleh aplikasi kontainer Anda dibagi di antara replika.
Membersihkan sumber daya
Jika Anda tidak akan terus menggunakan aplikasi ini, jalankan perintah berikut untuk menghapus grup sumber daya bersama dengan semua sumber daya yang dibuat dalam tutorial ini.
Perhatian
Perintah berikut menghapus grup sumber daya yang ditentukan dan semua sumber daya yang terkandung di dalamnya. Jika sumber daya di luar lingkup artikel ini ada di grup sumber daya yang ditentukan, sumber daya tersebut juga akan dihapus.
az group delete --name my-container-apps
Tip
Mengalami masalah? Beri tahu kami di GitHub dengan membuka masalah di repositori Azure Container Apps.