Öğretici: Azure CLI kullanarak Azure Container Instances ile Spot kapsayıcı dağıtma (Önizleme)

Spot Kapsayıcılar, ACI'nın basitliğini spot VM'lerin düşük maliyetiyle bir araya getirerek müşterilerin kapsayıcılı kesintiye uğrayabilir iş yüklerini büyük ölçekte çalıştırmasını kolaylaştırır ve uygun fiyatlı hale getirir. Sunucusuz Spot kapsayıcılarını çalıştırmak için Azure Container Instances kullanın. Kullanılmayan Azure kapasitesinde kesintiye uğrayan kapsayıcılı iş yüklerini düşük maliyetle çalıştırmak istediğinizde ve Azure Kubernetes Service gibi tam bir kapsayıcı düzenleme platformuna ihtiyacınız olmadığında bir uygulamayı isteğe bağlı olarak Spot kapsayıcısına dağıtın.

Bu hızlı başlangıçta, Spot kapsayıcılarını kullanarak helloworld kapsayıcısı dağıtmak için Azure CLI'yi kullanacaksınız. Tek bir dağıtım komutunu yürüttükten birkaç saniye sonra kapsayıcı günlüklerine göz atabilirsiniz:

  • Bu hızlı başlangıç için Azure CLI'nın 2xxx sonraki bir sürümü gerekir. Azure Cloud Shell kullanılıyorsa en son sürüm zaten yüklüdür.

Kaynak grubu oluşturma

Tüm Azure kaynakları gibi Azure kapsayıcı örneklerinin de bir kaynak grubuna dağıtılması gerekir. Kaynak grupları, ilgili Azure kaynaklarını düzenlemenizi ve yönetmenizi sağlar.

İlk olarak, aşağıdaki az group create komutuyla westus konumunda myResourceGroup adlı bir kaynak grubu oluşturun:

az group create --name myResourceGroup --location westus

Kapsayıcı oluşturma

Artık bir kaynak grubunuz olduğuna göre, Azure'da spot kapsayıcı çalıştırabilirsiniz. Azure CLI ile bir Spot kapsayıcı grubu oluşturmak için az container create komutuna 'Spot' değeriyle kaynak grubu adı, kapsayıcı örneği adı, kapsayıcı görüntüsü ve 'priority' adlı yeni bir özellik sağlayın. Bu hızlı başlangıçta genel mcr.microsoft.com/azuredocs/aci-helloworld görüntüyü kullanacaksınız. Bu görüntü, statik html sayfası sunan Node.js yazılmış küçük bir web uygulamasını paketler.

Açılacak bir veya daha fazla bağlantı noktası, bir DNS ad etiketi veya her ikisini birden belirterek spot kapsayıcılarınızı İnternet'te kullanıma sunamazsınız. Bu hızlı başlangıçta, DNS ad etiketi olmadan helloworld görüntüsünü kullanarak bir kapsayıcı dağıtacaksınız. Herkese açık bir şekilde ulaşılamaz. Kapsayıcının varsayılan bağlantı noktası 80'de dinlediğini doğrulamak için kapsayıcı günlüklerini sorgulayabilirsiniz.

Kapsayıcı örneğini başlatmak için aşağıdakine benzer bir komut yürütür.

az container create --resource-group acispotdemo --name acispotclitest --image mcr.microsoft.com/azuredocs/aci-helloworld --priority spot

Birkaç saniye içinde Azure CLI'den dağıtımın tamamlandığını belirten bir yanıt almanız gerekir. Durumunu az container show komutuyla denetleyebilirsiniz:

az container show --resource-group acispotdemo --name acispotclitest --query "{ProvisioningState:provisioningState}" --out table

Komutu çalıştırdığınızda, kapsayıcının tam etki alanı adı (FQDN) ve sağlama durumu görüntülenir.

ContainerGroupName                               ProvisioningState
---------------------------------  -------------------
acispotclitest                        Succeeded

Kapsayıcı ProvisioningStatebaşarılı ise tebrikler! Docker kapsayıcısında çalışan bir uygulamayı başarıyla Azure'a dağıttınız.

Kapsayıcı günlüklerini çekme

Kapsayıcıdaki veya üzerinde çalışan uygulamalardaki sorunları gidermek (veya yalnızca çıkışını görmek) istediğinizde kapsayıcı örneğinin günlüklerinden başlayın.

az container logs komutu ile kapsayıcı örneğinin günlüklerini çekin:

az container logs --resource-group acispotdemo --name acispotclitest

Çıktı kapsayıcının günlüklerini görüntüler ve aşağıdaki çıkışı göstermelidir

listening on port 80

Çıkış akışları ekleme

Günlükleri görüntülemeye ek olarak, yerel standart çıkış ve standart hata akışlarınızı kapsayıcınınkine ekleyebilirsiniz.

İlk olarak az container attach komutunu yürüterek yerel konsolunuzu kapsayıcının çıkış akışlarına ekleyin:

az container attach --resource-group acispotdemo --name acispotclitest

Eklendikten sonra, daha fazla çıkış oluşturmak için tarayıcınızı birkaç kez yenileyin. İşlemi tamamladığınızda Control+C ile konsolunuzu ayırın. Aşağıdakine benzer bir çıktı görmeniz gerekir:

Container 'acispotclitest' is in state 'Running'...
Start streaming logs:
listening on port 80

Kaynakları temizleme

Kapsayıcıyla işiniz bittiğinde az container delete komutunu kullanarak kapsayıcıyı kaldırın:

az container delete --resource-group acispotdemo --name acispotclitest

Kapsayıcının silindiğini doğrulamak için, az container list komutunu yürütün:

az container list --resource-group acispotdemo --output table

acispotclitest kapsayıcısı komutun çıkışında görünmemelidir. Kaynak grubunda başka kapsayıcınız yoksa, çıkış görüntülenmez.

acispotdemo kaynak grubunu ve içerdiği tüm kaynakları bitirdiyseniz az group delete komutuyla silin:

az group delete --name acispotdemo

Sonraki adımlar

Bu öğreticide, Azure CLI kullanarak varsayılan kota ve çıkarma ilkesiyle Azure Container Instances üzerinde bir Spot kapsayıcı oluşturdunuz.