30 augustus 2021
29 april 2026
Leestijd 7 min
Rancher RKE2 installeren op CentOS Stream 8
<span id="hs_cos_wrapper_name" class="hs_cos_wrapper hs_cos_wrapper_meta_field hs_cos_wrapper_type_text" style="" data-hs-cos-general-type="meta_field" data-hs-cos-type="text" >Rancher RKE2 installeren op CentOS Stream 8</span>
Share this via:

Wat is CentOS 8 Stream?

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.

Wat is Rancher?

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.

Wat is RKE2?

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.

  • Van K3s erft het de bruikbaarheid, het bedieningsgemak en het implementatiemodel.
  • Van RKE1 erft het de nauwe afstemming met upstream Kubernetes.

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.

RKE2 Rancher

Meer informatie over de RKE2-architectuur vindt u hier.

Knooppunten opzetten

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.

setting up nodes

In deze blogpost zetten we deze architectuur op met RKE2.

architecture using 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:

server1.example.com IN A 10.100.100.1 server2.example.com IN A 10.100.100.2 server3.example.com IN A 10.100.100.3 agent1.example.com IN A 10.100.100.11 agent2.example.com IN A 10.100.100.12 agent3.example.com IN A 10.100.100.13

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:

[rancher-rke2-common-latest] name=Rancher RKE2 Common Latest baseurl=https://rpm.rancher.io/rke2/latest/common/centos/8/noarch enabled=1 gpgcheck=1 gpgkey=https://rpm.rancher.io/public.key [rancher-rke2-1-18-latest] name=Rancher RKE2 1.18 Latest baseurl=https://rpm.rancher.io/rke2/latest/1.18/centos/8/x86_64 enabled=1 gpgcheck=1 gpgkey=https://rpm.rancher.io/public.key
Je kunt de documentatie hier valideren voor bekende problemen en hier voor geavanceerde opties.

Aangezien we nftables gebruiken, zullen we firewalld uitschakelen en nftables inschakelen.

systemctl stop firewalld systemctl disable firewalld systemctl start nftables systemctl enable nftables

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.

you will have to add nftables rules in /etc/nftables/main.nft

De eerste servernode instellen

Ik ga hier de stappen uitleggen om server nodes in te stellen. Normaal gesproken automatiseer je dit met een software provisioning tool zoals Ansible, zoals we hierboven hebben genoemd.

Installeer eerst het rke2-server pakket.

yum installeer rke2-server

Voeg vervolgens de knooppuntconfiguratie toe aan /etc/rancher/rke2/config.yaml.

write-kubeconfig-mode: "0644" tls-san: - "example.com" node-label: - "nodetype=master" cluster-cidr: "10.42.0.0/16" service-cidr: "10.43.0.0/16" cluster-dns: "10.43.0.10" cluster-domein: "example.com".

Voeg vervolgens extra configuratie toe aan /etc/sysconfig/rke2-server. Als je een proxyserver gebruikt, moet je die in deze stap toevoegen.

HOME=/root RKE2_SELINUX=true http_proxy=http://proxy.example.com:80/ https_proxy=http://proxy.example.com:80/ ftp_proxy=http://proxy.example.com:80/ no_proxy=.example.com,169.254.169.254,10.0.0/24

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.


2 3 4 5 6 7 8 9 apiVersion: helm.cattle.io/v1 kind: HelmChartConfig metadata: name: rke2-canal namespace: kube-system spec: valuesContent: |- calico: felixIptablesBackend: "nft

Nu kun je de rke2-server starten met de gegeven informatie.

systemctl start rke2-server systemctl enable rke2-server

Je kunt nu je kubectl configureren voor gemakkelijke toegang, zoals hier gedocumenteerd.

export PATH=$PATH:/var/lib/rancher/rke2/bin export KUBECONFIG=/etc/rancher/rke2/rke2.yaml

Volg de voortgang met de volgende commando's:

kubectl get nodes kubectl get pods -A

Zoek en noteer het token ergens veilig. Je hebt dit token nodig om de andere nodes aan het cluster toe te voegen.

cat /var/lib/rancher/rke2/server/node-token

De loadbalancer instellen voor het eerste serverknooppunt

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.

Setting up the load balancer in front of the first server node

Extra serverknooppunten instellen

Zoals in de High Availability documentatie staat, moet je in totaal een oneven aantal server nodes instellen. Dit is nodig om het quorum te handhaven zodat het cluster het zich kan veroorloven om de verbinding met een van de nodes te verliezen zonder dat dit invloed heeft op de functionaliteit van het cluster. Om hoge beschikbaarheid te bereiken, moet je minstens 3 server nodes instellen.
Aangezien de meeste informatie al op het eerste knooppunt staat, hoeft dit knooppunt minder geconfigureerd te worden.
Installeer eerst het rke2-server pakket.
yum installeer rke2-server

Voeg dan de knooppuntconfiguratie toe aan /etc/rancher/rke2/config.yaml.

server: https://server-loadbalancer.example.com:9345 token: [token uit /var/lib/rancher/rke2/server/node-token op agent1] write-kubeconfig-mode: "0644" tls-san: - "example.com".

Voeg vervolgens extra configuratie toe aan /etc/sysconfig/rke2-server. Nogmaals, als je een proxyserver gebruikt, moet je dit hier toevoegen.

HOME=/root RKE2_SELINUX=true http_proxy=http://proxy.example.com:80/ https_proxy=http://proxy.example.com:80/ ftp_proxy=http://proxy.example.com:80/ no_proxy=.example.com,169.254.169.254,10.0.0/24

Nu kun je de rke2-server starten met de gegeven informatie.

systemctl start rke2-server systemctl enable rke2-server

Dat is het! Herhaal deze stappen voor alle extra server nodes.

De andere knooppunten toevoegen aan de loadbalancer voor de serverknooppunten

Voeg alle aangemaakte servernodes toe als doel voor de loadbalancer.

Adding nodes to the load balancer in front of the server nodes

Agent Nodes instellen

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.

yum installeer rke2-agent

Voeg vervolgens de knooppuntconfiguratie toe aan /etc/rancher/rke2/config.yaml.

server: https://server-loadbalancer.example.com:9345 token: [token uit /var/lib/rancher/rke2/server/node-token op agent1] write-kubeconfig-mode: "0644" tls-san: - "example.com".

Voeg vervolgens extra configuratie toe aan /etc/sysconfig/rke2-agent. Nogmaals, als je een proxyserver gebruikt, moet je dit hier toevoegen.

HOME=/root RKE2_SELINUX=true http_proxy=http://proxy.example.com:80/ https_proxy=http://proxy.example.com:80/ ftp_proxy=http://proxy.example.com:80/ no_proxy=.example.com,169.254.169.254,10.0.0/24

Nu kun je de rke2-agent starten met de gegeven informatie.

systemctl start rke2-agent systemctl enable rke2-agent

Klaar! Herhaal deze stappen voor alle extra agent nodes.

Rancher installeren

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.

Helm installeren

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.

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 chmod 700 get_helm.sh ./get_helm.sh

Helm repo toevoegen

Ik raad je aan om hiervoor de stabiele versie te gebruiken.

roer repo toevoegen rancher-stable https://releases.rancher.com/server-charts/stable

Maak een naamruimte voor rancher

De rancher resources worden aangemaakt in deze Kubernetes namespace.

kubectl create naamruimte runcher-systeem

Installeer cert-manager

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.

kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v1.0.4/cert-manager.crds.yaml kubectl create namespace cert-manager helm repo add jetstack https://charts.jetstack.io helm repo update helm install \ cert-manager jetstack/cert-manager \ --namespace cert-manager \ --version v1.0.4

Wacht tot de cert-manager pods in een Running status zijn.

kubectl get pods -n cert-manager
NAAM GEREED STATUS RESTARTS LEEFTIJD cert-manager-75dbbd5d6-4pd5j 1/1 Loopt 0 5m cert-manager-cainjector-85c559fd6c-mvwnt 1/1 Loopt 0 5m cert-manager-webhook-6c77dfbdb8-dkvx2 1/1 Loopt 0 5m

Rancher installeren

Je moet het commando uit de documentatie bijwerken naar je eigen voorkeur.

helm upgrade --install rancher rancher-stable/rancher \ --namespace cattle-system \ --set hostname=rancher.example.com \ -set replicas=1 \ -set proxy="http://proxy.example.com:80/" \ -set noProxy=".example.com,169.254.169.254,10.0.0.0/24".

Controleer vervolgens of alle bronnen zijn aangemaakt.

kubectl get pods -A

Als alles goed gaat, is je mooie dashboard beschikbaar op https://rancher.example.com.

Rancher dashboard

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!


Bregt Coenen
Bregt Coenen
Solution Engineer, ACA Group
Contact us

Want to dive deeper into this topic?

Get in touch with our experts today. They are happy to help!

ACA mug mok koffie tas
Contact us

Want to dive deeper into this topic?

Get in touch with our experts today. They are happy to help!

ACA mug mok koffie tas
Contact us

Want to dive deeper into this topic?

Get in touch with our experts today. They are happy to help!

ACA mug mok koffie tas
Contact us

Want to dive deeper into this topic?

Get in touch with our experts today. They are happy to help!

ACA mug mok koffie tas