zeropod - Pod yang diskalakan turun ke 0
(github.com/ctrox)- Alat runtime yang dikembangkan untuk mengurangi pemborosan sumber daya dari kontainer tidak aktif di lingkungan Kubernetes
- Jika tidak ada koneksi TCP selama jangka waktu tertentu, kontainer secara otomatis disimpan sebagai checkpoint ke disk
- Berjalan dalam bentuk containerd shim, menyimpan status memori kontainer lalu menghentikannya, dan kemudian memulihkannya dalam beberapa milidetik saat koneksi pertama datang
- Saat dipulihkan, seluruh status aplikasi dipulihkan apa adanya, sehingga dari sudut pandang pengguna hampir tidak ada latensi
- Menggunakan pengalihan berbasis eBPF untuk meneruskan paket TCP ke proksi, lalu beralih ke koneksi langsung setelah pemulihan selesai
- Melakukan checkpoint dan pemulihan dengan CRIU - Checkpoint and Restore in Userspace
- Menyediakan alur pemulihan otomatis pada permintaan pertama melalui activation sequence
- Mencakup logika tunggu cerdas yang melacak aktivitas TCP terbaru untuk mencegah penghentian dan pemulihan yang terlalu sering
- Di Kubernetes, kontainer tetap dikenali seolah-olah terus berjalan sehingga mencegah restart runtime
- Saat menjalankan perintah
kubectl exec, kontainer dipulihkan otomatis sehingga dapat diakses seperti kontainer biasa - Setiap proses shim mengumpulkan metrik, lalu zeropod-manager di tingkat node menggabungkannya dan mengeksposnya melalui endpoint HTTP
- Menyediakan fitur in-place scaling untuk menyesuaikan permintaan sumber daya secara dinamis jika klaster mendukungnya
- Saat node draining, Pod yang sudah diskalakan turun dapat dimigrasikan ke node lain
- Juga mendukung live migration sebagai fitur eksperimental
- Cocok untuk layanan dengan trafik rendah, lingkungan pengembangan·staging, tier murah pada platform mirip Heroku, dan backend untuk situs statis
- Sebagian besar program dapat berjalan tanpa modifikasi khusus, dan kesalahan CRIU dapat dianalisis melalui log containerd
4 komentar
Reinkarnasi
inetd? (bercanda)Tahun lalu saya melihat Elastic Machine Pool dari Platform 9 di AWS re:Invent, dan saat itu terasa agak memberatkan untuk sekadar coba-coba karena khusus B2B, tetapi yang ini instalasinya sederhana dan cara kerjanya juga intuitif, jadi bagus. Saya ingin mengalokasikan resource secara agresif di lingkungan pengembangan tanpa merusak pengalaman pengguna, jadi kalau setelah PoC hasilnya oke, sepertinya layak dipertimbangkan untuk diadopsi.
Saya sempat bertanya apa bedanya dengan KNative, dan tampaknya dua kalimat di bawah ini adalah inti utamanya.
containerd shim, lalu menyimpan status memori kontainer sebelum dihentikan, dan kemudian memulihkannya dalam hitungan beberapa milidetik saat koneksi pertama masuklambda. . .. ?