Kubernetes yra atvirojo kodo virtaliai dedikuotų serverių konteinerinės sistemos valdymo įrankis skirtas automatizuotai valdyti skirtingus serverius, kurie yra prijungti prie pagrindinio serverio. Tai yra Google kurta programinė įranga, kuri dažniausiai naudojama su Docker konteinerių valdymo sistema. Kubernetes suteikia galimybę valdyti papildomus serverius, kurie yra prijungti prie pagrindinio serverio neprisijungiant prie papildomo serverio.
Šioje pamokoje atliksite Kubernetes diegimą Master (pagrindinis) ir Node (prijungtasis) serveriuose naudojant Ubuntu 20.04 operacinę sistemą. Tačiau naudojamos komandos turėtų veikti ir senesnėse Ubuntu versijose iki 16.04 (vietoje apt naudojant apt-get).
SVARBU: Kubernetes gali veikti tik KVM virtualizacijos serveryje.
0. Preliminarūs reikalavimai
* Dedikuotas KVM serveris naudojantis mūsų parengtą Ubuntu 20.04 šabloną.
1. Serverių paruošimas Kubernetes diegimui
Kubernetes diegimas turi būti atliekamas abiejuose serveriuose, todėl šiuos veiksmus atlikite tiek serveryje iš kurio bus valdomi kiti serveriai, tiek serveriuose, kurie bus valdomi. Visos komandos gali būti atliekamos tiek su root naudotoju tiek su papildomu naudotoju (jeigu bus norima atlikti veiksmus iš papildomų naudotojų) turinčių root teises pridedant sudo prieš vykdomą komandą.
Visų pirma atlikite sistemų atnaujinimus:
Tada įdiekite apt-trasport-htpps paketą, kuris įgalina serverių tarpusavio sąveiką:
apt install -y apt-transport-https
Mes pasirinkome naudoti Docker konteinerinę sistemą Kubernetes veikimui. Vietoje Docker galima naudoti
CRI-O ar
Containerd. Docker diegimui naudokite šią komandą:
apt install docker.io -y
Kai diegimas bus užbaigtas, aktyvuokite Docker bei nustatykite, kad Docker aktyvuotųsi kiekvieno serverio perkrovimo metu
:systemctl start docker && systemctl enable docker
2. Kubernetes diegimas
Kai serverio paruošimo darbai užbaigti, galime pereiti prie Kubernetes diegimo. Visų pirma reikia parsisiųsti Kubernetes paketą iš Google:
Atlikus diegimą reikia sukurti tekstinį failą. Kūrimui mes naudojame nano teksto redagavimo programą, tačiau galite naudoti ir kitą savo mėgstamą programą.
nano /etc/apt/sources.list.d/kubernetes.list
Ir įkelkite tekstą:
Išsaugokite failą. Dabar galite pradėti Kubernetes diegimą su papildomai paketais:
apt-get update && apt-get install -y kubelet kubeadm kubectl kubernetes-cni
3. Kubernetes Master serverio konfigūravimas
Konfigūracinių failų diegimui Master serveryje naudokite šią komandą (įvykdymas gali užtrukti kelias minutes):
SVARBU: neuždarykite serverio konsolės lango užbaigus konfigūravimą, nes bus pateikiama informacija, kurią reikės suvesti Node serveryje. Reikalingos informacijos pavyzdys:
kubeadm join master.serverio.ip.adresas:6443 --token mxuzwk.afadodbc78xxxxxx --discovery-token-ca-cert-hash sha256:7ecdd6ccbca5940c3038119c7887904deee6254abb961673bd920b224xxxxxxx
Šį tekstą išsisaugokite. Ši žymė veiks tik 24 valandas, todėl jeigu norėsite vėliau prideti papildomą serverį, paleiskite šią komandą ir gausite naują žymę:
Papildomos konfigūravimo komandos turi būti atliekamos, jeigu serverius norės valdyti papildomas naudotojas:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
4. Kubernetes Node serverio prijungimas prie Master
Papildomai primename, kad turite atlikti pirmoje ir antroje skiltyje pateiktas komandas norėdami sujungti abu serverius. Sėkmingai atlikus visus veiksmus abiejuose serveriuose bei trečios skilties žingsnius Master serveryje, prisijunkite prie Node serverio ir įveskite komandą, kurią buvote anksčiau išsisaugoję (tekstas turi būti įvestas į vieną eilutę):
kubeadm join <master node IP>:6443 --token
i5s534.38o26swycl0gd0gr --discovery-token-ca-cert-hash
sha256:4b4c8d9652e925dffe0f28c73984c27d821cd998f63525dd45378a762517dea3
Jeigu vėliau norėsite prijungti kitą serverį, jame naudokite pakeistą žymę po "...--token" teksto, kurią gavote Master serveryje paleidę komandą kubeadm token generate.
5. Baigiamieji veiksmai
Tam, kad patikrintumėte ar viską teisingai atlikote, Master serveryje įveskite šią komandą:
Atsakymas turėtų būti panašus į tokį:
NAME STATUS ROLES AGE VERSION
master.server.lt NotReady master 9m43s v1.19.2
node.server.lt NotReady <none> 47s v1.19.2
Dabar galite nustatyti savo klasterio tarnybas arba keisti jo dydį, pridėdami papildomų serverius į grupę taip pat, kaip pridėjote pirmąjį Node serverį. Norėdami gauti daugiau informacijos apie grupių valdymą, daug naudingos informacijos pateikiama
Kubernetes dokumentacijoje.