0

Kubernetes Manifest Linter

Lint Kubernetes YAML manifestira se protiv najboljih praksi očvršćivanja klastera, potpuno offline u vašem pregledniku.

Buy Me a Coffee at ko-fi.com
Obrada... 0%
Raščlanjivanje YAML-a
Hodajući manifest
Provjera pravila otvrdnjavanja
Gotovo

Rezultat

Manifesti Kubernetesa obično se pregledavaju okom u zahtjevu za povlačenjem, što znači da isti niz pogrešaka očvršćivanja stalno dolazi do produkcije: implementacija bez ograničenja memorije koja se na kraju ugasi OOM-om i nosi čvor sa sobom, spremnik koji sretno radi kao root jer nitko nije postavio runAsNonRoot ili Pod prikvačen na oznaku slike poput `:latest` koji se tiho mijenja ispod izvođenje. Ovaj linter hvata tu klasu problema u trenutku kada zalijepite manifest, bez potrebe za pokrenutim klasterom, kubectl kontekstom ili bilo kakvim vjerodajnicama.

Ispod haube uključuje mali ručno izrađeni YAML parser napisan posebno za realističan podskup YAML-a koji Kubernetes manifesti zapravo koriste: `---`-odvojeni dokumenti, ugniježđivanje temeljeno na uvlačenju, `ključ: vrijednost` i ugniježđena mapiranja blokova, `- ` stavke slijeda uključujući popise mapa, skalare u navodnicima i bez navodnika, komentare i blok skalare `|`/`>` za stvari kao što su ConfigMap vrijednosti ili bilješke u više redaka. Nema uključene vanjske YAML knjižnice — raščlanjivač i mehanizam za pravila uključeni su u paket s alatom i u potpunosti se pokreću u vašem pregledniku.

Tablica pravila oblikovana je prema dobro poznatim smjernicama za jačanje klastera — CIS Kubernetes Benchmark, kube-score i Pod Security Standards "Restricted" profil — i provjerava svaki spremnik na nedostajuće zahtjeve/ograničenja resursa, spremnike koji se mogu izvoditi kao root ili u privilegiranom načinu rada, nedostajuće sonde živosti i spremnosti na radnim opterećenjima koja se dugo izvode (Deployments, StatefulSets, DaemonSets), postavljanja volumena hostPath koja otkrivaju datotečni sustav hosta, korištenje mreže hosta i neponovljive `:latest` ili neoznačene slike spremnika. Nalazi su grupirani po dokumentu i po spremniku, s jasnom ozbiljnošću pogreške/upozorenja na svakom od njih tako da možete razlikovati što je zapravo rizično od onoga što je samo poticaj najbolje prakse.

Radi na pojedinačnim manifestima ili cijelim datotekama s više dokumenata zalijepljenim izravno iz Helm predloška renderiranja ili izlaza `kustomize build`, razumijevajući Pod, Deployment, StatefulSet, DaemonSet, Job, ReplicaSet i CronJob resurse. Budući da se sve izvodi lokalno, sigurno je zalijepiti manifeste koji sadrže nazive internih usluga, stvarnu veličinu resursa ili bilo što drugo što ne biste željeli poslati API-ju treće strane — korisno za brzu provjeru ispravnosti prije predaje, pomoć pri pregledu koda ili samo učenje kako "otvrdnuto" zapravo izgleda u praksi.