Tutorial: Menyebarkan grup multi-kontainer menggunakan file YAML
Azure Container Instances mendukung penyebaran beberapa kontainer ke satu host menggunakan grup kontainer. Grup kontainer berguna saat membuat sidecar aplikasi untuk pengelogan, pemantauan, atau konfigurasi lainnya di mana layanan memerlukan proses terpasang kedua.
Dalam tutorial ini, Anda mengikuti langkah-langkah untuk menjalankan konfigurasi sidecar dua kontainer dengan menyebarkan file YAML menggunakan Azure CLI. File YAML menyediakan format ringkas untuk menentukan pengaturan instans. Anda akan mempelajari cara untuk:
- Mengonfigurasi file YAML
- Menyebarkan grup kontainer
- Menampilkan log kontainer
Catatan
Grup multi-kontainer saat ini dibatasi untuk kontainer Linux.
Jika Anda tidak memiliki Langganan Azure, buat Akun gratis Azure sebelum memulai.
Prasyarat
Gunakan lingkungan Bash di Azure Cloud Shell. Untuk informasi selengkapnya, lihat Mulai Cepat untuk Bash di Azure Cloud Shell.
Jika Anda lebih suka menjalankan perintah referensi CLI secara lokal, instal Azure CLI. Jika Anda menjalankan Windows atau macOS, pertimbangkan untuk menjalankan Azure CLI dalam kontainer Docker. Untuk informasi lebih lanjut, lihat Cara menjalankan Azure CLI di kontainer Docker.
Jika Anda menggunakan instalasi lokal, masuk ke Azure CLI dengan menggunakan perintah login az. Untuk menyelesaikan proses autentikasi, ikuti langkah-langkah yang ditampilkan di terminal Anda. Untuk opsi masuk lainnya, lihat Masuk dengan Azure CLI.
Saat Anda diminta, instal ekstensi Azure CLI pada penggunaan pertama. Untuk informasi selengkapnya tentang ekstensi, lihat Menggunakan ekstensi dengan Azure CLI.
Jalankan versi az untuk menemukan versi dan pustaka dependen yang diinstal. Untuk meningkatkan ke versi terbaru, jalankan peningkatan az.
Mengonfigurasi file YAML
Untuk menyebarkan grup multi-kontainer dengan perintah az container create di Azure CLI, Anda harus menentukan konfigurasi grup kontainer dalam file YAML. Kemudian loloskan file YAML sebagai parameter ke perintah.
Mulailah dengan menyalin YAML berikut ke dalam file baru bernama deploy-aci.yaml. Di Azure Cloud Shell, Anda bisa menggunakan Visual Studio Code untuk membuat file di direktori kerja:
code deploy-aci.yaml
File YAML ini mendefinisikan grup kontainer bernama "myContainerGroup" dengan dua kontainer, alamat IP publik, dan dua port yang terbuka. Kontainer disebarkan dari gambar Microsoft publik. Kontainer pertama dalam grup menjalankan aplikasi web yang tersambung ke internet. Kontainer kedua, sidecar, secara berkala membuat permintaan HTTP ke aplikasi web yang berjalan di kontainer pertama melalui jaringan lokal grup kontainer.
apiVersion: 2019-12-01
location: eastus
name: myContainerGroup
properties:
containers:
- name: aci-tutorial-app
properties:
image: mcr.microsoft.com/azuredocs/aci-helloworld:latest
resources:
requests:
cpu: 1
memoryInGb: 1.5
ports:
- port: 80
- port: 8080
- name: aci-tutorial-sidecar
properties:
image: mcr.microsoft.com/azuredocs/aci-tutorial-sidecar
resources:
requests:
cpu: 1
memoryInGb: 1.5
osType: Linux
ipAddress:
type: Public
ports:
- protocol: tcp
port: 80
- protocol: tcp
port: 8080
tags: {exampleTag: tutorial}
type: Microsoft.ContainerInstance/containerGroups
Untuk menggunakan registri gambar kontainer pribadi, tambahkan properti imageRegistryCredentials
ke grup kontainer, dengan nilai yang dimodifikasi untuk lingkungan Anda:
imageRegistryCredentials:
- server: imageRegistryLoginServer
username: imageRegistryUsername
password: imageRegistryPassword
Menyebarkan grup kontainer
Buat grup sumber daya dengan perintah az group create:
az group create --name myResourceGroup --location eastus
Sebarkan grup kontainer dengan perintah az container create, dengan meneruskan file YAML sebagai argumen:
az container create --resource-group myResourceGroup --file deploy-aci.yaml
Dalam beberapa detik, Anda seharusnya menerima respons awal dari Azure.
Menampilkan status penyebaran
Untuk menampilkan status penyebaran, gunakan perintah az container show berikut:
az container show --resource-group myResourceGroup --name myContainerGroup --output table
Jika Anda ingin menampilkan aplikasi yang sedang berjalan, navigasikan ke alamat IP-nya di browser Anda. Misalnya, IP-nya adalah 52.168.26.124
dalam contoh output ini:
Name ResourceGroup Status Image IP:ports Network CPU/Memory OsType Location
---------------- --------------- -------- -------------------------------------------------------------------------------------------------- -------------------- --------- --------------- -------- ----------
myContainerGroup danlep0318r Running mcr.microsoft.com/azuredocs/aci-tutorial-sidecar,mcr.microsoft.com/azuredocs/aci-helloworld:latest 20.42.26.114:80,8080 Public 1.0 core/1.5 gb Linux eastus
Menampilkan log kontainer
Lihat output log kontainer menggunakan perintah az container logs. Argumen --container-name
menentukan kontainer untuk menarik log. Dalam contoh ini, kontainer aci-tutorial-app
ditentukan.
az container logs --resource-group myResourceGroup --name myContainerGroup --container-name aci-tutorial-app
Output:
listening on port 80
::1 - - [02/Jul/2020:23:17:48 +0000] "HEAD / HTTP/1.1" 200 1663 "-" "curl/7.54.0"
::1 - - [02/Jul/2020:23:17:51 +0000] "HEAD / HTTP/1.1" 200 1663 "-" "curl/7.54.0"
::1 - - [02/Jul/2020:23:17:54 +0000] "HEAD / HTTP/1.1" 200 1663 "-" "curl/7.54.0"
Untuk melihat log untuk kontainer sidecar, jalankan perintah serupa yang menentukan kontainer aci-tutorial-sidecar
.
az container logs --resource-group myResourceGroup --name myContainerGroup --container-name aci-tutorial-sidecar
Output:
Every 3s: curl -I http://localhost 2020-07-02 20:36:41
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 1663 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
HTTP/1.1 200 OK
X-Powered-By: Express
Accept-Ranges: bytes
Cache-Control: public, max-age=0
Last-Modified: Wed, 29 Nov 2017 06:40:40 GMT
ETag: W/"67f-16006818640"
Content-Type: text/html; charset=UTF-8
Content-Length: 1663
Date: Thu, 02 Jul 2020 20:36:41 GMT
Connection: keep-alive
Seperti yang Anda lihat, sidecar secara berkala membuat permintaan HTTP ke aplikasi web utama melalui jaringan lokal grup untuk memastikannya berjalan. Contoh sidecar ini dapat diperluas untuk memicu peringatan jika menerima kode respons HTTP selain 200 OK
.
Langkah berikutnya
Dalam tutorial ini, Anda menggunakan file YAML untuk menyebarkan grup multi-kontainer di Azure Container Instances. Anda mempelajari cara untuk:
- Mengonfigurasi file YAML untuk grup multi-kontainer
- Menyebarkan grup kontainer
- Menampilkan log kontainer
Anda juga dapat menentukan grup multi-kontainer menggunakan templat Resource Manager. Templat Resource Manager dapat dengan mudah diadaptasi untuk skenario saat Anda perlu menyebarkan lebih banyak sumber daya layanan Azure dengan grup kontainer.