Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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 templat Azure Resource Manager menggunakan Azure CLI. Anda akan mempelajari cara untuk:
- Mengonfigurasi templat grup multi-kontainer
- Menyebarkan grup kontainer
- Lihat log kontainer
Templat Resource Manager dapat dengan mudah diadaptasi untuk skenario saat Anda perlu menyebarkan lebih banyak sumber daya layanan Azure (misalnya, berbagi Azure Files atau jaringan virtual) dengan grup kontainer.
Nota
Grup multi-kontainer saat ini dibatasi hanya untuk kontainer Linux.
Jika Anda tidak memiliki akun Azure, buat akun gratis sebelum memulai.
Prasyarat
Gunakan lingkungan Bash di Azure Cloud Shell. Untuk informasi selengkapnya, lihat Mulai menggunakan 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 penginstalan lokal, masuk ke Azure CLI dengan menggunakan perintah az login. Untuk menyelesaikan proses autentikasi, ikuti langkah-langkah yang ditampilkan di terminal Anda. Untuk opsi masuk lainnya, lihat Mengautentikasi ke Azure menggunakan Azure CLI.
Saat diminta, instal ekstensi Azure CLI saat pertama kali digunakan. Untuk informasi selengkapnya tentang ekstensi, lihat Menggunakan dan mengelola ekstensi dengan Azure CLI.
Jalankan az version untuk mengetahui versi dan pustaka dependen yang terinstal. Untuk meng-upgrade ke versi terbaru, jalankan az upgrade.
Mengonfigurasi templat
Mulailah dengan menyalin JSON berikut ke dalam file baru bernama azuredeploy.json. Di Azure Cloud Shell, Anda bisa menggunakan Visual Studio Code untuk membuat file di direktori kerja:
code azuredeploy.json
Templat Resource Manager ini mendefinisikan grup kontainer dengan dua kontainer, alamat IP publik, dan dua port yang diekspos. Kontainer pertama dalam grup menjalankan aplikasi web yang tersambung ke internet. Kontainer kedua, sidecar, membuat permintaan HTTP ke aplikasi web utama melalui jaringan lokal grup.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"containerGroupName": {
"type": "string",
"defaultValue": "myContainerGroup",
"metadata": {
"description": "Container Group name."
}
}
},
"variables": {
"container1name": "aci-tutorial-app",
"container1image": "mcr.microsoft.com/azuredocs/aci-helloworld:latest",
"container2name": "aci-tutorial-sidecar",
"container2image": "mcr.microsoft.com/azuredocs/aci-tutorial-sidecar"
},
"resources": [
{
"name": "[parameters('containerGroupName')]",
"type": "Microsoft.ContainerInstance/containerGroups",
"apiVersion": "2019-12-01",
"location": "[resourceGroup().location]",
"properties": {
"containers": [
{
"name": "[variables('container1name')]",
"properties": {
"image": "[variables('container1image')]",
"resources": {
"requests": {
"cpu": 1,
"memoryInGb": 1.5
}
},
"ports": [
{
"port": 80
},
{
"port": 8080
}
]
}
},
{
"name": "[variables('container2name')]",
"properties": {
"image": "[variables('container2image')]",
"resources": {
"requests": {
"cpu": 1,
"memoryInGb": 1.5
}
}
}
}
],
"osType": "Linux",
"ipAddress": {
"type": "Public",
"ports": [
{
"protocol": "tcp",
"port": 80
},
{
"protocol": "tcp",
"port": 8080
}
]
}
}
}
],
"outputs": {
"containerIPv4Address": {
"type": "string",
"value": "[reference(resourceId('Microsoft.ContainerInstance/containerGroups/', parameters('containerGroupName'))).ipAddress.ip]"
}
}
}
Untuk menggunakan registri gambar kontainer privat, tambahkan objek ke dokumen JSON dengan format berikut. Untuk contoh implementasi konfigurasi ini, lihat dokumentasi referensi templat ACI Resource Manager .
"imageRegistryCredentials": [
{
"server": "[parameters('imageRegistryLoginServer')]",
"username": "[parameters('imageRegistryUsername')]",
"password": "[parameters('imageRegistryPassword')]"
}
]
Menyebarkan templat
Buat grup sumber daya dengan perintah az group create.
az group create --name myResourceGroup --location eastus
Sebarkan templat dengan perintah az deployment group create.
az deployment group create --resource-group myResourceGroup --template-file azuredeploy.json
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
Lihat 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
Keluaran:
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
Keluaran:
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 mengirimkan permintaan HTTP ke aplikasi web utama melalui jaringan lokal grup untuk memastikan aplikasi tersebut terus beroperasi. Contoh sidecar ini dapat diperluas untuk memicu peringatan jika menerima kode respons HTTP selain 200 OK.
Langkah berikutnya
Dalam tutorial ini, Anda menggunakan templat Azure Resource Manager untuk menyebarkan grup multi-kontainer di Azure Container Instances. Anda mempelajari cara untuk:
- Mengonfigurasi templat grup multi-kontainer
- Menyebarkan grup kontainer
- Lihat log kontainer
Untuk sampel templat lainnya, lihat Templat Azure Resource Manager untuk Azure Container Instances.
Anda juga dapat menentukan grup multi-kontainer menggunakan file YAML. Karena sifat format YAML yang lebih ringkas, penyebaran dengan file YAML adalah pilihan yang baik ketika penyebaran Anda hanya menyertakan instans kontainer.