Haven

Techniek

Hoe het werkt en hoe je ermee aan de slag kunt gaan.

Red Hat OpenShift Container Platform op AWS

Referentie Implementatie: Haven op Red Hat OCP op AWS

Deze referentie implementatie installeert een OpenShift cluster op AWS. Het resulterende cluster wordt door uzelf beheerd.

Basis installatie

Deze basis installatie gaat uit van OpenShift 4.7 op AWS met OpenShift Container Storage 4.6.4 en is geschreven in mei 2021. Bij gebruik lang na deze tijd kunnen screenshots en versienummers afwijken. De volledige documentatie voor het installeren van een OpenShift cluster op AWS staat op de Red Hat website^1.

Stap 1: Download de OpenShift installer vanaf cloud.redhat.com en pak het bestand uit naar de lokale schijf. Download ook de OpenShift command-line tools van die pagina: hierin zit het oc commando dat we later zullen gebruiken.

Stap 2a: Om een cluster met de standaard instellingen aan te maken, voer het volgende commando uit. Het installatiebestand vraagt om een AWS Access Key ID en een AWS Secret Access Key. Deze kunnen worden aangemaakt via IAM in de AWS Console^2:

./openshift-install create cluster

Stap 2b: Om een cluster aan te maken met aangepaste instellingen, voer het volgende commando uit. Ook hier vraagt het installatie bestand om de informatie uit stap 2. Dit commando genereert een install-config.yaml bestand, dat bijvoorbeeld aangepast kan worden om bijvoorbeeld workers uit te rollen met een grotere maat, of een groter aantal.

./openshift-install create install-config

Na de aanpassing van het install-config.yaml bestand, voert u het installatie bestand nogmaals uit (er vanuit gaande dat install-config.yaml in dezelfde directory staat als de installer):

./openshift-install create cluster --dir=.

Onafhankelijk van of u stap 4a of 4b gevolgd hebt, duurt de installatie circa 45 minuten. Daarna hebt u een werkend OpenShift cluster, dat al voor het grootste deel voldoet aan Haven.

Volledige Haven compliancy

Om volledig compliant te zijn, heeft het OpenShift cluster nog twee aanpassingen nodig: er moet een log aggregator worden geïnstalleerd, en er moet RWX storage beschikbaar worden gemaakt.

RWX Storage

Om RWX storage op een gesupporteerde manier te kunnen aanbieden op AWS, maken we gebruik van OpenShift Data Foundations (vroeger "OpenShift Container Storage"). Dit zorgt voor optimale performance en optimaal gemak bij het aanbieden van block, file en object storage.

Om een klein ODF cluster te maken, hebben we drie nodes op AWS nodig die we kunnen voorzien van de juiste software. Deze nodes draaien binnen het OpenShift cluster, en worden aangemaakt en gemanaged als MachineSets. Dit betekent dat OpenShift de life cycle van de nodes en de daarop draaiende software kan beheren.

Hier staat een voorbeeld template voor een machineset. Uitgebreide informatie over het aanmaken van een machineset staat in de OpenShift documentatie.

De voorbeeld machineset gebruikt eu-west-3 (Parijs) en rolt in eu-west-3a, eu-west-3b en eu-west-3c een machine uit, drie in totaal. De template dient te worden aangepast als er in een andere region wordt uitgerold. Ook moet er in dit template een CLUSTERID worden ingevuld en een ID van een AMI. Deze informatie kan uit een bestaande machineset in het cluster worden gehaald.

Na het aanpassen van het machineset.yaml bestand, passen we het als volgt toe:

oc create -f machineset.yaml

Nadat de drie machinesets zijn aangemaakt, en er drie machines zijn aangemaakt, installeren we de storage operator. Hiervoor gaan we naar de OperatorHub in de OpenShift GUI, en zoeken we op openshift container storage:

de openshift container storage operator zoeken

Klik op de operator, en vervolgens op Install:

starten met de installatie

Zorg dat de parameters staan zoals op het screenshot hieronder, en klik nogmaal op Install. Dit installeert de storage operator.

het installeren van de operator

Na het installeren van de storage operator, hoeven we alleen nog het daadwerkelijke storage cluster aan te maken. Klik in onderstaand scherm op View operator en vervolgens op Create instance op het kaartje waarop OCS Storage Cluster staat:

installatie van de operator is klaar

Voor ons "aan de slag" vullen we op de volgende pagina in dat we gp2 onderliggende storage willen gebruiken, en geven een capaciteit aan. De operator zorgt zelf voor het aanmaken van de onderliggende storage.

configureren van een storage cluster

Tot slot vinken we de drie nodes aan die we aangemaakt hebben met de machineset hierboven. De verdere installatie loopt vanaf hier automatisch. Na de installatie zijn nieuwe storage classes beschikbaar vanuit OpenShift Container Storage: ocs-storagecluster-cephfs, een file system based oplossing, met RWX mogelijkheden, en ocs-storagecluster-ceph-rbd, een block storage oplossing met high availability en replicatie.

Als laatste stap configureren we ocs-storagecluster-ceph-rbd als standaard storage:

oc patch storageclass gp2 -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'

oc patch storageclass ocs-storagecluster-ceph-rbd -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

ocs als default storage class

De volledige documentatie van OpenShift Data Foundations is hier te vinden.

Log aggregator

Red Hat OpenShift wordt geleverd met geïntegreerde logging stack, maar die wordt niet automatisch geïnstalleerd om gebruikers de mogelijkheid te geven met een andere logging stack te werken.

In deze referentie implementatie installeren we de standaard logging stack achteraf, om compliancy met Haven te bereiken.

Om de logging stack te installeren, volgen we de handleiding.

Hierin lezen we dat we eerst de ElasticSearch operator op het cluster moeten installeren, en vervolgens de cluster-logging operator.

Vervolgens creëren we een instance ClusterLogging. De verdere installatie van Fluentd, ElasticSearch en het Kibana dashboard gaat vanzelf. Na deze installatie is er een log aggregator beschikbaar, compleet met zoekmachine en dashboard.

Onderhoud

OpenShift is gebaseerd op zogenaamde operators[^3]. Heel kort gezegd zijn operators stukjes software die in staat zijn om een ander stuk software te beheren. Door gebruik van operators is OpenShift in staat om een groot deel van zijn eigen onderhoud te doen.

Als er een update voor een OpenShift cluster beschikbaar is, is dat zichtbaar in de OpenShift console. Updates kunnen op een geschikt moment door een druk op de knop worden geinstalleerd. Als een OpenShift update wordt geinstalleerd, worden ook de onderliggende VMs automatisch geupdatet.

Bovenstaande geldt zowel voor updates tussen minor releases (bijvoorbeeld van 4.6.23 naar 4.6.24) als voor updates tussen major releases (bijvoorbeeld van 4.6.24 naar 4.7.1).

Bij het installeren van additionele operators (zie hieronder) kan worden aangegeven of de operators zichzelf automatisch mogen updaten, of dat updates handmatig geinitieerd moeten worden. De keuze voor automatische of handmatige updates hangt af van verschillende keuzes die buiten de scope van dit document vallen.

Vervolgstappen

Ook software die op OpenShift draait, wordt vaak beheerd door een operator. Vanuit de ingebouwde OperatorHub kan additionele software worden geinstalleerd, zoals bijvoorbeeld een Kafka cluster of serverless functionaliteit. Ook veel software van derden wordt via de ingebouwde OperatorHub op OpenShift aangeboden, zoals geclusterde PostgreSQL databases, API gateways, en monitoring software.

Ga voor de OperatorHub in het menu aan de linkerzijde naar Operators -> OperatorHub.

Verder lezen

[^3]: Zie ook: https://www.redhat.com/en/topics/containers/what-is-a-kubernetes-operator

Aan de slag met Haven?

In onze technische documentatie wordt de standaard toegelicht en beschreven hoe u Haven kunt installeren op uw huidige IT infrastructuur. Bovendien hebben we een handreiking programma van eisen beschikbaar gesteld om het inkopen van Haven te vereenvoudigen. Of neem contact met ons op, we helpen u graag op weg!