Co je validátor Kubernetes YAML?
Validátor Kubernetes YAML zkontroluje vaše K8s manifesty na strukturní chyby, chybějící povinná pole, zastaralé verze API i porušení osvědčených postupů — dřív, než je nasadíte do clusteru. Odchycení těchto problémů před kubectl apply předchází neúspěšným nasazením, pádům podů a těžko dohledatelným chybám při rolloutu. Validátor běží zcela ve vašem prohlížeči — YAML nikdy neopustí váš počítač, takže je bezpečný i pro citlivé konfigurace.
Co všechno validátor kontroluje
- Povinná pole: Každý prostředek potřebuje apiVersion, kind a metadata.name. Jejich absence je nejčastější příčinou odmítnutých manifestů.
- Zastaralá API: Odhalí staré verze API jako apps/v1beta1, apps/v1beta2, extensions/v1beta1, policy/v1beta1 či batch/v1beta1 a navrhne aktuální náhradu (například apps/v1 pro Deployment nebo networking.k8s.io/v1 pro Ingress).
- Osvědčené postupy pro kontejnery: Upozorní na obrazy se značkou :latest, chybějící limity a requesty prostředků a chybějící liveness/readiness sondy.
- Nastavení spolehlivosti: Deploymenty s jednou replikou, chybějící namespace i chybějící labels, které rozbíjejí selektory a síťové politiky.
- Vícedokumentové soubory: Ověří všechny dokumenty oddělené --- v jednom průchodu, tak jak bývají běžně dodávány šablony Helm či výstupy kustomize.
Jak ověřit Kubernetes YAML
- Vložte manifest do editoru, nahrajte soubor .yaml nebo si vyzkoušejte jeden z vestavěných příkladů.
- Klikněte na Validate YAML. Manifest se zpracuje přímo v prohlížeči a každý prostředek se zkontroluje podle výše uvedených pravidel.
- Projděte výsledky: chyby je nutné opravit, varování jsou doporučení z osvědčených postupů. Kliknutím na prostředek ve stromu přeskočíte mezi nálezy.
- Opravte manifest a validujte znovu, dokud nezůstanou jen zelené fajfky, poté jej nasaďte pomocí kubectl.
Proč validovat před kubectl apply?
API server odmítne poškozené manifesty až při nasazení, ale strukturní chyby jsou jen první vrstvou problémů. Syntakticky platný Deployment může i tak naplánovat pody, které se zacyklí v pádu kvůli chybějící sondě, vyčerpají paměť uzlu, protože limity nikdy nebyly nastaveny, nebo tiše zhatí upgrade clusteru, protože cílí na verzi API odstraněnou v novějších vydáních. Problém zastaralých API je klasika: manifesty psané pro starší clustery fungují měsíce či roky a pak přestanou fungovat během upgradu Kubernetes. Kontrola manifestů během vývoje — stejně jako lint kódu — odhalí tyto problémy, když jsou ještě levné na opravu.
Klientská validace také doplňuje, nikdy nenahrazuje serverové nástroje jako kubeconform či --dry-run=server od kubectl: dává okamžitou zpětnou vazbu bez instalace, bez přístupu do clusteru a bez rizika odeslání důvěrných manifestů službám třetích stran.