Cloud & IT Cert Prep · Ders

Azure Container Instances

Sunucuları yönetmeden ACI kullanarak saniyeler içinde kapsayıcılı bir uygulama başlatın, ortam değişkenlerini ve birim bağlamalarını yapılandırın ve ACI faturalandırmasını anlayın.

2. ders / 413 adım

Azure Container Instances, CoddyKit'te ücretsiz bir Cloud & IT Cert Prep dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cloud & IT Cert Prep öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.

Azure Container Instances Nedir?

Azure Container Instances (ACI), herhangi bir sunucuyu veya düzenleyiciyi yönetmeden Azure'da kapsayıcılı iş yükü çalıştırmanın en hızlı yoludur. Bir kapsayıcı görüntüsü sağlarsınız ve Azure bu görüntüyü paylaşımlı, çok kiracılı altyapı üzerinde saniyeler içinde çalıştırır. ACI; tam bir Kubernetes kümesi başlatmanın gereksiz ek yük oluşturacağı kısa ömürlü görevler, toplu işler, derleme aracıları ve olay güdümlü iş yükleri için idealdir.

Container Instance Oluşturma

Tek bir az container create komutuyla bir ACI kapsayıcısı başlatın. Görüntüyü, kaynak grubunu, CPU'yu ve belleği belirtin. ACI görüntüyü çeker, kaynakları ayırır ve kapsayıcıyı genellikle 5-10 saniye içinde başlatır. Bir DNS adı etiketi atarsanız her kapsayıcı örneği benzersiz bir tam nitelikli etki alanı adı (FQDN) alır ve internette hemen erişilebilir olur.

# Run an Nginx container accessible from the internet
az container create \
  --name my-nginx \
  --resource-group MyRG \
  --image nginx:latest \
  --cpu 1 \
  --memory 1 \
  --dns-name-label my-nginx-demo \
  --ports 80

# Access at: http://my-nginx-demo.<region>.azurecontainer.io

Ortam Değişkenleri ve Güvenli Değerler

Oluşturma sırasında belirtilen ortam değişkenlerini kullanarak ACI kapsayıcılarına yapılandırma aktarın. API anahtarları veya parolalar gibi hassas değerler için güvenli ortam değişkenlerini kullanın — bu değerler dağıtımdan sonra Azure portalında veya CLI çıktısında gösterilmez; böylece günlüklerde ya da denetim izlerinde yanlışlıkla açığa çıkmaları önlenir. Güvenli değerlere çalışma zamanında kapsayıcı içinden normal ortam değişkenleri olarak yine erişilebilir.

# Pass regular and secure environment variables
az container create \
  --name my-app \
  --resource-group MyRG \
  --image mycontainerregistry.azurecr.io/myapp:v1.0 \
  --environment-variables APP_ENV=production \
  --secure-environment-variables \
    DATABASE_PASSWORD='super-secret-password' \
    API_KEY='my-api-key'

# View logs from the running container
az container logs --name my-app --resource-group MyRG

ACI Faturalandırması ve Kaynak Ayırma

ACI, ayırdığınız CPU çekirdeklerine ve bellek GB miktarına göre saniye başına ücretlendirilir ve minimum faturalandırma süresi yoktur. Yalnızca kapsayıcı çalışırken ödeme yaparsınız — durduğu anda faturalandırma da durur. Bu, ACI'yi kısa ömürlü iş yükleri için son derece uygun maliyetli kılar. Desteklenen birleşimlere bağlı olarak her kapsayıcı grubu için 0,1 ile 4 CPU çekirdeği ve 0,1 ile 16 GB bellek ayırabilirsiniz.

# Small: 0.5 CPU, 0.5 GB memory
az container create --name small-task --resource-group MyRG \
  --image my-batch-image:latest --cpu 0.5 --memory 0.5 \
  --restart-policy Never  # Don't restart after completion

# Large: 4 CPU, 16 GB memory for intensive tasks
az container create --name ml-inference --resource-group MyRG \
  --image ml-model:latest --cpu 4 --memory 16

Yeniden Başlatma İlkeleri

ACI, kapsayıcı çıktıktan sonraki davranışını denetleyen üç yeniden başlatma ilkesi destekler. Always (varsayılan), kapsayıcı her çıktığında yeniden başlatır — uzun süre çalışan hizmetler için uygundur. Never, kapsayıcıyı bir kez çalıştırır ve sonlandırılmış durumda bırakır — toplu işler için idealdir. OnFailure, yalnızca kapsayıcı sıfır olmayan bir çıkış koduyla çıktığında yeniden başlatır — hata durumunda yeniden deneme kalıpları için kullanışlıdır.

# Batch job: run once, never restart
az container create \
  --name data-processor \
  --resource-group MyRG \
  --image my-batch-image:latest \
  --restart-policy Never \
  --environment-variables BATCH_DATE=2025-01-01

# Check the container's final state
az container show \
  --name data-processor \
  --resource-group MyRG \
  --query '{state:instanceView.state, exitCode:instanceView.currentState.exitCode}'

Kapsayıcı Grupları: Çok Kapsayıcılı Dağıtımlar

Bir kapsayıcı grubu, Kubernetes Pod'una benzer şekilde yaşam döngüsünü, ağı ve depolamayı paylaşan kapsayıcılar topluluğudur. Aynı gruptaki kapsayıcılar yerel bir IP adresini ve bağlantı noktası ad alanını paylaşır; bu sayede localhost üzerinden iletişim kurabilirler. Yaygın bir kalıp, aynı grupta bir ana uygulama kapsayıcısı ile bir yan kapsayıcının (örneğin günlük aracısı veya vekil sunucu) bulunmasıdır; bu yapı bir YAML ya da ARM şablonuyla tanımlanır.

# multi-container.yaml
apiVersion: '2021-09-01'
location: eastus
name: my-container-group
properties:
  containers:
  - name: app
    properties:
      image: myapp:v1.0
      ports: [{port: 80}]
      resources: {requests: {cpu: 1, memoryInGb: 1}}
  - name: log-forwarder
    properties:
      image: fluent-bit:latest
      resources: {requests: {cpu: 0.5, memoryInGb: 0.5}}
  osType: Linux
  restartPolicy: Always
type: Microsoft.ContainerInstance/containerGroups

# Deploy from YAML
# az container create --resource-group MyRG --file multi-container.yaml

Birim Bağlamaları: Azure Files Entegrasyonu

ACI kapsayıcıları varsayılan olarak durum bilgisi tutmaz — kapsayıcının dosya sistemine yazılan veriler, kapsayıcı yeniden başlatıldığında kaybolur. Verileri kapsayıcı yeniden başlatmaları arasında kalıcı hâle getirmek veya aynı gruptaki kapsayıcılar arasında paylaşmak için bir Azure Files paylaşımını birim olarak bağlayın. Kapsayıcı örneğini oluştururken depolama hesabı adını, anahtarı ve dosya paylaşımı adını belirtin.

# Mount an Azure Files share for persistent storage
az container create \
  --name stateful-app \
  --resource-group MyRG \
  --image myapp:v1.0 \
  --azure-file-volume-account-name mystorageaccount \
  --azure-file-volume-account-key '<storage-account-key>' \
  --azure-file-volume-share-name myfileshare \
  --azure-file-volume-mount-path /data

# Data written to /data persists in the Azure Files share

GPU Kapsayıcı Örnekleri

ACI; makine öğrenmesi çıkarımı, video işleme ve bilimsel hesaplama iş yükleri için GPU kapsayıcı örneklerini (K80, V100) destekler. GPU örnekleri seçili bölgelerde kullanılabilir ve Linux kapsayıcıları gerektirir. GPU başına/saniye üzerinden ücretlendirilirler; bu nedenle bir GPU kapsayıcısını başlatıp modeli çalıştırdığınız ve hemen kaldırdığınız ani çıkarım senaryoları için ekonomiktirler — 7/24 çalışan özel bir GPU VM'sinden çok daha ucuzdur.

# Create a GPU-enabled container instance
az container create \
  --name gpu-inference \
  --resource-group MyRG \
  --image my-ml-model:latest \
  --gpu-count 1 \
  --gpu-sku V100 \
  --cpu 4 \
  --memory 16 \
  --os-type Linux

Sanal Ağ ile ACI

ACI kapsayıcı gruplarını bir VNet içindeki özel bir alt ağa dağıtarak onlara özel IP adresleri verin ve internete açmadan diğer VNet'e bağlı kaynaklara (veritabanları, VMs) erişmelerini sağlayın. VNet ile tümleşik ACI, özel ve yetkilendirilmiş bir alt ağ gerektirir (alt ağ Microsoft.ContainerInstance/containerGroups'a yetkilendirilmelidir) ve genel IP atamasını desteklemez.

# Create an ACI container in a VNet
az container create \
  --name private-task \
  --resource-group MyRG \
  --image myapp:v1.0 \
  --vnet MyVNet \
  --subnet ContainerSubnet \
  --restart-policy Never

# The container gets a private IP from the subnet CIDR
# It can reach VNet resources (SQL, Redis, VMs) on private IPs

Sanal Kubelet Düğümü Olarak ACI

ACI, Virtual Kubelet açık kaynak projesi aracılığıyla AKS ile sanal düğüm olarak tümleşir. Bir AKS kümesinde ani talep VM düğümlerinin kapasitesini aştığında Kubernetes, Pod'ları sanal bir ACI düğümünde zamanlayabilir ve gerçek ACI kapsayıcı örneklerini başlatabilir. Bu, ek VM düğümlerini önceden sağlamadan sınırsız ani ölçeklendirme sağlar; yalnızca ani talep dönemi boyunca ACI işlem kaynakları için ödeme yaparsınız.

# Enable virtual nodes on an AKS cluster
az aks enable-addons \
  --name myAKSCluster \
  --resource-group MyRG \
  --addons virtual-node \
  --subnet-name VirtualNodeSubnet

# Schedule a burst pod on ACI via node selector
# spec:
#   nodeSelector:
#     kubernetes.io/role: agent
#     beta.kubernetes.io/os: linux
#     type: virtual-kubelet
#   tolerations:
#   - key: virtual-kubelet.io/provider
#     operator: Exists

ACI, AKS ve App Service Ne Zaman Kullanılır?

Kubernetes ek yükünün gereksiz olduğu kısa ömürlü görevler, toplu işler, CI derleme aracıları ve tek seferlik kapsayıcılar için ACI'yi seçin. Hizmet keşfi, durum denetimleri, RollingUpdate ve küme ağı gerektiren uzun süre çalışan, çok kapsayıcılı mikro hizmetler için AKS'yi seçin. Kapsayıcı ağını kendiniz yönetmeden PaaS kolaylıklarından (dağıtım yuvaları, yönetilen sertifikalar, yerleşik kimlik doğrulama) yararlanmak istediğinizde App Service'i seçin.

Hızlı Kontrol

Bu derste ele alınan Microsoft Azure Fundamentals (AZ-900) kavramlarını anlayıp anlamadığınızı test edin.

Ders Özeti

Bu derste şunları öğrendiniz: Azure Container Instances, sunucu yönetimi gerektirmeden kapsayıcıları saniyeler içinde çalıştırır ve CPU ile bellek kullanımına göre saniye başına ücretlendirilir; kapsayıcı grupları, birden fazla kapsayıcının Kubernetes Pod'u gibi ağı ve depolamayı paylaşmasına olanak tanır; yeniden başlatma ilkeleri (Always, Never, OnFailure) ise çıkış sonrasında kapsayıcının yaşam döngüsünü denetler. Sırada Azure için Kubernetes kavramlarını inceleyeceğiz.

Başlamak ücretsiz

Yapay zeka eğitmeniyle Cloud & IT Cert Prep öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
150
Dersler
600

Sıkça Sorulan Sorular

“Azure Container Instances” dersi ücretsiz mi?

Evet — “Azure Container Instances” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cloud & IT Cert Prep kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.

“Azure Container Instances” dersinde ne öğreneceğim?

Sunucuları yönetmeden ACI kullanarak saniyeler içinde kapsayıcılı bir uygulama başlatın, ortam değişkenlerini ve birim bağlamalarını yapılandırın ve ACI faturalandırmasını anlayın. Cloud & IT Cert Prep ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Cloud & IT Cert Prep öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Cloud & IT Cert Prep, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Azure Container Instances” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Cloud & IT Cert Prep dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Cloud & IT Cert Prep dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Azure Container Registry
  2. Azure Container Instances
  3. Azure için Kubernetes Kavramları
  4. AKS Üzerinde İş Yükleri Dağıtma
← Cloud & IT Cert Prep Sayfasına Dön