RKE2 klastri paigaldamine

Allikas: Imre kasutab arvutit
Mine navigeerimisribaleMine otsikasti

Sissejuhatus

Käesolev tekst kirjeldab RKE2 kubernetes tarkvaral põhineva kubernetes klastri tekitamist. Selliselt tekitakse ainult Rancher rakendust teenindav k8s klaster. Ülejäänud klastrid, st down-stream klastrid, tekitatakse Rancher webgui liidese abil eraldi ettevalmistatud Ubuntu operatsioonisüsteemiga töötavatesse arvutitesse.

Tööpõhimõte

Väited

  • RKE2 klastri node'idel töötab tavaline Ubuntu v. 22.04 operatsioonisüsteem
  • node riistvara omadustele tuleb teatud määral pöörata tähelepanu: nt 6 GB mälu, 4 CPU, üks võrguliides, 60 GB ext4 failisüsteem
  • node tarkvara koosseisule tuleb teatud määral pöörata tähelepanu: TODO

Võrgutopoloogia

Tõenäoliselt on klastri haldusliidese ip aadress tulemüüri külge kinnitatud ja suunatud nat teisendusega kõigi klastrit moodustavate node'ide peale

  • nii moodustub haldusliidese kõrgkäideldavus
  • selle tulemüüri külge kinnitatud ip aadressi kaudu suhtlevad klastri node'id üksteisega ning samuti välised klastri poole pöördujad (nt klastri haldajad oma töökohaarvutitest kubectl utiliidiga)
  • tls termination toimub node juures (mitte tulemüüris)

TODO

RKE2 kubernetes tarkvara paigaldamine ja klastri moodustamine

Väited

  • RKE2 ei kasuta docker tarkvara konteinerite ringiajamiseks
  • RKE2 kasutab TODO tarkvara
  • RKE2 ei paigaldata paketihaldusest vaid kopeerides tootja veebikohast binary programmi ja seda käivitades; see omakorda kopeerib oma isandate juurest vajaliku tarkvara, paigaldab, seadistab, käivitab protsessid jne

Esimese node paigaldamine

# mkdir -p /etc/rancher/rke2
root@k8s-rnr-tartu-node-01:~# cat /etc/rancher/rke2/config.yaml
token: saladus
tls-san:
  - k8s-rnr-tartu.auul.pri.ee
 
root@k8s-rnr-tartu-node-01:~# curl -sfL https://get.rke2.io | sh -
root@k8s-rnr-tartu-node-01:~# systemctl enable --now rke2-server.service

Seejärel oodata ja vaadata et saab valmis, df -h väljundis peab olema 40+ monteerimist, top load peab olema alla 1, 'journalctl -u rke2-server -f' logi vaikne. Tulemuse kontrollimiseks sobib öelda

root@k8s-rnr-tartu-node-01:~# export KUBECONFIG=/etc/rancher/rke2/rke2.yaml

root@k8s-rnr-tartu-node-01:~# /var/lib/rancher/rke2/bin/kubectl get nodes
NAME                             STATUS   ROLES                       AGE     VERSION
root@k8s-rnr-tartu-node-01   Ready    control-plane,etcd,master   8m57s   v1.24.8+rke2r1

Järgmise node lisamiseks sobib kasutada seadistusfaili ja õelda

root@k8s-rnr-tartu-node-02:~# mkdir -p /etc/rancher/rke2

root@k8s-rnr-tartu-node-02:~# cat /etc/rancher/rke2/config.yaml
token: saladus
server: https://k8s-rnr-tartu.auul.pri.ee:9345
tls-san:
  - k8s-rnr-tartu.auul.pri.ee
 
root@k8s-rnr-tartu-node-02:~# curl -sfL https://get.rke2.io | sh -
root@k8s-rnr-tartu-node-02:~# systemctl enable --now rke2-server.service

Jällegi jälgida logi, df ja top, tulemusena on ootus näha küsides node-01 pealt nagu enne

root@k8s-rnr-tartu-node-01:~# /var/lib/rancher/rke2/bin/kubectl get nodes
NAME                             STATUS   ROLES                       AGE   VERSION
k8s-rnr-tartu-node-01   Ready    control-plane,etcd,master   18m   v1.24.8+rke2r1
k8s-rnr-tartu-node-02   Ready    control-plane,etcd,master   27s   v1.24.8+rke2r1

Analoogselt lisada klastrisse kolmas node, tulemuseks on üsna aus vanilla RKE2 kubernetes tarkvara abil moodustatud klaster

root@k8s-rnr-tartu-node-01:~# /var/lib/rancher/rke2/bin/kubectl get nodes
NAME                             STATUS   ROLES                       AGE   VERSION
k8s-rnr-tartu-node-01   Ready    control-plane,etcd,master   28m   v1.24.8+rke2r1
k8s-rnr-tartu-node-02   Ready    control-plane,etcd,master   15m   v1.24.8+rke2r1
k8s-rnr-tartu-node-03   Ready    control-plane,etcd,master   27s   v1.24.8+rke2r1

Edaspidi võiks kubectl utiliidiga seda klastrit kasutada töökohaarvutist nagu tavalist k8s klastrit

imre@tookohaarvuti$ export KUBECONFIG=k8s-rnr-tartu.auul.pri.ee.yaml

imre@tookohaarvuti$ kubectl get nodes
NAME                             STATUS   ROLES                       AGE   VERSION
k8s-rnr-tartu-node-01   Ready    control-plane,etcd,master   48m   v1.24.8+rke2r1
k8s-rnr-tartu-node-02   Ready    control-plane,etcd,master   25m   v1.24.8+rke2r1
k8s-rnr-tartu-node-03   Ready    control-plane,etcd,master   10m   v1.24.8+rke2r1
 
imre@tookohaarvuti$ kubectl get all -A -o wide
...

Kasulikud lisamaterjalid