Beschrijving
Deze cursus bereidt je volledig voor op het EX280 — Red Hat OpenShift Administration examen. Met realistische oefenvragen, foutenanalyse en uitgebreide uitleg per antwoord studeer je gericht en efficiënt.
Onderwerpen
De cursus behandelt alle examenonderwerpen: OpenShift Container Platform, Kubernetes-objecten, namespace-beheer, netwerk en opslag.
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 EX280?
Het EX280-examen test of je een Red Hat OpenShift Container Platform kunt beheren in een productieomgeving. Je werkt uitsluitend op de commandoregel — geen meerkeuze, maar hands-on taken die je in een live cluster uitvoert.
Studietijd: ~35 uur. Slagingspercentage: 70% van de beschikbare punten.
1. Clusterbeheer
Wat is OpenShift?
Red Hat OpenShift is een enterprise Kubernetes-platform met extra beveiliging, ontwikkelaarstools en beheerinterfaces. Waar Kubernetes de motor is, voegt OpenShift de carrosserie toe: striktere standaardbeveiligingen, een ingebouwde image registry, routes in plaats van Ingress en een robuuste CLI (oc).
Essentiële opdrachten
# Inloggen op een cluster
oc login https://api.cluster.example.com:6443
# Clusterversie bekijken
oc get clusterversion
# Alle nodes tonen
oc get nodes
# Details van een node
oc describe node <naam>
# Node buiten gebruik stellen (geen nieuwe pods)
oc adm cordon <naam>
# Alle pods van een node verplaatsen
oc adm drain <naam> --ignore-daemonsets
# Node weer beschikbaar stellen
oc adm uncordon <naam>
# Resource-gebruik tonen
oc adm top nodes
oc adm top pods -A
Onthoud
- cordon = geen nieuwe pods, bestaande blijven draaien
- drain = cordon + bestaande pods verplaatsen
- uncordon = node weer beschikbaar
- De API server, etcd en scheduler draaien als static pods in
openshift-kube-apiserver
2. Projecten en namespaces
Wat is een Project?
Een Project is een Kubernetes-namespace met OpenShift-uitbreidingen: toegangscontrole, quota en een eigen netwerksegment. Gebruik altijd projecten in plaats van namespaces direct aan te maken.
Essentiële opdrachten
# Nieuw project aanmaken
oc new-project mijnproject --description="Omschrijving"
# Schakelen tussen projecten
oc project mijnproject
# Alle projecten bekijken
oc get projects
# Resource quota instellen
oc create quota myquota
--hard=cpu=4,memory=8Gi,pods=20
-n mijnproject
# Quota-gebruik bekijken
oc describe quota -n mijnproject
# LimitRange instellen (standaard limieten per container)
oc create -f limitrange.yaml
LimitRange — voorbeeld YAML
apiVersion: v1
kind: LimitRange
metadata:
name: standaard-limieten
spec:
limits:
- type: Container
default:
cpu: 500m
memory: 256Mi
defaultRequest:
cpu: 100m
memory: 128Mi
max:
cpu: "2"
memory: 1Gi
Onthoud
- ResourceQuota = totaal gebruik van het hele project
- LimitRange = standaarden en grenzen per individuele container
- Zonder LimitRange kunnen containers onbeperkt resources claimen
3. Deployments en workloads
Deployment versus DeploymentConfig
OpenShift ondersteunt beide. Deployment is de Kubernetes-standaard en de voorkeur in nieuwe installaties. DeploymentConfig is OpenShift-specifiek met extra triggers maar wordt als legacy beschouwd.
Essentiële opdrachten
# Applicatie snel deployen
oc new-app --image=nginx:latest --name=mijnapp
# Schalen
oc scale deployment/mijnapp --replicas=3
# Rollout status bekijken
oc rollout status deployment/mijnapp
# Terugdraaien
oc rollout undo deployment/mijnapp
# Rollout-geschiedenis
oc rollout history deployment/mijnapp
# Environment variabele instellen
oc set env deployment/mijnapp DB_HOST=db.example.com
# Image updaten
oc set image deployment/mijnapp nginx=nginx:1.25
# Resource limits instellen
oc set resources deployment/mijnapp
--limits=cpu=500m,memory=256Mi
--requests=cpu=100m,memory=128Mi
Deployment-strategie
- RollingUpdate (standaard): vervangt pods geleidelijk, geen downtime
- Recreate: stopt alle pods eerst, dan nieuwe — korte downtime maar eenvoudiger
Probes — container gezondheidscontrole
livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 15
periodSeconds: 10
readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 5
periodSeconds: 5
- livenessProbe: container wordt herstart als deze faalt
- readinessProbe: pod ontvangt geen verkeer als deze faalt
4. Netwerken en routes
Services
Een Service geeft een set pods een stabiel IP-adres en DNS-naam. Pods komen en gaan — de Service blijft bereikbaar.
# Service aanmaken voor een deployment
oc expose deployment/mijnapp --port=8080
# Services bekijken
oc get services
# DNS-naam van een service
# Formaat: <service>.<namespace>.svc.cluster.local
Routes
Routes zijn OpenShift-specifiek en maken een service extern bereikbaar via een hostname. Ze werken via de ingebouwde HAProxy Router.
# Route aanmaken (HTTP)
oc expose service/mijnapp
# Route met eigen hostname
oc expose service/mijnapp --hostname=app.example.com
# Route met TLS (Edge terminatie)
oc create route edge mijnroute
--service=mijnapp
--hostname=app.example.com
--cert=app.crt
--key=app.key
# Routes bekijken
oc get routes
# Hostname van een route opvragen
oc get route mijnroute -o jsonpath='{.spec.host}'
TLS-terminatietypen
- Edge: TLS stopt bij de router, daarna HTTP naar de pod (meest gebruikt)
- Passthrough: TLS gaat ongewijzigd door naar de pod
- Re-encrypt: router decrypteert en herversleutelt voor de pod
NetworkPolicy
# Alle inkomende traffic blokkeren (deny-all)
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: deny-all
spec:
podSelector: {}
policyTypes:
- Ingress
5. Persistente opslag
PV en PVC
- PersistentVolume (PV): de fysieke opslagresource, aangemaakt door een admin
- PersistentVolumeClaim (PVC): de aanvraag vanuit een applicatie
- StorageClass: maakt dynamische provisioning mogelijk
# PVC aanmaken
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mijn-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: standard
# PVC in een Deployment gebruiken
volumes:
- name: data
persistentVolumeClaim:
claimName: mijn-pvc
containers:
- name: app
volumeMounts:
- mountPath: /data
name: data
Access modes
- ReadWriteOnce (RWO): één node kan lezen en schrijven
- ReadOnlyMany (ROX): meerdere nodes kunnen lezen
- ReadWriteMany (RWX): meerdere nodes kunnen lezen en schrijven
Essentiële opdrachten
# PVCs bekijken
oc get pvc
# PV-status bekijken
oc get pv
# StorageClasses bekijken
oc get storageclass
6. Beveiliging en RBAC
SecurityContextConstraints (SCC)
SCCs zijn OpenShift-specifiek en bepalen welke beveiligingsprivileges een pod mag aanvragen. Standaard krijgen gewone pods de restricted SCC.
# SCCs bekijken
oc get scc
# Welke SCC gebruikt een pod?
oc get pod <naam> -o yaml | grep openshift.io/scc
# SCC aan een ServiceAccount koppelen
oc adm policy add-scc-to-user anyuid
-z <serviceaccount>
-n <namespace>
RBAC
# Gebruiker admin-rechten geven in een project
oc adm policy add-role-to-user admin
<gebruiker> -n <project>
# Cluster-admin rechten geven
oc adm policy add-cluster-role-to-user
cluster-admin <gebruiker>
# Controleren welke acties een gebruiker mag
oc auth can-i get pods --as=<gebruiker>
# Alle rechten van een gebruiker in een project
oc get rolebindings -n <project>
Secrets en ConfigMaps
# Secret aanmaken
oc create secret generic db-secret
--from-literal=password=geheim123
# Secret als environment variabele gebruiken
oc set env deployment/mijnapp
--from=secret/db-secret
# ConfigMap aanmaken
oc create configmap app-config
--from-literal=LOG_LEVEL=info
--from-file=config.properties
# ConfigMap als volume mounten
oc set volume deployment/mijnapp
--add --name=config
--configmap-name=app-config
--mount-path=/etc/config
7. Operators en image management
Operators
Operators automatiseren complexe applicaties via CustomResourceDefinitions. De Operator Lifecycle Manager (OLM) beheert hun installatie en updates.
# Geïnstalleerde Operators bekijken
oc get csv -A
# Beschikbare Operators bekijken (via OperatorHub)
oc get packagemanifests -n openshift-marketplace
ImageStreams
# Externe image importeren
oc import-image nginx:latest
--from=docker.io/library/nginx:latest
--confirm
# ImageStreams bekijken
oc get imagestreams
# Tags van een ImageStream bekijken
oc describe imagestream nginx
Officiële documentatie
- Red Hat OpenShift Container Platform Documentation
- EX280 Examenpagina (officieel)
- kubectl/oc Cheatsheet (Kubernetes.io)
Tip: het examen is volledig hands-on. Oefen elke opdracht actief in een cluster — lezen alleen is niet voldoende.




Beoordelingen
Er zijn nog geen beoordelingen.