0

Kubernetes Линтер Манифеста

Линтујте Kubernetes YAML манифесте према најбољим праксама отврдњавања кластера, потпуно офлајн у вашем прегледачу.

🔒 У потпуности се обрађује у вашем претраживачу — ништа што овде унесете се никада не отпрема.

Обрада... 0%
Парсирање YAML-а
Прегледање манифеста
Провера правила отврдњавања
Готово

Резултат

Kubernetes манифести се обично прегледају на око у pull request-у, што значи да исте шачице грешака у отврдњавању редовно стижу у продукцију: Deployment без меморијског лимита који временом буде OOM-kill-ован и повуче нод за собом, контејнер који срећно ради као root јер нико није поставио runAsNonRoot, или Pod прикачен на ознаку слике попут `:latest` која се нечујно промени током rollout-а. Овај линтер хвата ту класу проблема чим налепите манифест, без потребе за радним кластером, kubectl контекстом или било каквим креденцијалима.

Испод хаубе се налази мали ручно написан YAML парсер развијен посебно за реалан подскуп YAML-а који Kubernetes манифести заиста користе: `---`-одвојени документи, угнежђавање засновано на увлачењу, `key: value` и угнежђена блок мапирања, `-` секвенце укључујући листе мапа, цитирани и нецитирани скалари, коментари и `|`/`>` блок скалари за ствари попут вредности ConfigMap-а или анотација у више редова. Ниједна спољна YAML библиотека није укључена — и парсер и машина за правила су упаковани са алатом и у потпуности се извршавају у вашем прегледачу.

Табела правила је креирана по узору на добро познате смернице за отврдњавање кластера — CIS Kubernetes Benchmark, kube-score и Pod Security Standards профил „Restricted“ — и проверава сваки контејнер за недостајуће ресурсне захтеве/лимите, контејнере који могу да се покрећу као root или у привилегованом режиму, недостајуће liveness и readiness пробе на дуготрајним пословима (Deployments, StatefulSets, DaemonSets), hostPath волумене који излажу фајл систем хоста, hostNetwork употребу и нерепродуцибилне ознаке слика `:latest` или без ознаке. Налази су груписани по документу и по контејнеру, са јасном ознаком тежине грешка/упозорење на сваком, тако да можете разликовати шта је заиста ризично од онога што је само подстицај најбоље праксе.

Ради на појединачним манифестима или читавим датотекама са више докумената налепљеним директно из Helm template рендера или излаза `kustomize build`, разумевајући Pod, Deployment, StatefulSet, DaemonSet, Job, ReplicaSet и CronJob ресурсе. Пошто се све извршава локално, безбедно је налепити манифесте који садрже интерна имена сервиса, стварно димензионисање ресурса или било шта друго што не бисте желели да шаљете API-ју треће стране — корисно за брзу проверу исправности пре комита, помоћ при прегледу кода или једноставно учење како „отврднуто“ заиста изгледа у пракси.