EX280 OpenShift Cheatsheet

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 project in welk project je werkt
  • Gebruik oc describe bij problemen — Events-sectie toont de fout
  • Routes zijn OpenShift-specifiek, niet Kubernetes Ingress
  • Verificeer elke taak: oc get pods om te bevestigen dat pods Running zijn
  • Documentatie beschikbaar tijdens examen — weet waar je snel dingen kunt vinden