Microsoft AZ-400: Konteynerleştirme ve Kubernetes — Çalışma kılavuzu

Şunun bir parçası: Microsoft DevOps Engineer Expert AZ-400 — Çalışma kılavuzu. Doğrulanmış cevaplarla şurada pratik yapın: Microsoft sınav merkezi, veya şurada süreli deneme sınavları çözün: ExamRoll.io.

Genel Bakış

Konteynerleştirme ve Kubernetes, yeniden üretilebilir derlemeleri, güvenli dağıtımı ve bildirimsel, kendi kendini onaran çalışma zamanı orkestrasyonunu birleştirerek Azure üzerindeki modern DevOps’un temelini oluşturur. Bu alanda uzmanlaşmak; imajların nasıl oluşturulup optimize edildiğini, registry’lerin içeriği nasıl çoğaltıp tasdiklediğini, AKS’in kesintisiz olarak nasıl tasarlanıp yükseltildiğini, aşamalı teslimatın (progressive delivery) nasıl uygulandığını ve iş yüklerinin uçtan uca nasıl güvence altına alındığını anlamayı gerektirir. Ham Kubernetes’in ötesinde, paketleme için Helm’den, mutabakat (reconciliation) için GitOps’tan ve sunucusuz alanda mikroservis desenlerini ve olay güdümlü ölçeklendirmeyi basitleştirmek için Dapr ve KEDA ile Azure Container Apps’ten yararlanacaksınız. Aşağıdaki bölümler, sağlam, uyumlu pipeline’lar ve dayanıklı üretim cluster’ları uygulamak için ihtiyaç duyduğunuz platform kararlarını ve operasyonel pratikleri özetlemektedir.

Build ve Registry Temelleri: Docker ve ACR

Performanslı bir konteyner imajı, deterministik bir Dockerfile ve disiplinli bir build context’i ile başlar. Çok aşamalı build’ler, araç zinciri yoğun derleme aşamalarını küçük çalışma zamanı imajlarından ayırmanıza olanak tanır. Örneğin, bir .NET veya Go ikili dosyasını bir builder aşamasında derleyin, ardından yalnızca derlenmiş yapıtı (artifact) “distroless” veya minimal bir temel imajın (ör. mcr.microsoft.com/dotnet/runtime-deps veya gcr.io/distroless/base) içine kopyalayın. Bu, daha küçük saldırı yüzeyleri ve daha hızlı pull süreleri sağlar. Her RUN, COPY ve ADD bir katman oluşturur; katman önbellek isabetlerini (layer cache hits) en üst düzeye çıkarmak için Dockerfile’ları, seyrek değişen adımları sona yerleştirerek ve okunabilirliği korurken komutları mantıksal gruplamayla birleştirerek yeniden yapılandırın. Her zaman bin/obj, node_modules, testler, dokümanlar ve gizli bilgileri (secrets) hariç tutmak için bir .dockerignore dosyası ekleyin; büyük boyutlu bir build context’i, yüklemeleri yavaşlatır ve uzak önbellek etkinliğini azaltır. Deterministik paket kurulumları (sürüm sabitleme, kilit dosyaları) ve build argümanlarını dikkatli kullanın; ortama özgü dosyalar, değişmez (immutable) imajlar aracılığıyla değil, çalışma zamanı yapılandırmasıyla sağlanmalıdır.

Azure Container Registry (ACR), imaj depolama ve dağıtımının bel kemiğidir. Build işlemlerini Azure’a devretmek için ACR Tasks’ten yararlanın: isteğe bağlı build’ler için hızlı görevler (az acr run), Git commit’leri, temel imaj güncellemeleri veya zamanlamalarla tetiklenen otomatik görevler ve Buildx kullanarak çok mimarili (multi-arch) imajlar için çok adımlı Görev YAML’leri. Coğrafi replikasyon (Premium SKU), yapıtları (artifacts) bölgeler arasında yansıtarak çok bölgeli AKS/ACA dağıtımları için pull gecikmesini ve çıkış (egress) maliyetlerini en aza indirir; bunu en az ayrıcalık ilkesi için özel uç noktalar (private endpoints) ve depo kapsamlı RBAC ile birleştirin. İmajları imzalamak ve kaynağını doğrulamak için içerik güvenini (content trust) etkinleştirin: Docker Content Trust/Notary ve gelişen OCI imza ekosistemleri (ör. cosign), korumalı namespace’ler için imza gerektiren OPA Gatekeeper kısıtlamaları aracılığıyla admission (kabul) aşamasında zorunlu kılınabilir. Güvenlik açığı taramasını entegre edin: Microsoft Defender for Cloud, imajları push sırasında ve beklemedeyken tarar, CVE’leri düzeltme rehberliğiyle birlikte yüzeye çıkarır ve Azure Policy ile CI denetimleri aracılığıyla dağıtımları denetleyebilir (gate); bilinen güvenlik açığına sahip katmanları azaltmak için temel imaj yenileme otomasyonunu dahil edin.

AKS Platform ve İş Yükü Teslimatı

Varsayılan olarak güvenli ayarlarla AKS kümeleri oluşturun: yönetilen kimlik (managed identity), RBAC için Azure AD entegrasyonu, VNET entegrasyonu için Azure CNI, ağ ilkesi (Azure veya Calico), secret tüketimi için Azure Key Vault sağlayıcısı (Secrets Store CSI) ve yetkilendirilmiş IP aralıklarına sahip özel kümeler. İş yüküne uygun node havuzları seçin: kontrol düzlemi (control-plane) için kritik bileşenler için sistem havuzları; uygulamalar için kullanıcı havuzları; ML için GPU havuzları; maliyet tasarrufu sağlayan durumsuz (stateless) işler için spot havuzları; Windows container’ları için Windows node havuzları. Zamanlamayı (scheduling) ve dayanıklılığı kontrol etmek için taints/tolerations ve topoloji yayılma kısıtlamalarını (topology spread constraints) kullanın. Küme otomatik ölçeklendiricisi (cluster autoscaler) ve dağıtım başına Yatay Pod Otomatik Ölçeklendiricisi (Horizontal Pod Autoscaler) ile otomatik ölçeklendirme yapın; performans ve dayanıklılık için geçici (ephemeral) işletim sistemi disklerini ve kullanılabilirlik alanlarını (availability zones) göz önünde bulundurun.

Kesintiyi en aza indirmek için yükseltmeleri planlayın. AKS önce kontrol düzlemini (control plane), ardından node havuzlarını yükseltir. Node havuzu yükseltmelerinde, ek kapasite (surge capacity) eklemek, node’ları düzgün bir şekilde boşaltmak (drain) ve PodDisruptionBudget’lara uymak için max-surge kullanın. Öngörülebilir bir ritim için otomatik yükseltme kanallarını (hızlı/kararlı/yalnızca yama) benimseyin; etki alanını (blast radius) sınırlamak için sistem ve kullanıcı havuzu yükseltmelerini ayırın. Bir Kubernetes sürüm artışı olmasa bile çekirdek/çalışma zamanı (kernel/runtime) düzeltmelerini almak için node imaj yükseltmelerini düzenli olarak yapın ve uyumlu CNI/CSI sürümlerini sabitleyin. Sıfır kesintili platform değişiklikleri için mavi-yeşil (blue-green) node havuzları kullanın—yeşili maviye cordon/drain yapın ve nodeSelector/affinity aracılığıyla geçiş yapın.

Kubernetes’teki Deployment’lar, dağıtım sırasında kapasiteyi korumak için maxUnavailable ve maxSurge ile sıralı güncellemeleri (rolling updates) yerel olarak destekler; erken trafiği önlemek için readiness/liveness probları ve startup probları ile eşleştirin. Kubernetes’te mavi-yeşil (blue-green) teslimat, paralel Deployment’lar (mavi ve yeşil) çalıştırılarak ve kararlı bir Service seçicisini (selector) veya Endpoint nesnesini hedef revizyona geçirerek uygulanır; bu, etiketleri değiştirerek neredeyse anında geri dönüş sağlar. Kanarya (canary) teslimatı en iyi şekilde uçta (edge) ingress aracılığıyla yapılır: NGINX Ingress, annotation’lar aracılığıyla ağırlıklı kanarya (weighted canary) dağıtımını destekler; Application Gateway Ingress Controller (AGIC) trafiği arka uçlar (backends) arasında bölebilir; service mesh’ler, ayrıntılı ilkeler ve telemetri ile trafik kaydırma (traffic shifting) sağlar. Sağlam pipeline’lar için, ağırlıkları yükseltmeden önce smoke testleri ve App Insights kullanılabilirlik denetimleri ile doğrulama yapın.

Helm, Kubernetes manifestolarını Chart.yaml, şablonlar ve varsayılan values.yaml’den oluşan chart’lar halinde paketler. Values dosyaları deterministik olarak katmanlanır; chart’lar arası ayarlar için values.<env>.yaml katmanlarını ve bir “global” bloğunu kullanın. İmajlarla RBAC ve coğrafi çoğaltma (geo-replication) paritesi sağlayan, ACR’de OCI destekli chart depolaması ile Helm 3’ü tercih edin (helm registry login && helm push oci://…). Azure Pipelines’da, Helm’i sabitlenmiş bir sürümde kurun (HelmInstaller) ve bir Kubernetes/Azure Resource Manager hizmet bağlantısı aracılığıyla dağıtın (HelmDeploy); şablon denetimi (template linting) artı deneme çalıştırması (dry-run) ve fark (helm diff eklentisi) sürümleri denetlemelidir (gate). Secret’ları values dosyalarına commit’lemekten kaçının; secret’ları çalışma zamanında (runtime) oluşturmak için external-secrets veya CSI Key Vault’u entegre edin. Chart’ları anlamsal olarak sürümleyin (semantically version) ve izlenebilirlik için appVersion’ı imaj özetine (image digest) sabitleyin.

Operasyonlar, Güvenlik ve Trafik Kontrolü

Flux veya Argo CD ile GitOps, kümelerin sürekli olarak beyan edilen bir duruma yakınsamasını sağlar. Flux v2, Azure CLI/uzantısı aracılığıyla AKS ile yerel olarak entegre olur, belirli aralıklarla Kaynakları (Sources - Git/OCI/Bucket) ve Kustomization’ları uzlaştırır ve ilkelere dayalı olarak Helm/Kustomize’ı yeni etiketlere güncellemek için imaj otomasyonu içerir. Argo CD, Uygulamaları (Applications) ve sağlık durumlarını izler, Azure AD ile SSO’yu destekler ve çok kiracılı (multi-tenant) ayrım için çekme tabanlı (pull-based), uygulama-içinde-uygulama (app-of-apps) modellerinde çalışabilir. Her ikisi de sapmayı (drift) algılar ve otomatik olarak düzeltebilir, olaylar/uyarılar yayınlayabilir ve aşamalı teslimatı (progressive delivery) destekler; NGINX, Istio veya Linkerd kullanarak kanarya (canary) ve A/B testlerini otomatikleştirmek, metriklere göre yükseltme yapmak ve SLO ihlallerinde geri almak için Flagger ile eşleştirin.

Güvenlik, tedarik zincirinde başlar ve kabul (admission) ile çalışma zamanında (runtime) uygulanır. İmajları Defender for Cloud ile sürekli tarayın ve CI/CD’de denetim kapıları (gates) oluşturun. Ayrıcalıklı (privileged)/hostPath/güvensiz sysctl’leri varsayılan olarak engellemek için namespace’lerde Pod Security Admission etiketleriyle Kubernetes Pod Güvenlik Standartlarını (temel/kısıtlı) benimseyin. OPA Gatekeeper ile kuruluş ilkelerini uygulayın: kısıtlama şablonları (constraint templates) ayrıcalıklı container’ları yasaklar, onaylanmış registry’leri zorunlu kılar, kaynak limitlerini uygular ve imzalı imajlar veya SBOM varlığını talep eder. İzin verilen pod’dan pod’a ve dışarı giden (egress) trafiği tanımlamak için ağ ilkeleri (network policies) uygulayın; AKS, Azure Ağ İlkelerini (Azure CNI ile) ve Calico’yu destekler. Azure Firewall veya NVA dış trafik (egress) kontrolü ve Application Gateway WAF iç trafik (ingress) ile tamamlayın. İş yüklerini root olmayan kullanıcılar, salt okunur kök dosya sistemleri (read-only root filesystems), seccomp ve AppArmor profilleri ve düzenli node imaj yükseltmeleri ile sağlamlaştırın. Defender for Kubernetes aracılığıyla denetim ve tehdit algılamayı etkinleştirin ve telemetriyi Azure Monitor Container Insights’ta toplayın; logları/izleri (traces) OpenTelemetry ile standartlaştırın.

Bir service mesh (Istio veya Linkerd), tek tip trafik yönetimi, şifreleme ve gözlemlenebilirlik ekler. Yeniden denemeleri (retries), zaman aşımlarını (timeouts), devre kesmeyi (circuit breaking) ve ağırlıklı yönlendirmeyi (weighted routing) tanımlamak için DestinationRules/VirtualServices (Istio) veya ServiceProfiles (Linkerd) kullanın. Servisten servise şifreleme ve kimlik doğrulama için karşılıklı TLS’i (mutual TLS) etkinleştirin; açıkları kapatmak için “STRICT” mTLS gibi ilkeleri zorunlu kılın. Metrikleri Prometheus’a ve panoları Grafana’ya aktarın; dağıtık izleri (distributed traces - Jaeger/Zipkin) yakalayın ve bunları OpenTelemetry toplayıcıları aracılığıyla Application Insights veya Azure Monitor’a besleyin. Mesh tabanlı kanarya (canary) dağıtımları ve hata enjeksiyonu (fault injection), Flagger’ın SLO’lara karşı analizi otomatikleştirmesiyle güvenilir test ve aşamalı teslimatı (progressive delivery) güçlendirir.

Azure’da Geliştirici Üretkenliği ve Sunucusuz Konteynerler

AKS DevOps entegrasyon araçları, geliştirici iç döngülerini (inner loop) kolaylaştırır. Draft, dil framework’lerini algılar ve Dockerfile’lar, Helm chart’ları ve başlatma yapılandırmaları için iskelet (scaffold) oluşturarak konteynerleştirmeyi hızlandırır. Bridge to Kubernetes, canlı bir kümeden gelen hizmet çağrılarını yerel iş istasyonunuza yönlendirir, bu sayede geri kalanı gerçek veri ve bağımlılıklarla kümede çalışırken tek bir mikro hizmeti yerel olarak yinelemenize ve hata ayıklamanıza olanak tanır. Azure Dev Spaces kullanımdan kaldırılmıştır; Bridge to Kubernetes, desteklenen yerel geliştirme deneyimidir ve VS Code ile Visual Studio ile entegre olur.

Azure Container Apps (ACA), Kubernetes’i yönetme zorunluluğu olmadan mikro hizmetler ve işler (job) için sunucusuz, tam olarak yönetilen bir çalışma zamanı (runtime) sunar. Her dağıtım bir revizyon oluşturur; tek bir komut veya YAML değişikliği ile mavi-yeşil (blue-green) veya kanarya (canary) tarzı dağıtımlar için trafiği revizyonlar arasında yüzdelik olarak yönlendirebilirsiniz. Yerel Dapr entegrasyonu, özel ara bağlantı kodlarına (plumbing) gerek kalmadan hizmet çağrısı (service invocation), yayınla/abone ol (pub/sub), bağlamalar (bindings), durum depoları (state stores) ve gizli anahtarları (secrets) mümkün kılar; tak-çıkar bileşenler (örneğin, Azure Service Bus, Key Vault, Cosmos DB) hizmetler arası tutarlı yetenekleri hızlandırır. KEDA, HTTP eş zamanlılığına ve 60’tan fazla ölçekleyiciye (Azure Queue/Service Bus, Kafka, Prometheus, özel) dayalı olay güdümlü otomatik ölçeklendirmeyi destekler ve maliyet verimliliği için sıfıra kadar ölçeklenir (scale to zero). Ağ izolasyonu ve VNET entegrasyonu için ACA Ortamlarını (Environments) kullanın, yönetilen kimlik (managed identity) aracılığıyla ACR’yi bağlayın ve GitOps pratikleriyle bildirimsel (declarative) denkliği korumak için yapılandırmayı containerapps YAML aracılığıyla yönetin.

Pratik Problem Senaryosu

Adobe’nin, çok bölgeli bir müşteri analitik hizmetini modernize etmesi, sürüm riskini azaltırken tedarik zinciri ve çalışma zamanı güvenliğini sıkılaştırması gerekiyor. Ekip, derlemeleri (build) standartlaştırmalı, güvenli dağıtımları otomatikleştirmeli ve ABD ile AB genelinde hızlı, uyumlu teslimatı sağlamalıdır.

  1. Tüm hizmetler için çok aşamalı (multi-stage) Dockerfile’lar ve .dockerignore uygulayın
  1. ACR Tasks ile imajları derleyin ve imzalayın, coğrafi olarak çoğaltılmış (geo-replicated) ACR’ye gönderin (push)
  1. Defender for Cloud imaj taramasını etkinleştirin ve CI kapıları (CI gates) ve OPA Gatekeeper aracılığıyla zorunlu kılın
  1. Bölge başına Azure CNI, ağ ilkeleri (network policies) ve yönetilen kimlik (managed identity) ile özel AKS kümeleri sağlayın
  1. Ayrı sistem ve kullanıcı düğüm havuzları (node pools) oluşturun, toplu işler (batch jobs) için spot havuzları ekleyin
  1. Paketleme için Helm’i benimseyin, chart’ları ACR’de (OCI) saklayın, Azure Pipelines aracılığıyla dağıtın
  1. GitOps mutabakatı (reconciliation) ve sapma tespiti (drift detection) için Flux v2’yi dağıtın, kanarya dağıtımları için Flagger’ı entegre edin
  1. PDB’ler ve readiness/startup probe’ları ile sıralı güncellemeleri (rolling updates) yapılandırın; riskli bileşenler için mavi-yeşil (blue-green) kullanın
  1. Katı mTLS, yeniden denemeler (retries) ve zaman aşımları (timeouts) ile Istio service mesh’i kullanıma alın; telemetriyi Application Insights’a aktarın
  1. AKS otomatik yükseltme kanalı ve düğüm imajı yükseltmeleri ile kontrollü bir yükseltme stratejisi oluşturun
  1. İç döngü (inner-loop) geliştirme için Bridge to Kubernetes’i kullanın; Draft ile iskelet oluşturun
  1. Uzun kuyruklu (long-tail) hizmetleri Dapr ve KEDA ile Azure Container Apps’e taşıyın

Bu uçtan uca tasarım, derleme determinizmini güvenli dağıtım, bildirimsel operasyonlar ve aşamalı teslimat (progressive delivery) ile birleştirerek Adobe’ye hızlı, düşük riskli sürümler ve bölgeler arasında sağlamlaştırılmış bir çalışma zamanı (runtime) sunar.


Kod Olarak Altyapı ve Yapılandırma Yönetimi · Tüm alanlar · Sürüm Yönetimi ve Dağıtım Stratejileri

Bu soruları çözün → · ExamRoll.io’da süreli pratik →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

Sınavınızı geçin →

Microsoft'a göz atın →

Related guides

Hepsi bir arada erişim

Tek abonelik. Her sınav.

Her plan, sınırsız cevap aramayı, pratik testlerini, AI açıklamalarını ve tam kaynak kütüphanesini — 20'den fazla dilde — açar.

Aylık
24.87
Just €0.83/day
Her şey dahil:
  • Sınırsız cevap arama
  • Sınırsız pratik testi
  • AI destekli açıklamalar
  • Tam kaynak kütüphanesi
  • 20+ dil
  • Haftalık içerik güncellemeleri
  • Ödüller ve yönlendirmeler
  • Öncelikli destek
Ücretsiz denemeyi başlat

Kredi kartı gerekmez*

En iyi değer
12 ay
179.87
Just €0.49/daySave 40%
Her şey dahil:
  • Sınırsız cevap arama
  • Sınırsız pratik testi
  • AI destekli açıklamalar
  • Tam kaynak kütüphanesi
  • 20+ dil
  • Haftalık içerik güncellemeleri
  • Ödüller ve yönlendirmeler
  • Öncelikli destek
Ücretsiz denemeyi başlat

Kredi kartı gerekmez*

✓ Ücretsiz plan dahil · ✓ İstediğiniz zaman iptal edin · ✓ Tüm planlar tam ürünü açar