Fedora CoreOS bekeken: containers makkelijk beheren

Marco den Teuling
0

Fedora CoreOS container inleiding configuratie

Met Fedora CoreOS bouw je een server die slechts één taak heeft: diensten uitvoeren in containers. Geheel volgens het wegwerpprincipe van containers zijn handmatige updates en onderhoud niet nodig. We bekijken deze oplossing.

Als je serverdiensten in containers uitvoert, wil je vooral dat ze onderhoudsvrij zijn en zich zelfstandig updaten. Dat werkt vaak niet bij het onderliggende besturingssysteem, zodat je zelf moet zorgen voor de updates. Fedora’s CoreOS neemt je dat allemaal uit handen.

Het besturingssysteem is bedoeld voor reproduceerbare wegwerp­servers en werkt het systeem volledig automatisch bij. CoreOS is een minimaal Linux-systeem waarin populaire containertools zoals Docker of Podman zorgen voor het starten en beheren van containers. De voor complexe infrastructuren ontwikkelde container-orchestrator Kubernetes maakt geen deel uit van de distributie, maar kan op verzoek geïnstalleerd worden. Na het opstarten werkt CoreOS zelfvoorzienend. Het start de containers op en kan in het beste geval geheel zonder verdere tussenkomst van een beheerder.

Om dat doel te bereiken, neemt Fedora CoreOS meteen meerdere maatregelen die verschillen van de manier waarop conventionele distributies werken. Zo is onder meer niet voorzien in het installeren van softwarepakketten, omdat alle applicaties in containers draaien. Om aanpassingen aan het basissysteem te voorkomen, heeft Fedora CoreOS de volledige /usr-directory als read-only gemount. Bovendien beschermt het security-framework SELinux door zeer strenge toegangsregels tegen potentiële aanvallen.

Zelfstandig CoreOS

CoreOS kun je heel goed gebruiken om je containers op een of meerdere servers te starten zonder dat er veel energie in het besturingssysteem hoeft te worden gestoken. Het doel is dat je reproduceerbare exemplaren in elkaar zet die naar believen kunnen worden gemaakt of vernietigd – precies zoals bij containers gebruikelijk is.

Om die servers zo eenvoudig en reproduceerbaar te maken, gebeurt het configureren via een YAML-bestand. Wanneer het installatiemedium gestart wordt, lanceert ­Fedora CoreOS ­automatisch een tool genaamd Ignition. Die tool haalt een door de beheerder aangemaakt configuratiebestand op, leest dat en stelt het systeem vervolgens in volgens de daarin opgegeven specificaties – inclusief alle containers die erop moeten draaien. De set-up omvat naast het aanmaken van gebruikers­accounts ook het aanmaken van Systemd-units en het partitioneren van de harde schijf.

CoreOS installatie wizard partities XFS

De installatiewizard maakt een boot-partitie aan met het ext4-bestandssysteem, het systeem zelf komt op een partitie met XFS, die Ignition later uitbreidt tot de maximaal mogelijke grootte. Zoals de andere twee partities aangeven, zal Fedora CoreOS zowel op BIOS- als op UEFI-apparaten opstarten.

Bovendien werkt het systeem zichzelf automatisch bij tijdens het gebruik. Fedora CoreOS downloadt dan een actuele snapshot van het systeem en schakelt na een reboot gewoon over naar dat ­nieuwe fundament. Als de update mislukt, start Fedora ­CoreOS automatisch de oude image opnieuw op. Beheerders kunnen de update ook makkelijk terugdraaien in geval van incompatibiliteiten (roll-back). Voor dat ingenieuze updatemechanisme vertrouwen de Fedora-ontwikkelaars op rpm-ostree. Een server van het Fedora-project stelt eerst een bestands­systeem samen, dat vervolgens het clientsysteem en een bestandssysteem-image downloadt en activeert.

Configuratie

De eerste stappen met CoreOS zijn bijzonder eenvoudig te nemen met behulp van de officiële ISO-image. We beschrijven dit verder in het artikel in c’t magazine, uitgave 10. Alle downloads en links kun je vinden via de webpagina die bij dat artikel hoort.

Het Fedora-team levert verschillende images voor virtualisatieoplossingen en cloudsystemen – waaronder AWS, Azure en OpenStack. Hoe je het juiste configuratiebestand aanlevert, hangt af van je omgeving. QEMU-gebruikers slaan het configuratie­bestand bijvoorbeeld op in de virtuele firmware onder de sleutel opt/ com.coreos/config. Meer hierover lees je ook in het artikel in c’t magazine 10.

CoreOS configuratiebestand boot Ignition

Bij grote fouten in het configuratiebestand stopt het bootproces. Dat gebeurt zelfs als Ignition geen bestand kan aanmaken zoals hier.

 


Blijf op de hoogte van de nieuwste informatie over Linux-distributies en container-oplossingen!
Schrijf je in voor de nieuwsbrief:

Ontvang elke week het laatste IT-nieuws, de handigste tips en speciale aanbiedingen.

 

Beperkingen

Je kunt een eenvoudige CoreOS-installatie al implementeren met een eenvoudige container. Als je eenmaal gewend bent aan de manier waarop de Ignition-configuratie werkt, zijn de YAML-configuraties makkelijk op te stellen. Als je bestaande systemen wilt verplaatsen, kom je eveneens niets tekort. Als je met Docker Compose containers op andere platforms hebt gemaakt, kun je die met CoreOS blijven gebruiken. Je hoeft alleen maar docker-compose te installeren. Ook het vrijgeven van de Docker-socket voor internet is geen probleem. Je kunt dus containers op de server starten vanaf je werkcomputer zonder de commandline.

De mogelijkheden van Ignition zijn momenteel beperkt. De tool zelf kan bijvoorbeeld geen netwerkconfiguratie wijzigen. Om dat te doen, moet je de juiste configuratiebestanden opgeven bij de sectie files. Fedora CoreOS en Ignition werken in de praktijk soepel en zonder problemen, en die distributie dient als basis voor RedHat CoreOS. Als je op zoek bent naar een slank Linux-systeem voor containers, moet je zeker een kijkje nemen bij CoreOS. De ontwikkeling en de geplande functies kunnen gevolgd worden op GitHub.

(Informatie afkomstig uit het artikel van Tim Schürmann en Noud van Kruysbergen, c’t magazine 10/2020, p. 108)

Lees uitgebreide achtergrondinfo op je gemak in c't 05/2024

Meer over

Software

Deel dit artikel

Marco den Teuling
Marco den TeulingHad als eerste eigen computer ooit een 16-bit systeem, waar van de 48 kilobyte toch echt niet ‘genoeg voor iedereen’ was. Sleutelt graag aan pc’s, van de hardware tot het uitpluizen van de BIOS-instellingen. Vindt ‘Software as a Service’ een onbedoeld ironische naamgeving.

Lees ook

Dit kun je verwachten als je ChatGPT als hacking-tool wilt gebruiken

Kun je ChatGPT gebruiken als hacking-tool? We neigden naar de duistere kant en onderzochten of de assistentie van een AI van elke scriptkiddie een eli...

Raspberry Pi GPIO pinnen: een overzicht van de aansluitingen

Een kleine Raspberry Pi board is zo volgepakt met alle componenten dat er geen ruimte meer over was om de 40 GPIO pinnen van informatie te voorzien. O...

0 Praat mee
avatar
  Abonneer  
Laat het mij weten wanneer er