DevOps

Alati za instalaciju Kubernetesa na Windows 10

Koji su to alati pomoću kojih možemo da uradimo instalaciju Kubernetesa na Windows 10 ili Windows 11?
Kubernetes je prvenstveno Linux tehnologija, tako da je prilično jednostavno pokrenuti ga na različitim Linux distribucijama.
Međutim šta je sa programerima koji rade na Windowsu a koji treba da pokrenu Kubernetes lokalno?
U ovom delu ćemo pokušati da objasnimo neke razlike kao i kako se instalira Kubernetes na Windows.

Šta je drugačije u korišćenju Kubernetesa na Windowsu?

Pre nego što uđemo u dublje u detalje, hajde da vidimo kakvi su izazovi u pokretanju Kubernetes klastera na Windows operativnom sistemu.

Kada govorimo o kontejnerima, obično pomislimo na Linux kontejnere, pa samim tim ćemo i pokretati Kubernetes klaster na Linux hostingu.
Međutim, postoje situacije u kojima bi trebalo izabrati Windows sisteme na nivou cele organizacije i to sa svim vrstama radnih opterećenja.
U ovakvim slučajevima, možete pokrenuti Kubernetes klaster na Windowsu, ali postoji jedno ograničenje koje treba da znate:

Kontrolnu oblast Kubernetesa može da pokrene samo Linux host.

Vaši radni čvorovi, odnosno worker nodovi, mogu da rade na Windows hostu, ali u tom slučaju vam je potreban Linux na Windows mašini da biste nesmetano pokrenuli Kubernetes.
Dostupne su različite opcije za kreiranje Linux virtuelne mašine na Windowsu, kao na primer Virtual Box ili WSL (Windows Subsystem for Linux).

Alati i saveti za pokretanje Kubernetesa na Windowsu

Sada ćemo da vidimo alate i tehnike koje vama kao programeru mogu pomoći da nesmetano pokrenete Kubernetes na Windows sistemu.

Linux komande sa WSL

WSL omogućava da pokrenete izvorne Linux komande na Windowsu bez podešavanja virtuelne mašine.
WSL je izvrsna funkcija koju je u Windows uveo Microsoft, koja značajno olakšava život programerima.

Korišćenjem Windowsa za razvoj aplikacija, može biti prepreka pri kreiranju aplikacija koje su tzv. cloud-native za Kubernetes.
Kao što je ranije pomenuto, Kubernetes kontrolnoj oblasti je potrebno Linux okruženje; WSL u tom smisli pomaže tom delu tako što  pruža neke osnovne Linux funkcionalnosti za lokalno pokretanje Kubernetesa na Windowsu.

Da biste instalirali WSL na Windows, potrebna vam je Windows 10 verzija  – 2004 ili novija Windows 11 (može i sa verzijjom 19041) ​​.
Svakako proverite svoju verziju OS Windows i broj verzije pritiskom na taster sa Windows logotipom + R, zatim otkucajte winver i izaberite OK.
Možda ćete morati da ažurirate Windows ako koristite verziju ispod ove koje smo naveli.

Ako je vaša verzija Windowsa kompatibilna, možete koristiti komandu wsl-install da biste instalirali WSL.
Međutim, starija verzija operativnog sistema Windows možda neće podržavati ovu komandu. Da biste to rešili, sledite korake instalacije pomenute u zvaničnoj dokumentaciji.

U većini slučajeva, komanda wsl-install je dovoljna da se pokrene  WSL na Windowsu.
Takođe, ova komanda se stara se o preuzimanju najnovijeg Linux kernela, postavlja WSL 2 kao podrazumevan i instalira Linux za vas.

Alternativno, možete promeniti podrazumevanu distribuciju Linuxa tako što ćete je preuzeti iz Windows prodavnice.
Na početnoj stranici Microsoft Store-a možete pretražiti WSL i odabrati neku od dostupnih Linux distribucija, kao što su Ubuntu, Debian ili Kali Linux.

Nakon preuzimanja, kada prvi put pokrenete novu Linux distribuciju, otvoriće se prozor konzole i moraćete malo da sačekate da se datoteke dekompresuju i sačuvaju na računaru.
Takođe ćete morati da kreirate korisnički nalog i lozinku za svoju novu distribuciju Linuxa, kao što je prikazano na slici ispod.

Docker Desktop na Windowsu

Docker Desktop na Windowsu vam pruža mogućnost da kreirate Kubernetes klaster sa jednim nodom na vašoj radnoj stanici.

Da vidimo koji  su preduslovi za Docker Desktop na Windowsu:

  • Windows 10, ažuriran na verziju 2004, Build 1903 ili noviju
  • Proverite da li je WSL omogućen ili ne, pomoću funkcije  Turn Windows features on or off. Uverite se da je funkcija Windows Subsystem for Linux  uključena kao što je prikazano na slici.

Alternativno, da biste omogućili WSL na Windowsu, možete pokrenuti komandu Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux kao administrator.

Instalirajte WSL distribuciju iz Windows prodavnice. Podesite korisničko ime i lozinku za vašu Linux distribuciju pokrenutu u WSL-u.

Dok traje instalacija Docker Desktopa na Windows, možete izabrati WSL2 backend ili Hiperv da biste kreirali Linux virtuelnu mašinu.
Preporučuje se da koristite WSL2 radi boljih performansi.

Kada se Docker pokrene, omogućite Kubernetes klaster tako što ćete otići do Podešavanja.
Kliknite na Kubernetes na bočnoj traci, a zatim potvrdite izbor u polju za potvrdu Omogući Kubernetes. Kliknite na Apply & Restart.

Sada bi trebalo bi da vidite dva zelena svetla na dnu ekrana za podešavanja:

  • Engine running
  • Kubernetes running

Ne morate posebno da instalirate kubectl da biste imali interakciju sa Kubernetes klasterom, jer se o tome brine Docker Desktop.
Proverite instalaciju i podešavanje pokretanjem sledećih kubectl komandi u Windows Powershell-u:

PS C:\Users\ac> kubectl get all
NAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
service/kubernetes   ClusterIP   10.96.0.1            443/TCP   2m36s
PS C:\Users\ac> kubectl get node
NAME             STATUS   ROLES                  AGE     VERSION
docker-desktop   Ready    control-plane,master   3m12s   v1.21.5

To je to! Sada možete da počnete da raspoređujete vaše aplikacije na lokalni Kubernetes klaster koji ste instalirali na vašoj Windows mašini.

Rancher Desktop

Rancher Desktop je takođe open source aplikacija za upravljanje kontejnerima na Kubernetesu sa podrškom za macOS i Windows operativne sisteme.
Instalacija je veoma jednostavna. Nakon preuzimanja i pokretanja komande setup.exe prikazaće vam se opcija da izaberete Kubernetes verziju, kao što je prikazano na slici.

 

Ova opcija izbora Kubernetes verzije nije podržana sa Docker Desktop.
Međutim, prednost je što možete pokrenuti produkcijsku Kubernetes verziju na vašoj lokalnoj Windows radnoj stanici.
Nakon što ste odabrali Kubernetes verziju, trebalo bi da vam se pojavi prozor kao na slici ispod.
Prvo će preuzeti vašu izabranu verziju Kubernetesa. Postoji mnogo opcija na bočnoj traci (tj. Kubernetes podešavanja, slike, itd.) pa se slobodno malo zaigrajte.

Ponovo možete da izaberete da koristite drugu verziju Kubernetesa tako što ćete otići na Kubernetes podešavanja kao što je prikazano na slici ispod.

Osim pokretanja lokalnog Kubernetes klastera, možete da radite build, push i pull images, koristeći Rancher Desktop.  Što više vežbate na Kubernetesu, lakše će vam biti kasnije na produkcijskom nivou.

Kind

Još jedan Kubernetes projekat za lokalno pokretanje jekind odnosno skraćenica od Kubernetes in Docker. Umesto da kreirate VM, možete pokrenuti Kubernetes kao gomilu Docker kontejnera.
Ovom metodom dobijate brže pokretanje u poređenju sa minikubom.

Pošto kind pokreće Kubernetes klaster kao Docker kontejnere, potrebno je da imate instaliran Docker na vašoj mašini.
Na operativnom sistemu Windows možete koristiti menadžer paketa Chocolatey kako biste instalirali kind na vašu  mašinu.
Ukoliko nemate instaliran Docker na vašem računaru, kind će instalirati docker-desktop za vas.

Možete pokrenuti komandu  choco install kind -y
Nakon komande bi trebalo da vam se pojavi output sličan prikazanom.

PS C:\WINDOWS\system32> choco install kind -y
Chocolatey v0.10.15
Installing the following packages:
kind
By installing you accept licenses for the packages.
Progress: Downloading kind 0.11.1... 100%
kind v0.11.1 [Approved]
kind package files install completed. Performing other installation steps.
Downloading kind 64 bit
from 'https://github.com/kubernetes-sigs/kind/releases/download/v0.11.1/kind-windows-amd64'
Progress: 100% - Completed download of C:\ProgramData\chocolatey\lib\kind\kind.exe (6.58 MB).
Download of kind.exe (6.58 MB) completed.
Hashes match.
ShimGen has successfully created a shim for kind.exe
The install of kind was successful.

Da biste proverili podešavanje, možete pokrenuti komandu kind --version.
Sada ste spremni da kreirate lokalni Kubernetes sa kind pomoću komande kind create cluster. Hajde da i to pokrenemo.

PS C:\WINDOWS\system32> kind create cluster
Creating cluster "kind" ...
 • Ensuring node image (kindest/node:v1.21.1) 🖼  ...
 ✓ Ensuring node image (kindest/node:v1.21.1) 🖼
 • Preparing nodes 📦   ...
 ✓ Preparing nodes 📦
 • Writing configuration 📜  ...
 ✓ Writing configuration 📜
 • Starting control-plane 🕹️  ...
 ✓ Starting control-plane 🕹️
 • Installing CNI 🔌  ...
 ✓ Installing CNI 🔌
 • Installing StorageClass 💾  ...
 ✓ Installing StorageClass 💾
Set kubectl context to "kind-kind"
You can now use your cluster with:

kubectl cluster-info --context kind-kind

Thanks for using kind! 😊
PS C:\WINDOWS\system32> kubectl get nodes
NAME                 STATUS   ROLES                  AGE   VERSION
kind-control-plane   Ready    control-plane,master   27m   v1.21.1

Pre pokretanja kind-a, morate znati da što se tiče resursa, kind je prilično zahtevan, tako da zahteva najmanje 8GB memorije da bi radio bez problema.
Pokretanjem komande  kind load docker-image my-image:latest  možete direktno da učitavate slike u vaš klaster bez push-ovanja u registar.

minikube

minikube je najpopularnija opcija za pokretanje lokalnog Kubernetes klastera iz sledećih razloga:

  • Može se rasporediti na različite VM, bare metal ili kao Docker kontejner.
  • Podržava različita vremena pokretanja kontejnera (Docker, containerd, itd.).
  • Ima gotovu podršku za Kubernetes kontrolnu tablu i balansiranje opterećenja. Dakle, možete kontrolisati i dashboard i load balancer u minikubu.
  • Podržava različite drajvere VM-a.

Za instalaciju, možete direktno preuzeti i pokrenuti .exe. Alternativno, možete koristiti menadžere paketa kao što su Chocolatey ili Windows menadžer paketa.
Koristeći Chocolatey, možete pokrenuti komandu  choco install minikube da biste instalirali minikube.

PS C:\WINDOWS\system32> choco install minikube
Chocolatey v0.10.15
Installing the following packages:
minikube
By installing you accept licenses for the packages.
Progress: Downloading kubernetes-cli 1.22.2... 100%
Progress: Downloading Minikube 1.23.2... 100%
.................
Minikube v1.23.2 [Approved]
minikube package files install completed. Performing other installation steps.
ShimGen has successfully created a shim for minikube.exe
The install of minikube was successful.

Sada pokrenite komandu minikube start da biste pokrenuli Kubernetes klaster.

PS C:\WINDOWS\system32> minikube start --driver=docker
* minikube v1.23.2 on Microsoft Windows 10 Pro 10.0.18363 Build 18363
* Using the docker driver based on user configuration
* Starting control plane node minikube in cluster minikube
* Pulling base image ...
    > gcr.io/k8s-minikube/kicbase: 355.40 MiB / 355.40 MiB  100.00% 3.32 MiB p/
* Creating docker container (CPUs=2, Memory=2200MB) ...
* Preparing Kubernetes v1.22.2 on Docker 20.10.8 ...
  - Generating certificates and keys ...
  - Booting up control plane ...
  - Configuring RBAC rules ...
* Verifying Kubernetes components...
  - Using image gcr.io/k8s-minikube/storage-provisioner:v5
* Enabled addons: default-storageclass, storage-provisioner
* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
PS C:\WINDOWS\system32> kubectl get nodes
NAME       STATUS   ROLES                  AGE     VERSION
minikube   Ready    control-plane,master   7m57s   v1.22.2

Sada možete nastaviti sa raspoređivanjem vaših apliakcija na minikubu.

6.Lens

Lens je open source desktop aplikacija za macOS, Windows i Linux koja vam omogućava da upravljate  Kubernetes klasterom.
Možete ga preuzeti za Windows ovde i koristiti ga za pregled i upravljanje stanjem vašeg Kubernetes klastera.
Pruža funkcije kao što su upravljanje višestrukim klasterima, podrška za različite Kubernetes distribucije, jednostavno otklanjanje grešaka i podrška za upravljanje Helm grafikonima koje ćemo i spomenuti ovde.

Trebalo bi da vidite sledeći ekran kada se instalacija završi.
Na sledećoj slici ekrana takođe pokazuje da je Lens IDE za Kubernetes automatski otkrio kubeconfig datoteku i dodao je u katalog Lens.

Na sledećoj slici, imajte na umu da su pod Catalog > Categories > Clusters navedena dva lokalna Kubernetes klastera:

  • docker-desktop
  • rancher-desktop

Lens IDE je povezao ove informacije iz kubeconfig datoteke. Zatim se povezujete rancher-desktop komandom na Kubernetes klaster

Nakon povezivanja rancher-desktopsa Kubernetes klasterom, trebalo bi da vidite neke podrazumevane podove, implementacije i sve drugo što se nalazi trenutno pod radnim opterećenjem za prostor pod imenom kube-system.

Još jedna sjajna karakteristika sa Lensa je da možete da instalirate Helm grafikone jednim klikom.
Lens će prikazati sve grafikone iz konfigurisanih Helm repozitorijuma (Bitnami je podrazumevano konfigurisan) u odeljku Apps.

Sledeći snimak ekrana prikazuje Nginx u traci za pretragu.

Da biste instalirali grafikon, jednostavno ga izaberite i kliknite na Install.

 

Šta smo ovde naučili.
Windows podsistem za Linux pomaže da se premosti jaz između Windowsa i Linuxa.
Uz alate kao što su Docker Desktop, minikube, kind i Rancher Desktop, lokalno pokretanje Kubernetes klastera na Windowsu, može biti veoma lako.

Ne zaboravite da podesite alate za upravljanje vašim Kubernetes klasterom, kao što je Lens. Sa alatima koje smo naveli u ovom tekstu, možete testirati i razvijati vaše aplikacije na Windosu bez poteškoća, a što je još bitnije lako možete sve instalirati, kao i obrisati.

Vidimo se uskoro u sledećem nastavku o Kubernetesu.

Napišite komentar