0

Linter Manifes Kubernetes

Lint Kubernetes YAML bermanifestasi berdasarkan praktik terbaik pengerasan cluster, sepenuhnya offline di browser Anda.

Buy Me a Coffee at ko-fi.com
Memproses... 0%
Mengurai YAML
Manifes berjalan
Memeriksa aturan pengerasan
Selesai

Hasil

Manifes Kubernetes biasanya ditinjau langsung dalam pull request, yang berarti sejumlah kesalahan pengerasan yang sama terus terjadi hingga produksi: Deployment tanpa batas memori yang pada akhirnya membuat OOM terhenti dan membawa sebuah node bersamanya, sebuah container yang dengan senang hati berjalan sebagai root karena tidak ada yang menyetel runAsNonRoot, atau sebuah Pod yang disematkan ke tag gambar seperti `:latest` yang diam-diam berubah saat peluncuran. Linter ini menangkap kelas masalah tersebut saat Anda menempelkan manifes, tanpa memerlukan cluster yang sedang berjalan, konteks kubectl, atau kredensial apa pun sama sekali.

Di dalamnya terdapat parser YAML linting tangan kecil yang ditulis khusus untuk subset YAML realistis yang sebenarnya digunakan oleh manifes Kubernetes: `---`-dokumen yang dipisahkan, penyusunan sarang berbasis lekukan, `kunci: nilai` dan pemetaan blok bersarang, `- ` item urutan termasuk daftar peta, skalar yang diberi tanda kutip dan tidak dikutip, komentar, dan skalar blok `|`/`>` untuk hal-hal seperti multi-baris Nilai atau anotasi ConfigMap. Tidak ada pustaka YAML eksternal yang terlibat — parser dan mesin aturan keduanya disertakan dengan alat ini dan dijalankan sepenuhnya di browser Anda.

Tabel aturan dimodelkan berdasarkan panduan pengerasan klaster yang terkenal — CIS Kubernetes Benchmark, kube-score, dan profil "Dibatasi" Standar Keamanan Pod — dan memeriksa setiap container apakah ada permintaan/batas sumber daya yang hilang, container yang dapat dijalankan sebagai root atau dalam mode istimewa, tidak ada pemeriksaan liveness dan kesiapan pada beban kerja yang berjalan lama (Deployment, StatefulSets, DaemonSets), mount volume hostPath yang mengekspos sistem file host, penggunaan hostNetwork, dan gambar container `:terbaru` yang tidak dapat direproduksi atau tidak diberi tag. Temuan dikelompokkan berdasarkan dokumen dan wadah, dengan tingkat kesalahan/peringatan yang jelas pada masing-masing temuan sehingga Anda dapat mengetahui apa yang sebenarnya berisiko dari sekadar dorongan praktik terbaik.

Ia bekerja pada manifes tunggal atau seluruh file multi-dokumen yang ditempel langsung dari render template Helm atau output `kustomisasi build`, memahami sumber daya Pod, Deployment, StatefulSet, DaemonSet, Job, ReplicaSet, dan CronJob. Karena semuanya berjalan secara lokal, aman untuk menempelkan manifes yang berisi nama layanan internal, ukuran sumber daya sebenarnya, atau apa pun yang tidak ingin Anda kirim ke API pihak ketiga — berguna untuk pemeriksaan kewarasan pra-komitmen cepat, bantuan peninjauan kode, atau sekadar mempelajari seperti apa sebenarnya "pengerasan" dalam praktiknya.