Ahoj,
tak já začnu. Experimentoval jsem s microk8s, ale nějak se mi to nepodařilo rozjet (ubuntu 22.04). Nerozjel jste to někdo? Ještě jsem to úplně nevzdal. Tváří se mi to tak, že kube api neposlouchá na localhost pro ostatní komponenty. Možná něco se sítěmi…
Co kdyz zkusis vyrobit modprobe jako symlink na /bin/true? Treba do /usr/local/sbin/?
ln -s /bin/true /usr/local/sbin/modprobe
… tedy za predpokladu, ze echo $PATH vypise mezi tema dvojteckama i /usr/local/sbin, jinak by se musela najit nejaka jina cesta (mohl by se nahradit i modprobe samotny rovnou za ten link, ale pak to asi bude problem pri upgrade modprobe baliku nebo kontrole integrity nainstalovanych baliku)
Ahoj,
taky se pokousim rozbehat Kuberenetes, konkretne k0s nebo k3s.
Zkusil jsem tedy k3s a dle ocekavani se po instalaci "k3s.service" nespusti
a konci chybou.
systemctl status k3s.service
Na zaklade rady od Tomase Srnky jsem zkusil nasledujici.
Je to jen tak narychlo spichnute, neprezije to restart,
ale zda se ze to funguje.
ln -s /bin/true /usr/local/sbin/modprobe
systemctl cat k3s.service
mcedit /etc/systemd/system/k3s.service
--- EDITOVAT CESTY K MODPROBE
ExecStartPre=-/usr/local/sbin/modprobe br_netfilter
ExecStartPre=-/usr/local/sbin/modprobe overlay
---
systemctl daemon-reload
(nejspis by stacilo ty radky ExecStartPre pouze zakomentaovat,
ale nezkousel jsem)
mkdir -p /opt/k8s/fake
cd /opt/k8s/fake
echo 0 > panic
mount --bind panic /proc/sys/kernel/panic
echo 0 > panic_on_oops
mount --bind panic_on_oops /proc/sys/kernel/panic_on_oops
echo 0 > overcommit_memory
mount --bind overcommit_memory /proc/sys/vm/overcommit_memory
systemctl start k3s.service
Tomas Srnka tam tech bindu ma vic, ale toto mi zatim stacilo.
S Kubernetes jsem totalnich zacatcich, s vpsfree taky zacinam,
tak bohuzel zatim nevim, proc je to potreba a proc to pomohlo.
Ale pro zacatek dobry, tak to mozna pomuze i Tobe.
Nějak jsem to sepsal do skriptu. Pokoukal jsem logy, jestli tam ještě něco nefailuje a vypadá to slušně. Potřebovalo by to ale revizi od linuxáka, co zná místní specifika. Při zastavování služby to končí failem “no leader election” (nebo tak něco), ale ten (příležitostně) vídám i na plnohodnotném virtuálu. Tady je skript, kdybyste s ním chtěl někdo pokračovat:
S k3s nemám zkušenosti, ale pár poznámek k tomu skriptu (jinak super práce ).
Chybové hlášky výše obsahují:
Updating kernel flag failed (Hint: enable KubeletInUserNamespace feature flag to ignore the error)
Říkají tomu feature gate a možná že kdyby se to podařilo zapnout, nebude potřeba řešit ty bind mounty s k3s-fake. Nepřišel jsem ale na to, jak to s k3s udělat.
Dále není moc vhodné upravovat existující systemd service soubory, protože v tom budeš mít konflikt při aktualizaci balíčku, nebo to ten instálátor při aktualizaci znovu přepíše. Upřimně nevím, jak se k3s aktualizuje a jestli je to problém nebo ne. Každopádně, mohlo by fungovat toto:
mkdir -p /etc/systemd/system/k3s.service.d
cat <<EOF > /etc/systemd/system/k3s.service.d/override.conf
[Service]
# Vyresetuje ExecStartPre
ExecStartPre=
# Vrátíme jen to, co chceme. Možná to ani není potřeba, nevím k čemu to je.
ExecStartPre=/bin/sh -xc '! /usr/bin/systemctl is-enabled --quiet nm-cloud-setup.service 2>/dev/null'
EOF
Když koukám na tu k3s.service z https://get.k3s.io, ten nefunkční modprobe by ani neměl způsobit selhání: