Kubernetes cluster via RKE

Ter lering ende vermaeck ga ik een Kubernetes Cluster maken met Raspberry PI’s, model 4B, bestaande uit één master en twee workers (minions). De RPI’s krijgen hun spanning via USB-C connectors, aangesloten op een USB Power Hub. Via ethernetkabels zijn ze allen aangesloten op een netwerk-switch (Gigabit). Een SD card voorziet in het Linux OS. (Ubuntu)

De pre-requisites zijn:

  • Nieuwe installatie van Ubuntu
  • Netwerkkabels aangesloten op een Gigabit Network switch waarop ook mijn laptop is aangesloten (en dus SSH toegang)
  • USB voedingskabels aangesloten aan een Xtorm USB Power Hub
  • Hostname en Static IP adres
    • rpi-01 = 192.168.1.50
    • rpi-02 = 192.168.1.51
    • rpi-03 = 192.168.1.52

Stap 1. Installeren Ubuntu

Om ubuntu te installeren, volg de stappen zoals beschreven in ‘Installatie Ubuntu op RPi

Stap 2. Installeren Docker

Volg deze stappen om docker op ubuntu te installeren.

Stap 3. Clusterbestand aanmaken

Op je eigen PC/laptop/MacBook kun je nu een clusterbestand aanmaken met de naam ‘cluster.yml’ waarin de rollen van de nodes beschreven worden. Zo’n bestand ziet er bijvoorbeeld zo uit:

---
nodes:
- address: 192.168.178.50
  user: ubuntu
  role:
  - controlplane
  - etcd
  - worker
  hostname_override: rpi-01
  internal_address: 192.168.178.50

- address: 192.168.178.51
  user: ubuntu
  role:
  - controlplane
  - etcd
  - worker
  hostname_override: rpi-02
  internal_address: 192.168.178.51

- address: 192.168.178.52
  user: ubuntu
  role:
  - controlplane
  - etcd
  - worker
  hostname_override: rpi-03
  internal_address: 192.168.178.52 

cluster_name: local
kubernetes_version: v1.19.4-rancher1-1

network:
    plugin: canal

Stap 4: Installeren rke op lokale pc

Om het clusterbestand te kunnen gebruiken om een Kubernetes cluster te kunnen maken is ‘rke‘ nodig en die kan hier opgehaald worden: https://github.com/rancher/rke/releases/

Let hierbij op welke versie van Kubernetes ondersteund wordt. In de Assets kun je de versie voor jouw operating systeem downloaden. Bijvoorbeeld versie v.1.2.3 voor kubernetes versie v1.19.4-rancher1-1 en voor Apple Darwin dient deze binary opgehaald te worden: https://github.com/rancher/rke/releases/download/v1.2.3/rke_darwin-amd64

Na het downloaden van de binary dient deze dan execute rechten te krijgen (chmod +x) en verplaats je het bestand als ‘rke’ in een directory van je PATH. Controle geschiedt met:

$ rke --version
rke version v1.2.3

Stap 5: Aanmaken Kubernetes cluster

Nu volgt het meest eenvoudige, het aanmaken van het cluster. Voer het volgende commando uit:

$ rke up
INFO[0000] Running RKE version: v1.2.3                  
INFO[0000] Initiating Kubernetes cluster
...
INFO[0999] Finished building Kubernetes cluster successfully

Nadat rke gereed is, zijn er twee bestanden in de huidige directory geschreven:

  • cluster.rkestate
  • kube_config_cluster.yml

Stap 6: Test

Het eerste bestand is voor rke om de status bij te houden van de installatie en het tweede bestand is je KUBECONFIG bestand. Om kubernetes commando’s uit te kunnen voeren dient kubectl aanwezig te zijn op je computer.

Installatie kubectl: https://kubernetes.io/docs/tasks/tools/install-kubectl/

Voer nu de volgende commando’s uit ter controle van het cluster:

$ export KUBECONFIG=./kube_onfig_cluster.yml
$ kubectl get nodes
NAME    STATUS   ROLES    AGE     VERSION
rpi-01  Ready    master   5d20h   v1.19.4
rpi-02  Ready    <none>   5d19h   v1.19.4
rpi-03  Ready    <none>   5d19h   v1.19.4