Je weet misschien al dat CentOS een Linux-distributie is. Misschien weet je ook dat het een gratis, door de gemeenschap ondersteund computerplatform biedt dat functioneel compatibel is met Red Hat Enterprise Linux (RHEL). Het 'nieuwe' CentOS, dat CentOS Stream wordt genoemd, werkt echter andersom. Functies worden eerst uitgebracht op CentOS Stream en pas daarna op RHEL. Dit betekent dat CentOS Stream vergelijkbaar zal zijn met Fedora. Aangezien de meeste bugs zullen worden gepatcht op Fedora en CentOS Stream voordat ze worden uitgebracht op RHEL, zou RHEL het meest stabiel moeten zijn.
Op dit moment is er nog een 'gewone' CentOS 8 die je kunt downloaden, maar dit zal snel veranderen. CentOS heeft verklaard dat 'de toekomst CentOS Stream is' en heeft de EOL-datum voor CentOS 8 vastgesteld op 31 december 2021.
De officiële website beschrijft Rancher als 'een complete softwarestack voor teams die containers gebruiken'. Rancher pakt de operationele en beveiligingsuitdagingen aan van het beheren van meerdere Kubernetes-clusters op elke infrastructuur, terwijl het DevOps-teams voorziet van geïntegreerde tools voor het uitvoeren van gecontaineriseerde workloads. Het is in feite een tool die een eenvoudige manier biedt om een of meer Kubernetes-clusters op te zetten en die veel functies out of the box biedt, zoals beveiliging, een gecentraliseerde softwarecatalogus, geünificeerd clusterbeheer en nog veel meer. Kortom, Rancher is de software die draait op een Kubernetes-cluster.
Je kunt een Kubernetes-cluster maken met RKE2 (of RKE1), maar dit is geen vereiste. RKE2 (Rancher Kubernetes Engine), ook bekend als RKE Gov(ernment), is in feite een combinatie van RKE1 en K3s.
RKE2 vertrouwt niet op Docker. In plaats daarvan lanceert het besturingsvlak componenten als statische pods, beheerd door het kubelet. De embedded container runtime is ingebouwd. Het onderstaande diagram toont de topologie van een RKE2-cluster.
Meer informatie over de RKE2-architectuur vindt u hier.
Bij het opzetten van nodes heb je de keuze om een server (master) node of een agent (worker) node op te zetten. In beide gevallen wil je dit proces automatiseren met Ansible. Je wilt immers niet elke keer de stappen herhalen als je een nieuwe node opzet.
In deze blogpost zetten we deze architectuur op met RKE2.
Zorg ervoor dat de namen van de node oplosbaar zijn via DNS en voeg DNS entries toe. Op die manier kan elk knooppunt een DNS-opzoeking doen om verbinding te maken met andere knooppunten.
Bijvoorbeeld:
Afhankelijk van het type node, installeer je het rke2-server of rke2-agent pakket met Yum. Zorg ervoor dat je de volgende Yum repositories toevoegt zodat de pakketten geïnstalleerd kunnen worden:
Aangezien we nftables gebruiken, zullen we firewalld uitschakelen en nftables inschakelen.
Als je een standaard DENY beleid gebruikt, moet je nftables regels toevoegen in /etc/nftables/main.nft om het vereiste verkeer toe te staan. De documentatie hiervoor is hier te vinden.
Installeer eerst het rke2-server pakket.
Voeg vervolgens de knooppuntconfiguratie toe aan /etc/rancher/rke2/config.yaml.
Voeg vervolgens extra configuratie toe aan /etc/sysconfig/rke2-server. Als je een proxyserver gebruikt, moet je die in deze stap toevoegen.
Daarnaast moet je Canal instrueren dat je nftables gebruikt, zoals hier is gedocumenteerd. Er moet een bestand /var/lib/rancher/rke2/server/manifests/rke2-canal-config.yaml aangemaakt worden.
Nu kun je de rke2-server starten met de gegeven informatie.
Je kunt nu je kubectl configureren voor gemakkelijke toegang, zoals hier gedocumenteerd.
Volg de voortgang met de volgende commando's:
Zoek en noteer het token ergens veilig. Je hebt dit token nodig om de andere nodes aan het cluster toe te voegen.
Deze stap is sterk afhankelijk van de loadbalanceroplossing die in het datacenter of in de cloud draait. Er moet een DNS-vermelding worden aangemaakt die naar de loadbalancer wijst, bijvoorbeeld server-loadbalancer.example.com Wanneer het verzoek de loadbalancer bereikt, moet deze de verzoeken doorsturen naar het serverknooppunt. Dit zou moeten werken voor TCP-poorten 9345 en 6443. Zorg ervoor dat op dit punt alleen het serverknooppunt dat we in de vorige stap hebben geconfigureerd de verzoeken krijgt. Je kunt hier meer informatie vinden.
Voeg dan de knooppuntconfiguratie toe aan /etc/rancher/rke2/config.yaml.
Voeg vervolgens extra configuratie toe aan /etc/sysconfig/rke2-server. Nogmaals, als je een proxyserver gebruikt, moet je dit hier toevoegen.
Nu kun je de rke2-server starten met de gegeven informatie.
Dat is het! Herhaal deze stappen voor alle extra server nodes.
Voeg alle aangemaakte servernodes toe als doel voor de loadbalancer.
Afgezien van het installeren van een ander yum pakket, is de setup vergelijkbaar met het toevoegen van extra server nodes
Installeer eerst het pakket rke2-agent.
Voeg vervolgens de knooppuntconfiguratie toe aan /etc/rancher/rke2/config.yaml.
Voeg vervolgens extra configuratie toe aan /etc/sysconfig/rke2-agent. Nogmaals, als je een proxyserver gebruikt, moet je dit hier toevoegen.
Nu kun je de rke2-agent starten met de gegeven informatie.
Klaar! Herhaal deze stappen voor alle extra agent nodes.
Nu we een functioneel RKE2-cluster hebben, moet je de Rancher-bronnen aan het cluster toevoegen. Je kunt de meeste informatie hierover vinden in deze handleiding van Rancher. In dit geval installeren we dit met behulp van helm.
Om het eenvoudig te houden, voeren we deze commando's uit op het eerste servernode, omdat kubectl daar al is geconfigureerd. Je kunt ook kubectl en helm op je lokale machine installeren en de kubeconfig naar het cluster wijzen (ervan uitgaande dat het cluster bereikbaar is vanaf je netwerk). Ik adviseer eigenlijk de tweede methode, omdat we geen extra software installeren op de agent node. Om helm te installeren, kun je de stappenhier volgen.
Ik raad je aan om hiervoor de stabiele versie te gebruiken.
De rancher resources worden aangemaakt in deze Kubernetes namespace.
We zullen nu zelfondertekende certificaten gebruiken. De cert-manager tool kan deze automatisch genereren.Opmerking: als je je eigen certificaten meeneemt, is deze stap niet nodig.
Wacht tot de cert-manager pods in een Running status zijn.
Je moet het commando uit de documentatie bijwerken naar je eigen voorkeur.
Controleer vervolgens of alle bronnen zijn aangemaakt.
Als alles goed gaat, is je mooie dashboard beschikbaar op https://rancher.example.com.
En zo installeer je Rancher RKE2 op CentOS Stream 8! Als je vragen hebt, zijn we er om je te helpen. Laat hieronder een reactie achter of neem hier contact met ons op en we nemen zo snel mogelijk contact met je op. En als je geïnteresseerd bent in Kubernetes-diensten, kijk dan wat we voor je kunnen doen!