0Pricing
Cloud & IT Cert Prep · Ders

AKS Üzerinde İş Yükleri Dağıtma

Bir AKS kümesi oluşturun, kubectl ve Helm çizelgelerini kullanarak çok kapsayıcılı bir uygulama dağıtın ve uygulamayı Azure Load Balancer hizmetiyle dışarı açın.

AKS Üzerinde İş Yükleri Dağıtma, CoddyKit'te ücretsiz bir Cloud & IT Cert Prep dersidir. Bu, 4 dersinin 4. 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 Kubernetes Service Nedir

Azure Kubernetes Service (AKS), Microsoft'un kontrol düzlemini (API sunucusu, etcd, zamanlayıcı) ücretsiz olarak işlettiği ve bakımını yaptığı, yönetilen bir Kubernetes hizmetidir. Yalnızca çalışan düğümlerin (VM'lerin) ücretini ödersiniz. AKS; Kubernetes sürüm yükseltmelerini, düğüm işletim sistemi yamalarını, kontrol düzlemi ölçeklendirmesini ve Azure ağ, depolama ve kimlik hizmetleriyle tümleştirmeyi yönetir. Bu, Kubernetes'i üretim ortamında çalıştırmanın operasyonel yükünü büyük ölçüde azaltır.

AKS Kümesi Oluşturma

Düğüm sayısını, VM boyutunu ve ağ seçeneklerini belirterek az aks create ile bir AKS kümesi oluşturun. AKS, VM'leri, yönetilen diskleri, NIC'leri ve yük dengeleyicileri içeren bir düğüm kaynak grubu oluşturur. Önerilen ağ modu Azure CNI'dır — her pod gerçek bir VNet IP adresi alır; böylece NAT olmadan diğer Azure hizmetleriyle doğrudan bağlantı kurulabilir.

# Create an AKS cluster with 3 nodes
az aks create \
  --name myAKSCluster \
  --resource-group MyRG \
  --location eastus \
  --node-count 3 \
  --node-vm-size Standard_D2s_v3 \
  --enable-managed-identity \
  --attach-acr mycontainerregistry \
  --network-plugin azure \
  --generate-ssh-keys

# Get kubectl credentials
az aks get-credentials --name myAKSCluster --resource-group MyRG

Düğüm Havuzları

AKS kümeleri, aynı yapılandırmaya sahip VM grupları olan birden çok düğüm havuzuna sahip olabilir. Sistem düğümü havuzu, kritik Kubernetes sistem bileşenlerini (kube-system pod'ları) çalıştırır. Kullanıcı düğümü havuzları, uygulama iş yüklerinizi çalıştırır. Ayrı havuzlar, VM SKU'larını birlikte kullanmanıza olanak tanır — web uygulamaları için genel amaçlı bir havuz ve makine öğrenimi iş yükleri için GPU havuzu gibi — ve her birini bağımsız olarak ölçeklendirmenizi sağlar.

# Add a GPU node pool for ML workloads
az aks nodepool add \
  --cluster-name myAKSCluster \
  --resource-group MyRG \
  --name gpupool \
  --node-count 2 \
  --node-vm-size Standard_NC6s_v3 \
  --node-taints sku=gpu:NoSchedule

# List node pools
az aks nodepool list \
  --cluster-name myAKSCluster \
  --resource-group MyRG \
  -o table

Çok Kapsayıcılı Uygulama Dağıtma

Her katman için ayrı Kubernetes bildirim dosyaları yazarak ve bunları kubectl apply ile uygulayarak AKS'ye çok katmanlı bir uygulama dağıtın. Tipik bir dağıtımda web katmanı için bir Deployment, API katmanı için bir Deployment, bunları birbirine bağlamak için Service'ler, ortam yapılandırması için bir ConfigMap ve uygulamayı tek bir ana bilgisayar adı üzerinden dışarıya açmak için bir Ingress kaynağı bulunur.

# Apply all manifests in a directory
kubectl apply -f k8s/

# Or apply individual files
kubectl apply -f frontend-deployment.yaml
kubectl apply -f frontend-service.yaml
kubectl apply -f api-deployment.yaml
kubectl apply -f api-service.yaml
kubectl apply -f ingress.yaml

# Watch rollout status
kubectl rollout status deployment/frontend
kubectl rollout status deployment/api

Ingress ve Application Gateway

Ingress kaynağı, ana bilgisayar adlarını ve URL yollarını arka uç hizmetleriyle eşleyen HTTP yönlendirme kurallarını tanımlar. Her hizmet için bir harici IP sağlayan LoadBalancer hizmetinin aksine, tek bir Ingress Controller'ı tüm harici HTTP trafiğini yönetir ve kurallara göre yönlendirir. AKS'de TLS'yi sonlandırmak ve trafiği birden çok hizmete yönlendirmek için NGINX Ingress Controller veya Application Gateway Ingress Controller (AGIC) kullanın.

# Ingress routing traffic to two services by path
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: myapp-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  ingressClassName: nginx
  tls:
  - hosts: [myapp.contoso.com]
    secretName: myapp-tls
  rules:
  - host: myapp.contoso.com
    http:
      paths:
      - path: /api
        pathType: Prefix
        backend:
          service: {name: api-svc, port: {number: 80}}
      - path: /
        pathType: Prefix
        backend:
          service: {name: frontend-svc, port: {number: 80}}

Uygulama Paketleme için Helm Grafiklerini Kullanma

Helm, Kubernetes için paket yöneticisidir. Bir grafik, bir uygulamaya ait tüm Kubernetes bildirimlerini (Deployment'lar, Service'ler, Ingress'ler, ConfigMap'ler) tek bir sürümlendirilmiş ve parametreleştirilebilir pakette bir araya getirir. helm install, ortama özgü değerlerle bir grafik dağıtır. Artifact Hub'daki Helm deposu, yaygın altyapılar (NGINX, cert-manager, Prometheus, Redis) için önceden oluşturulmuş binlerce grafik barındırır.

# Add the NGINX Ingress Controller chart repo
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update

# Install NGINX Ingress Controller
helm install ingress-nginx ingress-nginx/ingress-nginx \
  --namespace ingress-nginx \
  --create-namespace \
  --set controller.replicaCount=2

# Install your own app chart with custom values
helm install myapp ./charts/myapp -f values-prod.yaml

Aşamalı Güncellemeler ve Geri Alma

Kapsayıcı görüntüsü etiketini değiştirerek bir Deployment'ı güncelleyin — Kubernetes, güncellenmiş görüntüyle yeni pod'lar oluşturup eski pod'ları kademeli olarak sonlandırarak uygulamanın tüm süreç boyunca kullanılabilir kalmasını sağlayan bir aşamalı güncelleme gerçekleştirir. Yeni sürüm bozuksa kubectl rollout undo kullanarak anında önceki revizyona geri dönün. Kubernetes, her Deployment için yapılandırılabilir bir revizyon geçmişi tutar.

# Update the image to a new version
kubectl set image deployment/myapp \
  myapp=mycontainerregistry.azurecr.io/myapp:v2.0

# Watch the rollout progress
kubectl rollout status deployment/myapp

# View rollout history
kubectl rollout history deployment/myapp

# Rollback to the previous version
kubectl rollout undo deployment/myapp

# Rollback to a specific revision
kubectl rollout undo deployment/myapp --to-revision=2

Küme Otomatik Ölçeklendiricisi

Cluster Autoscaler, bekleyen pod zamanlamasına ve düğüm kullanımına göre AKS düğüm havuzuna çalışan düğümleri otomatik olarak ekler veya kaldırır. Tüm düğümler dolu olduğu için pod'lar zamanlanamadığında Cluster Autoscaler yeni düğümler sağlar. Düğümler gereğinden az kullanıldığında ve pod'lar birleştirilebildiğinde düğümleri boşaltır ve kaldırır. Bu, Yatay Pod Otomatik Ölçeklendiricisini tamamlar — HPA pod'ları, Cluster Autoscaler ise düğümleri ölçeklendirir.

# Enable Cluster Autoscaler on the default node pool
az aks update \
  --name myAKSCluster \
  --resource-group MyRG \
  --enable-cluster-autoscaler \
  --min-count 2 \
  --max-count 10

# Update autoscaler bounds on a specific node pool
az aks nodepool update \
  --cluster-name myAKSCluster \
  --resource-group MyRG \
  --name nodepool1 \
  --enable-cluster-autoscaler \
  --min-count 3 \
  --max-count 20

Azure Monitor ile AKS İzleme

Üçüncü taraf izleme araçları dağıtmadan AKS kümenizden günlükleri ve ölçümleri toplamak için Azure Monitor Container Insights'ı etkinleştirin. Container Insights; küme durumu, düğüm ve pod CPU/belleği, kapsayıcı günlükleri ve canlı pod akışı için önceden oluşturulmuş panolar sağlar. Özel ölçümlerin toplanması için Prometheus ile tümleşir ve tüm verileri Log Analytics'te KQL kullanarak sorgulamanıza olanak tanır.

# Enable Azure Monitor Container Insights on AKS
az aks enable-addons \
  --addons monitoring \
  --name myAKSCluster \
  --resource-group MyRG \
  --workspace-resource-id /subscriptions/.../workspaces/MyLogAnalytics

# Stream live logs from a running pod
kubectl logs -f deployment/myapp -c myapp

# Query pod resource usage
kubectl top pods --namespace default

AKS RBAC ve Azure Active Directory

Kubernetes RBAC için Azure AD kullanıcılarını ve gruplarını kullanmak üzere AKS'yi Microsoft Entra ID ile tümleştirin. Ayrı Kubernetes kullanıcı hesaplarını yönetmek yerine ClusterRole veya Role bağlamalarını Entra ID nesne kimliklerine atarsınız. Bir geliştirici kubectl çalıştırdığında AKS, Entra ID belirtecini doğrular. Bu, merkezi kimlik yönetimi sağlar ve koşullu erişim ile MFA ilkeleriyle tümleşir.

# Enable Entra ID RBAC on an AKS cluster
az aks update \
  --name myAKSCluster \
  --resource-group MyRG \
  --enable-azure-rbac

# Assign a built-in AKS role to an Entra group
az role assignment create \
  --role 'Azure Kubernetes Service RBAC Reader' \
  --assignee '<Entra-Group-Object-ID>' \
  --scope /subscriptions/.../resourceGroups/MyRG/providers/Microsoft.ContainerService/managedClusters/myAKSCluster

Pod Düzeyinde Güvenlik için Ağ İlkeleri

Ağ ilkeleri, hangi pod'ların birbiriyle iletişim kurabileceğini denetleyen Kubernetes kaynaklarıdır. Varsayılan olarak bir kümedeki tüm pod'lar diğer tüm pod'lara erişebilir — ağ ilkeleri pod düzeyinde bir güvenlik duvarı sağlar. AKS'de ilkeleri uygulamak için Azure ağ ilkesini veya Calico'yu etkinleştirin. Yaygın bir yaklaşım, pod'lar arası tüm trafiği engelleyen bir varsayılan reddetme ilkesi kullanmak ve ardından uygulamanızın ihtiyaç duyduğu belirli yollar için açık izin ilkeleri tanımlamaktır.

# Default deny all ingress to pods in namespace
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny-ingress
  namespace: production
spec:
  podSelector: {}  # Matches all pods
  policyTypes:
  - Ingress

# Allow API pods to receive from frontend pods only
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: api-allow-frontend
spec:
  podSelector: {matchLabels: {app: api}}
  ingress:
  - from:
    - podSelector: {matchLabels: {app: frontend}}

Hızlı Kontrol

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

Ders Özeti

Bu derste şunları öğrendiniz: AKS, Microsoft'un kontrol düzlemini işlettiği yönetilen bir Kubernetes hizmetidir; Helm grafikleri, tekrarlanabilir dağıtım için birden çok kaynak içeren Kubernetes uygulamalarını paketler; Cluster Autoscaler ise pod zamanlama talebine göre düğümleri dinamik olarak ekler ve kaldırır. Sırada Azure Functions tetikleyicilerini ve bağlamalarını inceleyeceğiz.

Sıkça Sorulan Sorular

“AKS Üzerinde İş Yükleri Dağıtma” dersi ücretsiz mi?

Evet — “AKS Üzerinde İş Yükleri Dağıtma” 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.

“AKS Üzerinde İş Yükleri Dağıtma” dersinde ne öğreneceğim?

Bir AKS kümesi oluşturun, kubectl ve Helm çizelgelerini kullanarak çok kapsayıcılı bir uygulama dağıtın ve uygulamayı Azure Load Balancer hizmetiyle dışarı açı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 4. dersidir.

“AKS Üzerinde İş Yükleri Dağıtma” 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