Certified Kubernetes Administrator (CKA)

 39,00

De CKA-certificering valideert je vaardigheden als Kubernetes-clusterbeheerder. Leer clusters installeren, upgraden, beveiligen en troubleshooten in productieomgevingen.

Artikelnummer: CERTFORGE-CKA Categorie:

Beschrijving

Deze cursus bereidt je volledig voor op het CKA — Certified Kubernetes Administrator examen. Met realistische oefenvragen, foutenanalyse en uitgebreide uitleg per antwoord studeer je gericht en efficiënt.

Onderwerpen

De cursus behandelt alle examenonderwerpen: Clusterarchitectuur, workloads, netwerken, opslag, beveiliging en probleemoplossing.

Wat zit er in het pakket?

  • 60 realistische oefenvragen met foutenanalyse
  • Uitgebreide uitleg bij elk antwoord
  • 180 dagen toegang
  • Voortgangstracking per sessie
  • BTW-factuur op aanvraag

Wat leer je in CKA?

Het CKA-examen test of je een Kubernetes-cluster kunt installeren, configureren en beheren. Je werkt 2 uur in meerdere live clusters. Naast applicatiebeheer (zoals CKAD) ligt de nadruk op clusterinfrastructuur, beveiliging en probleemoplossing.

Studietijd: ~38 uur. Slagingspercentage: 66% van de beschikbare punten.


1. Clusterarchitectuur

Componenten

  • API Server: het enige toegangspunt voor alle cluster-operaties
  • etcd: gedistribueerde key-value store voor alle clusterdata
  • Scheduler: plaatst pods op nodes op basis van resources en regels
  • Controller Manager: beheert controllers (ReplicaSet, Deployment, etc.)
  • kubelet: draait op elke node, beheert pods
  • kube-proxy: beheert netwerkregelsets voor Services
  • CoreDNS: service-discovery via DNS

Static pods

# Static pod manifesten staan op de node zelf
ls /etc/kubernetes/manifests/
# kube-apiserver.yaml, kube-controller-manager.yaml, etc.

# kubelet beheert ze direct — geen API server nodig
# Wijzigingen in de bestanden worden automatisch opgepikt

2. RBAC — toegangsbeheer

# Role (namespace-gebonden)
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: pod-lezer
  namespace: productie
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "list", "watch"]

---
# RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: alice-pod-lezer
  namespace: productie
subjects:
- kind: User
  name: alice
roleRef:
  kind: Role
  name: pod-lezer
  apiGroup: rbac.authorization.k8s.io
# ClusterRole + ClusterRoleBinding
kubectl create clusterrole node-lezer 
  --verb=get,list,watch 
  --resource=nodes

kubectl create clusterrolebinding alice-nodes 
  --clusterrole=node-lezer 
  --user=alice

# Toegang controleren
kubectl auth can-i get pods --as=alice -n productie
kubectl auth can-i get nodes --as=alice

ServiceAccounts

# ServiceAccount aanmaken
kubectl create serviceaccount mijn-sa -n mijnns

# Token genereren
kubectl create token mijn-sa

# ServiceAccount aan pod koppelen
spec:
  serviceAccountName: mijn-sa

3. etcd-beheer

# Backup maken (voer uit op de control plane node)
ETCDCTL_API=3 etcdctl snapshot save /opt/backup/etcd.db 
  --endpoints=https://127.0.0.1:2379 
  --cacert=/etc/kubernetes/pki/etcd/ca.crt 
  --cert=/etc/kubernetes/pki/etcd/server.crt 
  --key=/etc/kubernetes/pki/etcd/server.key

# Snapshot verifiëren
ETCDCTL_API=3 etcdctl snapshot status /opt/backup/etcd.db

# Herstellen vanuit backup
ETCDCTL_API=3 etcdctl snapshot restore /opt/backup/etcd.db 
  --data-dir=/var/lib/etcd-herstel

# Vervolgens: update etcd.yaml in /etc/kubernetes/manifests/
# zodat --data-dir wijst naar /var/lib/etcd-herstel

4. Nodebeheer

# Node voor onderhoud klaarzetten
kubectl cordon node01          # geen nieuwe pods
kubectl drain node01 
  --ignore-daemonsets 
  --delete-emptydir-data       # pods verplaatsen

# Na onderhoud
kubectl uncordon node01

# Labels
kubectl label node node01 disktype=ssd
kubectl label node node01 disktype-   # verwijderen

# Taints
kubectl taint nodes node01 key=waarde:NoSchedule
kubectl taint nodes node01 key=waarde:NoSchedule-  # verwijderen

# Toleration in pod-spec
tolerations:
- key: "key"
  operator: "Equal"
  value: "waarde"
  effect: "NoSchedule"

Nodeaffinity

spec:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: disktype
            operator: In
            values: [ssd]

5. Opslag

# StorageClass (dynamische provisioning)
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: snel
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer

# PersistentVolume (handmatig)
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-data
spec:
  capacity:
    storage: 10Gi
  accessModes: [ReadWriteOnce]
  hostPath:
    path: /mnt/data

# PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mijn-pvc
spec:
  accessModes: [ReadWriteOnce]
  resources:
    requests:
      storage: 5Gi

6. Netwerken

# Services
kubectl expose deployment myapp --port=80

# DNS testen vanuit een pod
kubectl run test --image=busybox --rm -it -- nslookup myapp

# Volledig DNS-patroon
# <service>.<namespace>.svc.cluster.local

# Ingress
kubectl create ingress myapp 
  --rule="app.example.com/=myapp:80"

# NetworkPolicy — alle inkomende traffic blokkeren
kubectl apply -f - <<EOF
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: deny-all
  namespace: mijnns
spec:
  podSelector: {}
  policyTypes: [Ingress]
EOF

7. Certificaten en beveiliging

# Certificaatvervaldatums controleren
kubeadm certs check-expiration

# Certificaten vernieuwen
kubeadm certs renew all

# kubeconfig voor nieuwe gebruiker
kubectl config set-cluster mijn-cluster 
  --server=https://api.cluster.example.com:6443 
  --certificate-authority=/etc/kubernetes/pki/ca.crt

kubectl config set-credentials alice 
  --client-certificate=alice.crt 
  --client-key=alice.key

kubectl config set-context alice@mijn-cluster 
  --cluster=mijn-cluster 
  --user=alice

kubectl config use-context alice@mijn-cluster

8. Troubleshooting

# Pod debug
kubectl describe pod <naam>         # events en status
kubectl logs <naam>                 # container logs
kubectl logs <naam> --previous      # logs van vorige instantie
kubectl exec -it <naam> -- sh       # interactieve shell

# Node debug
kubectl describe node <naam>        # capaciteit en events
kubectl top nodes                   # resource-gebruik
ssh node01
systemctl status kubelet
journalctl -u kubelet -f            # kubelet logs

# Cluster events
kubectl get events --sort-by=.metadata.creationTimestamp -A

# API server debug
kubectl cluster-info
kubectl get componentstatuses

Officiële documentatie

Tip: oefen het herstellen van een kapotte cluster. Op het examen zijn er altijd troubleshooting-taken waarbij de kubelet of etcd niet draait.

Beoordelingen

Er zijn nog geen beoordelingen.

Enkel ingelogde klanten die dit product gekocht hebben, kunnen een beoordeling schrijven.