Red Hat OpenShift Administration (EX280)

 39,00

Leer een Red Hat OpenShift Container Platform beheren. Voorbereiding op het EX280-examen: deployen, schalen en beveiligen van containerworkloads in een enterprise-omgeving.

Artikelnummer: CERTFORGE-EX280 Categorie:

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

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.

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