0

Kubernetes Manifest Linter

Lint Kubernetes YAML se projevuje proti osvědčeným postupům zpevnění clusteru, zcela offline ve vašem prohlížeči.

Buy Me a Coffee at ko-fi.com
Zpracování... 0%
Analýza YAML
Chodící manifest
Kontrola pravidel kalení
Hotovo

Výsledek

Manifesty Kubernetes jsou obvykle kontrolovány očima v požadavku na stažení, což znamená, že se do produkce dostává stále stejná hrstka zpevňujících chyb: Deployment bez omezení paměti, které nakonec zabije OOM a vezme si s sebou uzel, kontejner, který šťastně běží jako root, protože nikdo nenastavil runAsNonRoot, nebo Pod připojený ke značce obrázku, jako je `:latestne a rollout`, který se tiše změní. Tento linter zachytí tuto třídu problému v okamžiku, kdy vložíte manifest, aniž byste potřebovali spuštěný cluster, kontext kubectl nebo jakékoli pověření.

Pod kapotou obsahuje malý ručně svinutý analyzátor YAML napsaný speciálně pro realistickou podmnožinu YAML, kterou manifesty Kubernetes ve skutečnosti používají: `---`-oddělené dokumenty, vnořování založené na odsazení, `klíč: hodnota` a vnořená mapování bloků, `- ` sekvenční položky včetně seznamů map, citované a neuvozené věci pro bloky v uvozovkách `|/,`` skaláry s uvozovkami `|/,`` Hodnoty nebo anotace ConfigMap. Není zahrnuta žádná externí knihovna YAML – analyzátor i modul pravidel jsou součástí nástroje a běží zcela ve vašem prohlížeči.

Tabulka pravidel je modelována na základě dobře známých pokynů pro posílení clusteru – CIS Kubernetes Benchmark, kube-score a profil Pod Security Standards „Restricted“ – a kontroluje každý kontejner na chybějící požadavky/omezení zdrojů, kontejnery, které mohou běžet jako root nebo v privilegovaném režimu, chybějící sondy živosti a připravenosti na dlouhotrvajících pracovních zátěžích (Deployments, DamountPaytosethosethfulSets) hostitelský souborový systém, využití hostitelské sítě a nereprodukovatelné `:nejnovější` nebo neoznačené obrazy kontejnerů. Nálezy jsou seskupeny podle dokumentu a kontejneru s jasnou závažností chyb/varování u každého z nich, takže můžete rozlišit, co je skutečně riskantní, od toho, co je pouze doporučeným postupem.

Funguje na jednotlivých manifestech nebo celých souborech s více dokumenty vloženými přímo z vykreslení šablony Helm nebo výstupu `kustomize build`, přičemž rozumí prostředkům Pod, Deployment, StatefulSet, DaemonSet, Job, ReplicaSet a CronJob. Protože vše běží lokálně, je bezpečné vkládat manifesty, které obsahují interní názvy služeb, skutečné velikosti zdrojů nebo cokoli jiného, ​​co byste nechtěli posílat do rozhraní API třetí strany – užitečné pro rychlou kontrolu zdravého rozumu před potvrzením, pomůcku při kontrole kódu nebo se jen naučit, jak „zpevněný“ vlastně vypadá v praxi.