Desktop in a Container

Af en toe kan het handig zijn om een volledige grafische desktop omgeving te draaien apart van je normale desktop. Bijvoorbeeld om een zwaar verouderde versie van een browser te gebruiken om tegen oude remote-management kaarten aan kunnen praten die vasthouden aan encryptie-standaarden die door moderne browsers als onveilig worden gezien, en dus niet meer gebruikt kunnen worden.

Hier zou je een virtuele machine voor kunnen gebruiken, maar het kan ook met minder overhead in een container.

Begrens je Gebruikers tot Containers

Als je een systeem hebt waar gebruikers van een afstand op mogen inloggen kan het handig zijn vanuit security of resource optiek om ze te beperken tot wat ze mogen doen. Hier zijn een aantal traditionele mogelijkheden voor, maar tegenwoordig kun je hun sessies ook beperken tot het draaien in een container. Dit heeft een aantal voordelen ten opzichte van traditionele methodes, zo komen bijvoorbeeld alle sessies uit in dezelfde container, en kan het verkrijgen van extra rechten permanent dichtgezet worden.

OpenShift Routes Beveiligen met cert-manager

Wanneer je bezig gaat met SSL certificaten op OpenShift kom je al snel uit bij cert-manager, een operator die certificaten kan laten (genereren en) ondertekenen door een aantal verschillende vormen van Certificate Authorities.

Een nadeel aan cert-manager is dat het niet automatisch certificaten kan genereren voor OpenShift Routes, maar wel voor reguliere Ingress objecten.

Supercronic: Crontabs Voor In Je Containers

Regelmatig terugkerende taken op een container platform kun je op Kubernetes inregelen met een CronJob. Maar als je die taak elke minuut gaat uitvoeren levert dat misschien een belastingspatroon op op je cluster dat ongewenst is, helemaal als de taak veel resources als externe filesystemen nodig heeft.

Nu zou je natuurlijk een traditionele Cron daemon in een container kunnen draaien, maar dan kom je er al snel achter dat deze graag als root draaien, met setgid en setuid permissies, en dat vind een container platform als OpenShift weer minder grappig zonder dat je SecurityContextConstraints met veel rechten gaat uitdelen. Ook zul je een init systeem in je container moeten stoppen omdat anders mogelijke zombie processen niet goed opgeruimd worden, en voor je het weet ben je een half OS in je container aan het stoppen.

Ook als je je taken vaker dan eens per minuut wilt draaien, of als je specifieke scheduling wensen hebt zoals “elke derde dinsdag van September” voldoet een traditionele Cron daemon of een Kubernetes CronJob al snel niet meer.