⏱ 6 min. lezen OpenShift architectuur

OpenShift-architectuur: wat voegt Red Hat toe aan Kubernetes?

OpenShift is Kubernetes met extra lagen voor beveiliging, netwerk en operationeel beheer. Dit zijn de belangrijkste toevoegingen die elke examenkandidaat moet kennen.

Een veelgemaakte denkfout is dat OpenShift "iets heel anders" is dan Kubernetes. In werkelijkheid is OpenShift Kubernetes als kern, met daarbovenop een aantal lagen die het geschikter maken voor productie in een bedrijfsomgeving.

OPENSHIFT Extra OpenShift-lagen Operators Routes SCC OAuth-server Interne registry Kubernetes (kern) API server · etcd · scheduler · controller manager kubelet · kube-proxy · container runtime OpenShift is Kubernetes + productielagen erbovenop

Operators: applicaties die zichzelf beheren

Een Operator is een stuk software dat operationele kennis (installeren, upgraden, back-uppen) automatiseert via een eigen controller-lus, net zoals Kubernetes zelf pods beheert. OpenShift gebruikt Operators voor bijna alles — van clusteronderdelen tot databases die je zelf installeert via de OperatorHub.

Routes versus Ingress

Waar "kale" Kubernetes Ingress-objecten gebruikt om extern verkeer naar een Service te sturen, heeft OpenShift zijn eigen, oudere en eenvoudigere concept: de Route. Een Route koppelt automatisch een hostnaam aan een Service, inclusief ondersteuning voor TLS-afsluiting zonder dat je een aparte Ingress-controller hoeft te configureren.

Security Context Constraints (SCC)

Dit is een van de grootste verschillen met vanilla Kubernetes. Een SCC bepaalt welke rechten een pod mag hebben: mag hij als root draaien, welke Linux-capabilities zijn toegestaan, welke SELinux-context wordt gebruikt. Standaard is OpenShift veel strenger dan Kubernetes — pods draaien standaard niet als root, wat vaak de reden is dat een container-image die "gewoon werkt" op Kubernetes, op OpenShift eerst aangepast moet worden.

Geïntegreerde OAuth-server en interne registry

OpenShift heeft een ingebouwde OAuth-server voor gebruikersauthenticatie (te koppelen aan LDAP, GitHub, enz.) en een interne container-registry waar images automatisch naartoe kunnen worden gepusht als onderdeel van een build.

Examentip: Als een vraag gaat over "waarom faalt deze pod met een permission-fout op OpenShift maar niet op Kubernetes", denk dan meteen aan SCC.