Öğ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ı ProvisioningState
baş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.