23 poin oleh iwanhae 2025-06-16 | 7 komentar | Bagikan ke WhatsApp

Secara pribadi saya cukup menyukai Kubernetes, tetapi tetap ada beberapa hal yang terasa kurang: karena abstraksinya terlalu baik, elemen fisik yang sebenarnya jadi tersembunyi sehingga sulit untuk diperiksa.

Contohnya

  • Saat sebuah Pod mengalami gangguan, bagaimana kondisi Pod lain yang dideploy di node yang sama?
  • Apakah semua Pod yang saat ini terhubung ke Service berjalan dengan normal?
  • Bagaimana penggunaan CPU dan Memory pada node saat ini? Dari situ, seberapa besar porsi masing-masing Pod?
  • Apa daftar PV yang saat ini terhubung ke node?

Tentu bukan berarti informasinya sama sekali tidak ada; ada cara untuk memvisualisasikannya satu per satu melalui kombinasi kubectl dan alat pemantauan seperti Prometheus, tetapi kenyataannya itu cukup merepotkan.

Untuk membantu dalam situasi seperti itu, saya membuat sebuah dasbor Kubernetes real-time berbasis web. Tanpa perlu memasang apa pun secara terpisah, selama perintah kubectl proxy bisa digunakan, ini bekerja dalam bentuk WASM di dalam browser web dengan cara me-WATCH semua resource Kubernetes.

7 komentar

 
xogns556 2025-06-20

Sepertinya angka Running / Terminating berubah bukan per 1 detik, melainkan dalam satuan 0,00x detik. Sebenarnya dengan mekanisme seperti apa angka itu terus berubah? Apakah terus-menerus memanggil API k8s?

Saya ingin menggunakannya, tetapi agak khawatir jangan-jangan ini memberi beban yang sangat besar pada read request API k8s, jadi saya bertanya!

 
iwanhae 2025-06-21

Menggunakan WATCH API dari K8s.
https://kubernetes.io/docs/reference/…

Karena hanya menerima perubahan melalui protobuf dan SSE, ini cukup efisien dan bebannya sangat kecil. (tingkat bebannya kira-kira setara dengan beban yang diberikan kubelet ke kube apiserver)

Namun, jika digunakan oleh banyak orang secara bersamaan, saya merekomendasikan mode server daripada wasm. Karena server yang akan mengambil permintaan dan menyimpan datanya di memori lalu memberikannya, beban pada kube apiserver menjadi lebih kecil.

 
taeuk 2025-06-17

File WASM-nya sekitar 90 MB, jadi memang lumayan besar.

 
iwanhae 2025-06-17

Ukurannya memang besar, tetapi sepertinya entropinya tidak terlalu tinggi. Saat ini ketika diunduh dengan curl, ukuran file yang sudah di-gzip hanya sekitar 14MB. Bahkan saat benar-benar menyajikan WASM, belakangan ini algoritma encoding seperti gzip, zstd, dan brotli umumnya juga diterapkan, jadi diperkirakan trafik yang benar-benar ditransmisikan tidak akan terlalu tinggi.

 
kandk 2025-06-18

Saya juga penasaran bagaimana jika binary-nya dikompresi dengan zstd.

 
roxie 2025-06-16

Ini agak topik lain, tetapi saya penasaran apakah proses konversi ke WASM dan penggunaannya berjalan mulus (apakah tidak ada kendala yang dirasakan)!

 
iwanhae 2025-06-16

Saya awalnya membuatnya secara kasar dulu dengan WASM, lalu belakangan hanya logika umum yang dirapikan dan kode sisi server dipisahkan sendiri, jadi tidak ada ketidaknyamanan yang berarti. Malah sekarang, meski kodenya saya ubah secara kasar, perubahan itu tetap diterapkan ke sisi server dan WASM sekaligus, jadi saya cukup puas memakainya. haha