Cloud & IT Cert Prep · Les

Workloads implementeren op AKS

Maak een AKS-cluster, implementeer een applicatie met meerdere containers met kubectl en Helm-charts en maak deze extern toegankelijk met een Azure Load Balancer-service.

Les 4 van 413 stappen

Workloads implementeren op AKS is een gratis Cloud & IT Cert Prep-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Cloud & IT Cert Prep. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Cloud & IT Cert Prep bevat in totaal 4 lessen.

Wat is Azure Kubernetes Service?

Azure Kubernetes Service (AKS) is een beheerde Kubernetes-service waarbij Microsoft het control plane (API-server, etcd, scheduler) zonder extra kosten beheert en onderhoudt. Je betaalt alleen voor de worker nodes (VM's). AKS verzorgt upgrades van Kubernetes-versies, patches voor het besturingssysteem van nodes, het schalen van het control plane en integratie met Azure-netwerken, opslag en identiteitsbeheer. Hierdoor neemt de operationele overhead van Kubernetes in productie aanzienlijk af.

Een AKS-cluster maken

Maak een AKS-cluster met az aks create en geef het aantal nodes, de VM-grootte en de netwerkopties op. AKS maakt automatisch een node-resourcegroep met daarin de VM's, beheerde schijven, NIC's en load balancers. De aanbevolen netwerkmodus is Azure CNI — elke pod krijgt een echt VNet-IP-adres, waardoor directe verbindingen met andere Azure-services mogelijk zijn zonder NAT.

# 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

Nodepools

AKS-clusters kunnen meerdere nodepools hebben — groepen VM's met dezelfde configuratie. De systeem-nodepool voert kritieke Kubernetes-systeemcomponenten uit (pods in kube-system). Gebruikers-nodepools voeren je applicatieworkloads uit. Met afzonderlijke pools kun je verschillende VM-SKU's combineren — een pool voor algemeen gebruik voor webapps en een GPU-pool voor ML-workloads — en elke pool onafhankelijk schalen.

# 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

Een applicatie met meerdere containers implementeren

Implementeer een applicatie met meerdere lagen op AKS door afzonderlijke Kubernetes-manifestbestanden voor elke laag te schrijven en deze toe te passen met kubectl apply. Een typische implementatie bevat een Deployment voor de weblaag, een Deployment voor de API-laag, Services om deze te verbinden, een ConfigMap voor de omgevingsconfiguratie en een Ingress-resource om de app extern via één hostnaam beschikbaar te maken.

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

Een Ingress-resource definieert HTTP-routeringsregels die hostnamen en URL-paden aan backendservices koppelen. In tegenstelling tot een LoadBalancer-service (één extern IP-adres per service) verwerkt één Ingress-controller al het externe HTTP-verkeer en routeert deze controller het verkeer op basis van regels. Gebruik in AKS de NGINX Ingress Controller of de Application Gateway Ingress Controller (AGIC) om TLS te beëindigen en verkeer naar meerdere services te routeren.

# 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 voor het verpakken van applicaties

Helm is de pakketbeheerder voor Kubernetes. Een chart bundelt alle Kubernetes-manifesten voor een applicatie (Deployments, Services, Ingress, ConfigMaps) in één versieerbaar en parametriseerbaar pakket. Met helm install implementeer je een chart met omgevingsspecifieke waarden. De Helm-repository op Artifact Hub bevat duizenden vooraf gebouwde charts voor veelgebruikte infrastructuur (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 en terugdraaien

Werk een Deployment bij door de tag van de containerimage te wijzigen — Kubernetes voert een rolling update uit, waarbij nieuwe pods met de bijgewerkte image worden gemaakt en oude pods geleidelijk worden beëindigd, zodat de applicatie voortdurend beschikbaar blijft. Als de nieuwe versie niet goed werkt, kun je deze direct terugdraaien naar de vorige revisie met kubectl rollout undo. Kubernetes bewaart een configureerbare revisiegeschiedenis voor elke Deployment.

# 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

De Cluster Autoscaler voegt automatisch worker nodes toe aan of verwijdert deze uit een AKS-nodepool, op basis van wachtende podplanning en het gebruik van nodes. Wanneer pods niet kunnen worden gepland omdat alle nodes vol zijn, maakt de Cluster Autoscaler nieuwe nodes aan. Wanneer nodes onderbenut zijn en pods kunnen worden geconsolideerd, leegt en verwijdert de autoscaler nodes. Dit vormt een aanvulling op de Horizontal Pod Autoscaler — HPA schaalt pods en de Cluster Autoscaler schaalt nodes.

# 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 monitoren met Azure Monitor

Schakel Azure Monitor Container Insights in om logboeken en metrische gegevens uit je AKS-cluster te verzamelen zonder monitoringtools van derden te implementeren. Container Insights biedt vooraf gebouwde dashboards voor de clusterstatus, CPU- en geheugengebruik van nodes en pods, containerlogboeken en live streaming van pods. De service integreert met Prometheus voor het verzamelen van aangepaste metrische gegevens en maakt het mogelijk alle gegevens met KQL in Log Analytics op te vragen.

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

Integreer AKS met Microsoft Entra ID om Azure AD-gebruikers en -groepen te gebruiken voor Kubernetes-RBAC. In plaats van afzonderlijke Kubernetes-gebruikersaccounts te beheren, wijs je ClusterRole- of Role-bindingen toe aan object-ID's van Entra ID. Wanneer een ontwikkelaar kubectl uitvoert, valideert AKS het Entra ID-token van die ontwikkelaar. Dit biedt centraal identiteitsbeheer en integreert met beleid voor voorwaardelijke toegang en 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

Netwerkbeleid voor beveiliging op podniveau

Netwerkbeleid bestaat uit Kubernetes-resources die bepalen welke pods met elkaar mogen communiceren. Standaard kunnen alle pods in een cluster alle andere pods bereiken — netwerkbeleid biedt een firewall op podniveau. Schakel op AKS Azure-netwerkbeleid of Calico in om beleid af te dwingen. Een veelgebruikt patroon is een default-deny-beleid dat al het verkeer tussen pods blokkeert, gevolgd door expliciete toestaan-beleidsregels voor de specifieke paden die je app nodig heeft.

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

Korte controle

Test je begrip van de concepten van Microsoft Azure Fundamentals (AZ-900) uit deze les.

Samenvatting van de les

In deze les heb je geleerd dat AKS een beheerde Kubernetes-service is waarbij Microsoft het control plane beheert, dat Helm-charts Kubernetes-applicaties met meerdere resources verpakken voor herhaalbare implementatie, en dat de Cluster Autoscaler dynamisch nodes toevoegt en verwijdert op basis van de vraag naar podplanning. Hierna bekijken we triggers en bindings van Azure Functions.

Gratis beginnen

Leer Cloud & IT Cert Prep met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
150
Lessen
600

Veelgestelde vragen

Is de les “Workloads implementeren op AKS” gratis?

Ja — de volledige tekst van “Workloads implementeren op AKS” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Cloud & IT Cert Prep wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Cloud & IT Cert Prep bevat in totaal 4 lessen.

Wat leer ik in “Workloads implementeren op AKS”?

Maak een AKS-cluster, implementeer een applicatie met meerdere containers met kubectl en Helm-charts en maak deze extern toegankelijk met een Azure Load Balancer-service. Je oefent met Cloud & IT Cert Prep door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Cloud & IT Cert Prep te beginnen?

Ervaring vooraf is niet nodig. Cloud & IT Cert Prep op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “Workloads implementeren op AKS”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Cloud & IT Cert Prep?

Ja. Elke les over Cloud & IT Cert Prep bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Azure Container Registry
  2. Azure Container Instances
  3. Kubernetes-concepten voor Azure
  4. Workloads implementeren op AKS
← Terug naar Cloud & IT Cert Prep