RKE2 klastri paigaldamine
Sissejuhatus
Käesolev tekst kirjeldab RKE2 kubernetes tarkvaral põhineva kubernetes klastri tekitamist. Selliselt tekitakse kõik laboris osalevad k8s klastrid. Alternatiiv oleks kasutada downstream klastrite tekitamiseks Rancher tarkvara abi ja ehk õigem oleks, kuid antud juhul nii ei tehta.
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
Ubuntu operatsioonisüsteemi ettevalmistamine
Ubuntu operatsioonisüsteem paigaldatakse tavalise Ubuntu installeri abil. Praktiliselt võiks teha ühe arvuti valmis ning seejärel teda nö paljundada. Seejuures võiks igaks juhuks machine-id muuta unikaalseks.
- tekitada laborit teenindavasse dns serverisse dns nimed node'ide kohta
- Paigaldada tavaline Ubuntu pigem minimaalsete valikutega (st mitte desktop tüüpi)
- Lisaks peab olema paigaldatud tarkvara: apparmor, iptables ja open-iscsi
- Arvutitel peab olema kellaaeg õige (tänu ntp kliendi seadistustele)
Tulemuse kontrollimine
- node'id peavad üksteist oma privaatses subnetis nägema
- node'id peavad nägema internetti
- dns nimelahendus töötab
- arvuti kellaaeg on õige
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
Kasulikud lisamaterjalid
- TODO