0Pricing
Cloud & IT Cert Prep · Lektion

Workloads in AKS bereitstellen

Erstellen Sie einen AKS-Cluster, stellen Sie eine Anwendung mit mehreren Containern mithilfe von kubectl und Helm-Charts bereit und machen Sie sie mit einem Azure-Load-Balancer-Service extern zugänglich.

Workloads in AKS bereitstellen ist eine kostenlose Cloud & IT Cert Prep-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cloud & IT Cert Prep-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cloud & IT Cert Prep-Kurs umfasst insgesamt 4 Lektionen.

Was ist Azure Kubernetes Service?

Azure Kubernetes Service (AKS) ist ein verwaltetes Kubernetes-Angebot, bei dem Microsoft die Control Plane (API-Server, etcd, Scheduler) kostenlos betreibt und wartet. Sie zahlen nur für die Worker-Knoten (VMs). AKS übernimmt Upgrades der Kubernetes-Version, Patches für das Knotenbetriebssystem, die Skalierung der Control Plane sowie die Integration mit Azure-Netzwerk, -Speicher und -Identität. Dadurch wird der Betriebsaufwand für den produktiven Kubernetes-Betrieb erheblich reduziert.

Erstellen eines AKS-Clusters

Erstellen Sie mit az aks create einen AKS-Cluster und geben Sie dabei die Knotenanzahl, die VM-Größe und die Netzwerkoptionen an. AKS erstellt automatisch eine Knotenressourcengruppe mit den VMs, verwalteten Datenträgern, NICs und Load Balancern. Der empfohlene Netzwerkmodus ist Azure CNI — jeder Pod erhält eine echte VNet-IP-Adresse. Dadurch ist eine direkte Verbindung zu anderen Azure-Diensten ohne NAT möglich.

# 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

Knotenpools

AKS-Cluster können mehrere Knotenpools enthalten — Gruppen von VMs mit derselben Konfiguration. Der Systemknotenpool führt wichtige Kubernetes-Systemkomponenten aus (kube-system-Pods). Benutzerknotenpools führen Ihre Anwendungsworkloads aus. Durch separate Pools können Sie verschiedene VM-SKUs kombinieren — etwa einen Pool für allgemeine Zwecke für Web-Apps und einen GPU-Pool für ML-Workloads — und jeden Pool unabhängig skalieren.

# 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

Bereitstellen einer Anwendung mit mehreren Containern

Stellen Sie eine mehrschichtige Anwendung auf AKS bereit, indem Sie für jede Schicht separate Kubernetes-Manifestdateien schreiben und diese mit kubectl apply anwenden. Eine typische Bereitstellung umfasst ein Deployment für die Webschicht, ein Deployment für die API-Schicht, Services zur Verbindung der Schichten, eine ConfigMap für die Umgebungskonfiguration und eine Ingress-Ressource, um die App über einen einzigen Hostnamen extern bereitzustellen.

# 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 und Application Gateway

Eine Ingress-Ressource definiert HTTP-Routingregeln, die Hostnamen und URL-Pfade Backend-Services zuordnen. Im Gegensatz zu einem LoadBalancer-Service (eine externe IP-Adresse pro Service) verarbeitet ein einziger Ingress-Controller den gesamten externen HTTP-Datenverkehr und leitet ihn anhand von Regeln weiter. Verwenden Sie in AKS den NGINX Ingress Controller oder den Application Gateway Ingress Controller (AGIC), um TLS zu beenden und den Datenverkehr an mehrere Services weiterzuleiten.

# 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}}

Helm-Charts für die Paketierung von Anwendungen

Helm ist der Paketmanager für Kubernetes. Ein Chart bündelt alle Kubernetes-Manifeste für eine Anwendung (Deployments, Services, Ingress, ConfigMaps) in einem einzigen versionierten, parametrisierten Paket. helm install stellt ein Chart mit umgebungsspezifischen Werten bereit. Das Helm-Repository auf Artifact Hub enthält Tausende vorgefertigter Charts für gängige Infrastruktur (NGINX, cert-manager, Prometheus, Redis).

# 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

Rolling Updates und Rollbacks

Aktualisieren Sie ein Deployment, indem Sie das Container-Image-Tag ändern — Kubernetes führt ein Rolling Update durch. Dabei werden neue Pods mit dem aktualisierten Image erstellt und alte Pods nach und nach beendet, sodass die Anwendung durchgehend verfügbar bleibt. Wenn die neue Version fehlerhaft ist, können Sie mit kubectl rollout undo sofort auf die vorherige Revision zurücksetzen. Kubernetes verwaltet für jedes Deployment einen konfigurierbaren Revisionsverlauf.

# 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

Cluster Autoscaler

Der Cluster Autoscaler fügt basierend auf ausstehenden Pod-Einplanungen und der Knotenauslastung automatisch Worker-Knoten zu einem AKS-Knotenpool hinzu oder entfernt sie. Wenn Pods nicht eingeplant werden können, weil alle Knoten ausgelastet sind, stellt der Cluster Autoscaler neue Knoten bereit. Wenn Knoten nicht ausreichend ausgelastet sind und Pods zusammengelegt werden können, leert und entfernt er diese Knoten. Dies ergänzt den Horizontal Pod Autoscaler — der HPA skaliert Pods, der Cluster Autoscaler skaliert Knoten.

# 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

AKS-Überwachung mit Azure Monitor

Aktivieren Sie Azure Monitor Container Insights, um Protokolle und Metriken aus Ihrem AKS-Cluster zu erfassen, ohne Überwachungstools von Drittanbietern bereitzustellen. Container Insights bietet vorgefertigte Dashboards für den Clusterzustand, die CPU- und Speichernutzung von Knoten und Pods, Containerprotokolle sowie das Live-Streaming von Pods. Es lässt sich für das Abrufen benutzerdefinierter Metriken in Prometheus integrieren und ermöglicht die Abfrage aller Daten mit KQL in Log Analytics.

# 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 und Azure Active Directory

Integrieren Sie AKS mit Microsoft Entra ID, um Azure AD-Benutzer und -Gruppen für Kubernetes-RBAC zu verwenden. Anstatt separate Kubernetes-Benutzerkonten zu verwalten, weisen Sie Entra-ID-Objekt-IDs ClusterRole- oder Role-Bindings zu. Wenn ein Entwickler kubectl ausführt, überprüft AKS dessen Entra-ID-Token. Dadurch erhalten Sie eine zentrale Identitätsverwaltung sowie eine Integration mit Richtlinien für bedingten Zugriff und MFA.

# 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

Netzwerkrichtlinien für Sicherheit auf Pod-Ebene

Netzwerkrichtlinien sind Kubernetes-Ressourcen, die steuern, welche Pods miteinander kommunizieren dürfen. Standardmäßig können alle Pods in einem Cluster alle anderen Pods erreichen — Netzwerkrichtlinien stellen eine Firewall auf Pod-Ebene bereit. Aktivieren Sie unter AKS Azure network policy oder Calico, um Richtlinien durchzusetzen. Ein gängiges Muster ist eine default-deny-Richtlinie, die den gesamten Datenverkehr zwischen Pods blockiert, ergänzt durch explizite Erlaubnisrichtlinien für die spezifischen Verbindungen, die Ihre App benötigt.

# 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}}

Schnelltest

Testen Sie Ihr Verständnis der Konzepte von Microsoft Azure Fundamentals (AZ-900) aus dieser Lektion.

Lektionszusammenfassung

In dieser Lektion haben Sie gelernt: AKS ist ein verwalteter Kubernetes-Dienst, bei dem Microsoft die Control Plane betreibt. Helm-Charts paketieren Kubernetes-Anwendungen mit mehreren Ressourcen für wiederholbare Bereitstellungen. Der Cluster Autoscaler fügt abhängig vom Bedarf bei der Pod-Einplanung dynamisch Knoten hinzu oder entfernt sie. Als Nächstes sehen wir uns Trigger und Bindings von Azure Functions an.

Häufig gestellte Fragen

Ist die Lektion „Workloads in AKS bereitstellen“ kostenlos?

Ja — der vollständige Text von „Workloads in AKS bereitstellen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cloud & IT Cert Prep-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cloud & IT Cert Prep-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Workloads in AKS bereitstellen“?

Erstellen Sie einen AKS-Cluster, stellen Sie eine Anwendung mit mehreren Containern mithilfe von kubectl und Helm-Charts bereit und machen Sie sie mit einem Azure-Load-Balancer-Service extern zugängl… Du übst Cloud & IT Cert Prep mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Cloud & IT Cert Prep zu starten?

Keine Vorkenntnisse erforderlich. Cloud & IT Cert Prep auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Workloads in AKS bereitstellen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Cloud & IT Cert Prep-Lektion Code schreiben und ausführen?

Ja. Jede Cloud & IT Cert Prep-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Azure Container Registry
  2. Azure Container Instances
  3. Kubernetes-Konzepte für Azure
  4. Workloads in AKS bereitstellen
← Zurück zu Cloud & IT Cert Prep