EX280 OpenShift Cheatsheet: alle oc-commando’s op één pagina
De belangrijkste oc-commando’s en concepten voor het EX280 examen op één pagina. Sla op als referentie tijdens je voorbereiding.
🔐 Inloggen en navigeren
oc login https://api.cluster.example.com:6443 # Inloggen
oc project # Huidig project
oc project mijnproject # Wisselen
oc new-project mijnproject # Nieuw project
oc get projects # Alle projecten
oc get clusterversion # Clusterversie
🖥 Nodebeheer
oc get nodes # Nodes bekijken
oc get nodes -o wide # Met extra info
oc describe node <naam> # Node details
oc adm top nodes # CPU/geheugengebruik
oc adm cordon <naam> # Geen nieuwe pods
oc adm drain <naam> --ignore-daemonsets # Pods verplaatsen
oc adm uncordon <naam> # Weer inschakelen
oc label node <naam> key=value # Label toevoegen
oc adm taint nodes <naam> key=value:NoSchedule # Taint toevoegen
📦 Deployments
oc new-app --image=nginx:latest --name=myapp # Deployen
oc scale deployment/myapp --replicas=3 # Schalen
oc rollout status deployment/myapp # Status
oc rollout undo deployment/myapp # Terugdraaien
oc set image deployment/myapp nginx=nginx:1.25 # Image updaten
oc set env deployment/myapp KEY=value # Env var instellen
oc set resources deployment/myapp \
--limits=cpu=500m,memory=256Mi # Limieten instellen
oc logs <pod> # Logs bekijken
oc logs <pod> --previous # Vorige container
🌐 Netwerken en Routes
oc expose deployment/myapp --port=8080 # Service aanmaken
oc expose service/myapp # Route (HTTP)
oc expose service/myapp --hostname=app.example.com # Met hostname
# TLS Edge terminatie
oc create route edge myroute --service=myapp \
--hostname=app.example.com
# TLS Passthrough (TLS gaat door naar pod)
oc create route passthrough myroute --service=myapp
oc get routes # Routes bekijken
oc get route myapp -o jsonpath='{.spec.host}' # Hostname
TLS-typen: Edge (stop bij router) | Passthrough (door naar pod) | Re-encrypt (router decrypt + herversleutelt)
🔒 Beveiliging en RBAC
# SCC koppelen aan ServiceAccount
oc adm policy add-scc-to-user anyuid -z <sa> -n <ns>
# Welke SCC gebruikt een pod?
oc get pod <naam> -o yaml | grep openshift.io/scc
# RBAC
oc adm policy add-role-to-user admin <user> -n <project>
oc adm policy add-cluster-role-to-user cluster-admin <user>
oc auth can-i get pods --as=<gebruiker>
# Secrets en ConfigMaps
oc create secret generic mysecret --from-literal=password=geheim
oc create configmap myconfig --from-literal=LOG_LEVEL=debug
SCCs: restricted (minste) → anyuid → privileged (meeste rechten)
💾 Opslag
oc get pvc # PVCs bekijken
oc get pv # PVs bekijken
oc get storageclass # StorageClasses
# PVC toevoegen aan deployment
oc set volume deployment/myapp --add --name=data \
--type=pvc --claim-name=mijn-pvc --mount-path=/data
AccessModes: RWO (één node) | ROX (meerdere lezen) | RWX (meerdere lezen+schrijven)
📊 Quota en limieten
# ResourceQuota (totaal per namespace)
oc create quota myquota --hard=cpu=4,memory=8Gi,pods=20
# Quota bekijken
oc describe quota -n mijnproject
🔧 Debugging
oc describe pod <naam> # Pod details + events
oc exec -it <pod> -- bash # Shell in pod
oc cp bestand.txt <pod>:/tmp/ # Bestand kopiëren
oc get events --sort-by=.metadata.creationTimestamp
oc get all -n <namespace> # Alles in namespace
oc debug node/<naam> # Node debuggen
⚡ Examentips
- Controleer altijd met
oc projectin welk project je werkt - Gebruik
oc describebij problemen — Events-sectie toont de fout - Routes zijn OpenShift-specifiek, niet Kubernetes Ingress
- Verificeer elke taak:
oc get podsom te bevestigen dat pods Running zijn - Documentatie beschikbaar tijdens examen — weet waar je snel dingen kunt vinden