Aan de slag met CoreOS: Linux op basis van containers

CoreOS is een nieuwkomer in de Linux-wereld en werkt op geheel andere wijze dan de op moment van schrijven gangbare distributies. CoreOS richt zich op gebruikers die alleen met containers willen werken. Dat zorgt ervoor dat CoreOS op een totaal andere manier is ingericht en anders beheerd moet worden: omdat alle applicaties in containers op basis van voorgedefinieerde images zullen draaien, is een packagemanager zoals APT of Yum niet meer noodzakelijk. Bovendien hoef je je systeem niet of slechts voor een heel klein deel zelf te configureren. Alle configuratie moet namelijk gedaan worden in de images die je gaat uitrollen naar containers.

De keuze om alle applicaties in containers te laten draaien is ver doorgetrokken en heeft er zelfs toe geleid dat de map /usr read-only is: hiermee wordt afgedwongen dat je applicaties in containers draait, en niet direct op je besturingssysteem.

Installatie

De installatie van CoreOS verloopt in slechts één stap: het uitrollen van het image van CoreOS. Verdere configuratie is niet noodzakelijk. Er wordt een minimale hoeveelheid software meegeleverd, namelijk alleen software die noodzakelijk is om images uit te rollen en te beheren en de standaard GNU/Linux- en Bash-tools.

CoreOS kan op iedere willekeurige PC geïnstalleerd worden, maar gezien de aard van dit systeem is het waarschijnlijker dat je gebruik wilt maken van een snelle, stabiele verbinding in een datacenter. CoreOS richt zich namelijk op gebruikers die applicaties willen gaan hosten voor gebruik door anderen, niet zozeer applicaties voor eigen gebruik. In deze handleiding maken we daarom gebruik van een VPS van TransIP om CoreOS op te installeren. Ben je plan van om een CoreOS cluster uit te rollen en heb je behoefte aan een complexere setup, met bijvoorbeeld load balancers, distributed storage en Kubernetes, dan adviseren we je contact op te nemen met Cloudlets voor verdere ondersteuning.

De drie stappen om CoreOS te installeren zijn als volgt:

  1. Registreer een VPS bij TransIP. Wil je alleen wat experimenteren met CoreOS? Dan is de BladeVPS PureSSD X1 voldoende. Zullen de applicaties en containers die je gaat uitrollen daadwerkelijk verkeer trekken? Kies dan minimaal voor de BladeVPS PureSSD X4.
  2. Heb je de VPS aangevraagd? Ga dan in het controlpanel van TransIP naar VPS & Colocatie, selecteer vervolgens in de linkerkolom je VPS en kies vervolgens voor Installeer OS:
    CoreOS installeren bij TransIP
  3. Nadat je hebt aangegeven dat je een nieuw besturingssysteem je wilt installeren, zal je een Linux-distributie moeten kiezen. Je hebt veel keuze, maar wij willen gaan voor CoreOS. Je kunt uit drie varianten kiezen: de stable, de alpha en de beta. Is stabiliteit erg belangrijk? Ga dan voor de stable-variant. Wil je de nieuwe van de nieuwste technieken uitproberen? Kies dan voor alpha maar kijk er niet van op als je af en toe een bug tegenkomt. Wil je een tussenweg? dan is de beta prima voor je.
    Kies je CoreOS-versie
  4. Nu je ervoor hebt gekozen CoreOS te installeren, zal je bij je public key moeten invoeren. Om te veiligheid te verhogen, zal je in in ieder geval wanneer je de eerste keer inlogt niet voldoende hebben aan een wachtwoord. Je hebt een public key en een private key nodig. Die kan je bijvoorbeeld aanmaken met het programma PuttyGen. Download PuttyGen, start het programma op en kies voor Generate. Sla de private en de public key vervolgens op en bewaar ze goed!
    putty-key-generator
  5. Het bestand met de public key moet je nu openen en de inhoud moet gekopieerd worden naar het TransIP-panel. Als je dat hebt gedaan, klik je op Gebruik public key:
    transip-installeer-os-public-key
  6. Na het invoeren van de public key zal de installatie gestart worden. Binnen enkele minuten zal dit gereed zijn. Daarna kunnen we aan de slag!

Inloggen en CoreOS inrichten

Inloggen met Putty of SSH

Als de installatie succesvol is volbracht, dan zal je moeten inloggen met SSH (voor Mac/Linux-gebruikers) of Putty (als je Windows gebruikt). Zoals bij bovenstaande stappen al vermeld, zal je gebruik moeten maken van de public- en private keys die je hebt aangemaakt. Maak je gebruik van Putty om een SSH-verbinding tot stand te brengen? Dan kan je je eerder aangemaakte private key als volgt inladen:

coreos-putty-private-key

Maak je gebruik van Linux of Mac OS X waardoor je de mogelijkheid hebt om direct met het commando ssh te werken? Dan kan je inloggen door vanaf de terminal onderstaande commando in te geven:

ssh -l core ip_adres_van_server

Heb je bovenstaande gedaan en ben je verbonden met je server? Dan zal je een gebruikersnaam moeten opgeven. De gebruiker waarmee je direct na de installatie dient in te loggen is core. Direct na het invoeren van de gebruikersnaam zal je ingelogd worden. Een wachtwoord is niet nodig omdat je door inlogt met de private key die bij de public key hoort die je eerder hebt ingevuld tijdens de installatie.

Heb je tijdens het aanmaken van de keys een passphrase opgegeven? Dan zal je deze moeten ingeven na het invoeren van de gebruikersnaam core.

Je systeem inrichten

Configuratie

Nu je CoreOS hebt geïnstalleerd en ingelogd bent, wil je natuurlijk aan de slag. In vergelijking met andere distributies zijn de mogelijkheden om aanvullende configuratie te doen beperkt, maar de noodzakelijke zaken als netwerkconfiguratie, het instellen van je hostname het aanmaken van gebruikers, etc is uiteraard gewoon mogelijk.

CoreOS maakt gebruik van cloud-init, een set scripts waarmee alle instellingen aan je cloud-besturingssysteem doorgegeven kunnen worden. Dit systeem wordt niet alleen door CoreOS gebruikt, maar ook door bijvoorbeeld Atomic Project. Het is de standaard in de wereld van de Cloud Servers en zorgt ervoor dat je op basis van één configuratiebestand je hele systeem kunt inrichten. Handig als je meerdere servers in een cloudopzet wilt draaien.

  1. Het configuratiebestand dien je zelf te maken op basis van de paramaters die je kunt vinden op deze pagina van CoreOS. Heb je alle paramaters die je wilt meegeven overgenomen en naar wens aangepast. Dan kan je het configuratiebestand inladen. Heb je een tekstbestand met je gewenste configuratie aangemaakt? Check ‘m dan eerst op geldigheid via de validator van CoreOS.
  2. Het configuratiebestand inladen doe je met onderstaande commando, waarbij je het pad en de bestandsnaam uiteraard aan je situatie aanpast:

    coreos-cloudinit –from-file=/home/core/cloud-config.yaml

Aan de slag

Alles gelukt met de configuratie? Dan is je systeem nu klaar voor verder gebruik. Mooi natuurlijk, maar hoe nu verder, zonder packagemanager en met een filesystem dat grotendeels read-only is? CoreOS is uitgerust met een aantal tools waarmee je direct aan de slag kunt om je images en containers te beheren:

  • Docker – beheer je containers met docker
  • rkt – een andere tool waarmee je containers kunt beheren, vergelijkbaar met docker
  • fleet –
  • etcd – een tool die de dataopslag van je containers verzorgt. Het is erg belangrijk dat je je hierin verdiept als je serieus met containers aan de slag wil. Containers zijn namelijk niet bedoelt om data in op te slaan, dus de opslag van je data zal je bijvoorbeeld met etcd moeten regelen.

To do:

  • Uitleg over hoe docker-compose te installeren