Keandalan dalam Azure Container Instances
Artikel ini menjelaskan dukungan keandalan di Azure Container Instances (ACI) dan mencakup ketahanan intra-regional dengan zona ketersediaan dan informasi tentang Pemulihan Bencana. Untuk gambaran umum keandalan yang lebih rinci di Azure, lihat Keandalan Azure.
Dukungan zona ketersediaan
Zona ketersediaan adalah grup pusat data yang terpisah secara fisik di setiap wilayah Azure. Ketika satu zona gagal, layanan dapat melakukan failover ke salah satu zona yang tersisa.
Untuk informasi selengkapnya tentang zona ketersediaan di Azure, lihat Apa itu zona ketersediaan?
Azure Container Instances mendukung penyebaran grup kontainer zonal , yang berarti instans disematkan ke zona ketersediaan tertentu yang dipilih sendiri. Zona ketersediaan ditentukan pada tingkat grup kontainer. Kontainer dalam grup kontainer tidak dapat memiliki zona ketersediaan unik. Untuk mengubah zona ketersediaan grup kontainer, Anda harus menghapus grup kontainer dan membuat grup kontainer lain dengan zona ketersediaan baru.
Prasyarat
- Penyebaran grup penampung zona didukung di sebagian besar wilayah tempat ACI tersedia untuk grup kontainer Linux dan Windows Server 2019. Untuk detailnya, lihat Wilayah dan ketersediaan sumber daya.
- Jika menggunakan Azure CLI, pastikan versi
2.30.0
atau versi yang lebih baru terpasang. - Jika menggunakan PowerShell, pastikan versi
2.1.1-preview
atau versi yang lebih baru terpasang. - Jika menggunakan Java SDK, pastikan versi
2.9.0
atau versi yang lebih baru terpasang. - Dukungan zona ketersediaan hanya tersedia pada versi ACI API
09-01-2021
atau versi yang lebih baru.
Penting
Grup kontainer dengan sumber daya GPU tidak mendukung zona ketersediaan saat ini.
Penyebaran ulang dan migrasi zona ketersediaan
Untuk mengubah zona ketersediaan grup kontainer, Anda harus menghapus grup kontainer dan membuat grup kontainer lain dengan zona ketersediaan baru.
Membuat sumber daya dengan zona ketersediaan diaktifkan
Untuk membuat sumber daya Instans Kontainer dengan zona ketersediaan diaktifkan, Anda harus menyebarkan grup kontainer menggunakan templat Azure Resource Manager (ARM).
Catatan
Contoh dalam artikel ini diformat untuk shell Bash. Jika Anda lebih suka shell lain, sesuaikan karakter kelanjutan baris yang sesuai.
Untuk menyebarkan kontainer dengan ARM:
Salin-tempel JSON berikut ke dalam file baru bernama
azuredeploy.json
. Templat contoh ini menyebarkan grup kontainer dengan satu kontainer ke zona ketersediaan 1 di US Timur.{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "metadata": { "_generator": { "name": "bicep", "version": "0.4.1.14562", "templateHash": "12367894147709986470" } }, "parameters": { "name": { "type": "string", "defaultValue": "acilinuxpublicipcontainergroup", "metadata": { "description": "Name for the container group" } }, "image": { "type": "string", "defaultValue": "mcr.microsoft.com/azuredocs/aci-helloworld", "metadata": { "description": "Container image to deploy. Should be of the form repoName/imagename:tag for images stored in public Docker Hub, or a fully qualified URI for other registries. Images from private registries require additional registry credentials." } }, "port": { "type": "int", "defaultValue": 80, "metadata": { "description": "Port to open on the container and the public IP address." } }, "cpuCores": { "type": "int", "defaultValue": 1, "metadata": { "description": "The number of CPU cores to allocate to the container." } }, "memoryInGb": { "type": "int", "defaultValue": 2, "metadata": { "description": "The amount of memory to allocate to the container in gigabytes." } }, "restartPolicy": { "type": "string", "defaultValue": "Always", "allowedValues": [ "Always", "Never", "OnFailure" ], "metadata": { "description": "The behavior of Azure runtime if container has stopped." } }, "location": { "type": "string", "defaultValue": "eastus", "metadata": { "description": "Location for all resources." } } }, "functions": [], "resources": [ { "type": "Microsoft.ContainerInstance/containerGroups", "apiVersion": "2021-09-01", "zones": [ "1" ], "name": "[parameters('name')]", "location": "[parameters('location')]", "properties": { "containers": [ { "name": "[parameters('name')]", "properties": { "image": "[parameters('image')]", "ports": [ { "port": "[parameters('port')]", "protocol": "TCP" } ], "resources": { "requests": { "cpu": "[parameters('cpuCores')]", "memoryInGB": "[parameters('memoryInGb')]" } } } } ], "osType": "Linux", "restartPolicy": "[parameters('restartPolicy')]", "ipAddress": { "type": "Public", "ports": [ { "port": "[parameters('port')]", "protocol": "TCP" } ] } } } ], "outputs": { "containerIPv4Address": { "type": "string", "value": "[reference(resourceId('Microsoft.ContainerInstance/containerGroups', parameters('name'))).ipAddress.ip]" } } }
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
Untuk memverifikasi grup kontainer yang berhasil digunakan ke zona ketersediaan, lihat detail grup kontainer dengan perintah az container show:
az container show --name acilinuxpublicipcontainergroup --resource-group myResourceGroup
Dukungan failover zonal
Grup kontainer instans kontainer ditetapkan ke satu zona ketersediaan. Akibatnya, grup instans kontainer tersebut tidak akan terpengaruh oleh pemadaman yang terjadi di zona ketersediaan lain dari wilayah yang sama
Namun, jika pemadaman terjadi di zona ketersediaan grup kontainer, Anda dapat mengharapkan waktu henti untuk semua instans kontainer dalam grup tersebut.
Untuk menghindari waktu henti instans kontainer, kami sarankan Anda membuat minimal dua grup kontainer di dua zona ketersediaan yang berbeda di wilayah tertentu. Ini memastikan bahwa sumber daya instans kontainer Anda aktif dan berjalan setiap kali satu zona di wilayah tersebut mengalami pemadaman.
Pemulihan dari bencana
Saat seluruh wilayah atau pusat data Azure mengalami waktu henti, kode misi penting Anda perlu terus diproses di wilayah yang berbeda. Azure Container Instances yang disebarkan dengan konfigurasi zona berjalan di zona tertentu dalam wilayah tertentu. Tidak ada redundansi built-in yang tersedia. Untuk menghindari hilangnya eksekusi selama pemadaman luas wilayah, Anda dapat menyebarkan instans kontainer secara berlebihan di wilayah lain.