Dette er en guide til hvordan man får Minikube(Lokal Kubernetes) til at køre på en Linux Fedora maskine.
Installing Minikube on Fedora
- Opdater Fedora
sudo dnf update
Installer Docker
- Ændre cgroups til 1 (Første metode)
Installer din foretrukne
text-editor(Jeg bruger nano her)sudo dnf install nanoRediger grub filen
sudo nano /etc/default/grubTilføj systemd.unified_cgroup_hierarchy=0” til enden af GRUB_CMDLINE_LINUX=”…“ linjen.
Din grub fil skulle så gerne have en linje der ligner denne
GRUB_CMDLINE_LINUX="resume=UUID=... rhgb quiet systemd.unified_cgroup_hierarchy=0"
Ændre cgroups til 1 (Anden metode)
Installer grubby
sudo dnf install grubbyÆndre cgroups med
sudo grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=0"
OBS: Anden metode med grubby afspejler sig nødvendigvis ikke i selve /etc/default/grub - filen og jeg har erfaret at den ikke altid træder i kraft efter første genstart. Her kan man tjekke ens maskine med virt-host-validate for at se om nogle punkter fejler. Hvis der er nogle punkter der er røde og siger “failed”, så prøv at køre kommandoen igen og genstart. Umiddelbart ligner er der ingen problemer efter man har kørt kommandoen anden gang og genstartet, dog er årsagen til fejlen ikke kendt.
Tjek om maskinen bruger EFI/UEFI eller BIOS/Legacy boot med bash
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOSDenne kommando / lille script tjekker om /sys/firmware/efi - mappen eksitere. Hvis den gør så er maskinen startet med EFI/UEFI boot, hvis ikke er den startet med BIOS boot.Lav grub config (EFI/UEFI boot)
sudo grub2-mkconfig > /boot/efi/EFI/fedora/grub.cfgLav grub config (BIOS/Legacy boot)
sudo grub2-mkconfig > /boot/grub2/grub.cfgInstaller dnf-plugins-core - pakken
sudo dnf -y install dnf-plugins-coreOpsæt brug af stable repository
sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repoInstaller den seneste version af Docker Engine
sudo dnf install docker-ce docker-ce-cli containerd.io(Optional) Installer docker-compose
sudo dnf install docker-composeTilføj brugeren til docker gruppen
sudo usermod -aG docker $(whoami)Eller hvis det er en anden specifik bruger der skal bruges til dockersudo usermod -aG docker USERNAMEBemærk at det er bedst at have en bruger i docker gruppen, da man så ikke skal køre alt docker relateret med root.Sæt docker servicen til at starte med operativsystemet
sudo systemctl enable dockerMan kan allerede også starte docker medsudo systemctl start dockerBemærk dog at du skal have genstartet for at cgroups er ændret til 1 inden docker fungere.Genstart maskinen
reboot- Herefter kan man tjekke om docker virker
sudo docker run hello-world
- Ændre cgroups til 1 (Første metode)
Installer kubectl
Download kubectl
curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectlGør kubectl eksekverbar
chmod +x ./kubectlFlyt kubectl så den kan bruges som en service
sudo mv ./kubectl /usr/local/bin/kubectl
Installer Minikube
Installer Virtualization gruppen af pakker
sudo dnf group install VirtualizationTilføj brugeren til gruppe, så vi igen ikke har behov for root
sudo usermod -aG libvirt $(whoami) && newgrp libvirtDenne kommando opretter også en nye gruppe der hedde libvirt i tilfælde af den ikke eksistere.Download Minikube
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64Gør minikube eksekverbar
chmod +x minikubeInstaller minikube så den kan bruges som service
sudo install minikube /usr/local/bin/
Kør Minikube Der er flere måder / flere vm-drivers man kan bruge til at køre Minikube i.
Kør Minikube (Podman) Podman er installeret på Fedora som standard og burde stadig være til stede, da denne guide ikke fjerner tidligere Docker versioner, som også fjerner cmon-servicen som Podman er afhængig af og bliver derfor også afinstalleret. Minikube kan startes med Podman (Kræver root rettigheder)
sudo minikube start --vm-driver podmanKør Minikube (Docker)
minikube start --vm-driver dockerBemærk der ikke kræves root rettigheder.Kør Minikube (Bare Metal / Direkte på maskinens OS) Tilføj port-rækkevidden [8443 10250] til firewallen, da disse porte bliver brugt til kommunikationen udadtil
firewall-cmd --add-port=8443-10250/tcpFor at tilføje firewall reglen permanent, så den er aktiv efter genstart
firewall-cmd --add-port=8443-10250/tcp --permanentDeaktiver SELinux for at den ikke blockere starten af minikube
sudo setenforce 0Dette deaktivere kun for den nuværende session og SELinux køre igen efter genstart.For at deaktivere SELinux permanent skal man redigere /etc/sysconfig/selinux - filen. Dette kan gøres med en text-editor som f.eks. nano
nano /etc/sysconfig/selinuxHvor man ændre linjen SELINUX=enforcing til SELinux=disabledHerefter genstarter man med reboot
Brug sestatus for at tjekke om SELinux er slået fra. Kommandoen skulle gerne vise Permissive under Current mode eller Disabled, hvis SELinux permanent er deaktiveret.
Minikube kan herefter køres (Kræver root rettigheder)
sudo minikube start --vm-driver none
Konfigurering af Minikube (Optional) Minikube har en række standard værdier man kan sætte for gøre start kommandoen mere simpel.
Man kan sætte vm-driveren standard til f.eks. Docker
minikube config set vm-driver dockerPå den måde slipper man for at skrive –vm-driver docker hver gang minikube skal startes.Samtidig kan man også sætte mængden af hukkommelse der bliver tildelt minikube med
minikube config set momory 1024Dette brugte jeg personligt en del til at begrænse resourcerne den tog på min bæbare computer.For at tjekke en specifik config værdi som f.eks. vm-driveren kan man skrive
minikube config get vm-driverFor at se alle konfigurerbar værdier kan man bruge
minikube config -hNOTE: Hvis man skriver sudo foran alle config kommandoerne, så bliver de sat for root brugeren og ikke den bruger der skriver kommandoen. Det er derfor vigtigt, at huske om man bruger en vm-driver der kræver root rettigheder eller ej, da man så skal huske at sætte værdierne for den rigtige bruger.
Kilder