0

Kubernetes Manifest Linter

Lint Kubernetes YAML, tarayıcınızda tamamen çevrimdışı olarak küme güçlendirmeye yönelik en iyi uygulamalara karşı kendini gösterir.

Buy Me a Coffee at ko-fi.com
İşleniyor... 0%
YAML ayrıştırılıyor
Yürüyüş manifestosu
Sertleştirme kurallarını kontrol etme
Bitti

Sonuç

Kubernetes bildirimleri genellikle bir çekme isteğinde gözle incelenir; bu, aynı bir avuç sertleştirme hatasının üretime devam ettiği anlamına gelir: Sonunda OOM tarafından öldürülen ve onunla birlikte bir düğüm alan, bellek sınırı olmayan bir Dağıtım, kimse runAsNonRoot ayarlamadığı için mutlu bir şekilde kök olarak çalışan bir kapsayıcı veya bir kullanıma sunmanın altında sessizce değişen ":latest" gibi bir resim etiketine sabitlenmiş bir Pod. Bu linter, çalışan bir kümeye, kubectl bağlamına veya herhangi bir kimlik bilgilerine ihtiyaç duymadan, bir bildirimi yapıştırdığınız anda bu tür sorunları yakalar.

Kaputun altında, Kubernetes'in gerçekte kullandığı gerçekçi YAML alt kümesi için özel olarak yazılmış, elle yuvarlanan küçük bir YAML ayrıştırıcısı bulunur: `---'-ayrı belgeler, girintiye dayalı yuvalama, `anahtar: değer' ve yuvalanmış blok eşlemeleri, harita listeleri, tırnaklı ve tırnaksız skalerler, yorumlar ve çok satırlı ConfigMap gibi şeyler için `|`/`>` blok skalerler içeren `- ` sıra öğeleri değerler veya ek açıklamalar. Harici bir YAML kitaplığı yoktur; ayrıştırıcı ve kural motoru araçla birlikte gelir ve tamamen tarayıcınızda çalışır.

Kural tablosu, iyi bilinen küme güçlendirme kılavuzu (CIS Kubernetes Benchmark, kube-score ve Pod Güvenlik Standartları "Kısıtlı" profili) temel alınarak modellenmiştir ve her bir kapsayıcıyı eksik kaynak istekleri/sınırları, kök olarak veya ayrıcalıklı modda çalışabilen kapsayıcılar, uzun süren iş yüklerinde (Dağıtımlar, StatefulSet'ler, DaemonSet'ler) eksik canlılık ve hazırlık araştırmaları, ana bilgisayar dosya sistemini açığa çıkaran hostPath birim bağlantıları açısından kontrol eder. hostNetwork kullanımı ve yeniden üretilemeyen `:en son` veya etiketsiz kapsayıcı görüntüleri. Bulgular belgeye ve kapsayıcıya göre gruplandırılır ve her birinde net bir hata/uyarı ciddiyeti bulunur; böylece neyin gerçekten riskli olduğunu yalnızca en iyi uygulama niteliğindeki bir dürtükle ayırt edebilirsiniz.

Pod, Deployment, StatefulSet, DaemonSet, Job, ReplicaSet ve CronJob kaynaklarını anlayarak doğrudan bir Helm şablonu oluşturma veya "özelleştirilmiş yapı" çıktısından yapıştırılan tek bildirimler veya çoklu belge dosyalarının tamamı üzerinde çalışır. Her şey yerel olarak çalıştığından, dahili hizmet adlarını, gerçek kaynak boyutunu veya üçüncü taraf bir API'ye göndermek istemeyeceğiniz herhangi bir şeyi içeren bildirimleri yapıştırmak güvenlidir; hızlı bir taahhüt öncesi akıl sağlığı kontrolü, kod inceleme yardımı veya yalnızca "sertleştirilmiş"in pratikte gerçekte neye benzediğini öğrenmek için kullanışlıdır.