RKE2 klastri paigaldamine

Allikas: Imre kasutab arvutit
(Ümber suunatud leheküljelt K8s nodeide ettevalmistamine)
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