Obsah článku
-----
```yaml
title: "Pokročilé tipy a riešenia bežných problémov v k3s"
slug: "k3s-pokrocile-tipy-riesenia-problemov"
technologies: ["k3s", "Kubernetes", "Calico", "systemd", "MySQL"]
tags: ["k3s", "troubleshooting", "tipy", "gotchas", "dns", "mtu", "kube-proxy", "serviceLB", "pokročilé"]
date_solved: "2025-08-19"
Projekt/Téma: Súbor pokročilých konfiguračných tipov a riešení pre často sa vyskytujúce problémy v k3s clusteri.
1. Cieľ / Problém na vyriešenie:
Poskytnúť riešenia pre špecifické a zložitejšie problémy, ktoré sa nedajú vyriešiť základnou diagnostikou. To zahŕňa problémy so sieťovým výkonom (MTU), nefunkčným ClusterIP, reštartujúcimi sa podmi kvôli limitom, alebo explicitné zapínanie/vypínanie kľúčových k3s komponentov ako kube-proxy a serviceLB.
2. Použité technológie a nástroje:
kubectl edit: Na priamu úpravu Kubernetes objektov v reálnom čase.systemd: Na úpravu spúšťacích parametrov službyk3s.- k3s konfiguračné súbory:
/etc/rancher/k3s/k3s.yamla/etc/systemd/system/k3s.service.
3. Kľúčové postupy a konfiguračné kroky:
- Zvýšenie MTU pre Calico: V prípade problémov s fragmentáciou paketov v overlay sieti je potrebné upraviť
ConfigMapCalico a nastaviť vyššie MTU, následne reštartovaťcalico-nodepody. - Explicitné povolenie/zakázanie
kube-proxy: k3s štandardne používaserviceLBa mákube-proxyvypnutý. V niektorých prípadoch (napr. pre kompatibilitu) je potrebné ho manuálne povoliť úpravouk3s.servicea reštartom služby. - Explicitné povolenie/zakázanie
serviceLB: Podobne, ak je preferovanýkube-proxyalebo iný Load Balancer (napr. MetalLB), je možné vstavanýserviceLBvypnúť cez parameter--disable servicelb. - Diagnostika reštartujúcich sa podov: Použiť
kubectl describe podna zobrazenie sekcieEvents, ktorá často odhalí dôvod reštartu (napr.OOMKilled- nedostatok pamäte). - Riešenie zlyhania pripojenia na databázu: Overiť prihlasovacie údaje, skontrolovať
NetworkPolicya firewall. Ako alternatívu použiťheadlessslužbu, ktorá poskytuje priame DNS záznamy na jednotlivé pody.
4. Výsledné kódy a skripty:
-
Zvýšenie MTU pre Calico:
# Otvorí ConfigMap Calico v editore kubectl edit configmap -n kube-system calico-config # V editore zmeňte hodnotu veth_mtu, napr. na 1500 # Reštartujte Calico pody, aby sa zmena prejavila kubectl delete pod -n kube-system -l k8s-app=calico-node -
Povolenie
kube-proxyv k3s:# Upravte konfiguračný súbor služby sudo nano /etc/systemd/system/k3s.service # V riadku ExecStart odstraňte parameter --disable-kube-proxy # Znovu načítajte konfiguráciu systemd a reštartujte k3s sudo systemctl daemon-reload sudo systemctl restart k3s -
Zakázanie
serviceLBv k3s:# Upravte konfiguračný súbor služby sudo nano /etc/systemd/system/k3s.service # Do riadku ExecStart pridajte parameter --disable servicelb # Znovu načítajte konfiguráciu systemd a reštartujte k3s sudo systemctl daemon-reload sudo systemctl restart k3s
5. Zistené problémy a riešenia (Gotchas):
- Problém: DNS nefunguje.
- Riešenie: Overte, či
/etc/resolv.confvnútri podu ukazuje na IP adresu CoreDNS služby (typicky10.43.0.10). Ak nie, problém môže byť v Kubelete, ktorý nesprávne konfiguruje pody.
- Riešenie: Overte, či
- Problém: Pripojenie na
ClusterIPslužby visí.- Riešenie: Uistite sa, že beží buď
kube-proxyaleboserviceLB(nie oba, ani žiadny). Ak problém pretrváva, môže ísť o problém s CNI (napr. MTU) alebo s pravidlamiiptables, ktoré tieto komponenty vytvárajú.
- Riešenie: Uistite sa, že beží buď
- Problém: Pody sa neustále reštartujú.
- Riešenie:
kubectl describe podje kľúčový. Často odhalí, že pod bol ukončený pre prekročenie limitov pamäte (OOMKilled) alebo zlyhala jeholiveness/readinesssonda. V takom prípade je potrebné upraviťresources.limitsv manifeste deploymentu.
- Riešenie:
6. Finálny výsledok / Záver:
Tento záznam slúži ako pokročilá príručka pre riešenie komplexných problémov v k3s. Správne nastavenie MTU, vedomá voľba medzi kube-proxy a serviceLB, a schopnosť diagnostikovať problémy s alokáciou zdrojov sú kľúčové pre prevádzku stabilného a výkonného k3s clusteru.