Kubernetes Condition

Beberapa waktu lalu aku menemukan artikel yang menjelaskan tentang Kubernetes condition. Dari situ aku belajar bahwa sumber daya yang ada di Kubernetes seperti pod, cronjob atau yang lainnya tidak mempunyai state machine untuk menjukkan apa sumber daya itu sedang menyala atau mati. Sebagai gantinya adalah Kubernetes condition. Ambil contoh pod Kubernetes yang mempunyai salah satu Kubernetes condition yang bernama ContainersReady.

Yang menarik lagi adalah antar jenis sumber daya bisa memiliki Kubernetes condition yang sama atau berbeda. Namun, status semua Kubernetes condition sepertinya hanya bisa di antara tiga nilai: True, False, Unknown. Tentunya kita bisa membuat Kubernetes condition kita sendiri dan menempelkannya pada jenis sumber daya bawaan atau buatan sendiri. Salah satu penjelas rujukan yang dipakai artikel itu adalah konvensi API Kubernetes dan ada satu pernyataan yang sebaiknya tidak dilupakan:

Condition type names should describe the current observed state of the resource, rather than describing the current state transitions.

Pernyataan ini membuatku sedikit lebih paham kenapa Kubernetes bekerja seperti itu. Pertama, kita mendefinisikan seperti apa bentuk sumber daya. Kubernetes controller kemudian melakukan rekonsiliasi melalui proses sync loop sehingga suatu kondisi tercapai. Proses sumber daya untuk mencapai sesuai yang didefinisikan bisa gagal dan ada juga Kubernetes condition yang menggambarkan kegagalan itu.

Mengendarai Sepeda

"Hidup itu seperti mengendarai sepeda." ~Albert Einstein

Ingatkah ketika kamu pertama kali belajar mengendarai sepeda? Pasti kamu menggunakan roda bantu yang dipasang di samping roda belakang sepeda. Setiap hari kamu terus mengendarai sepeda sampai akhirnya kamu bisa mengendarai sepeda tanpa roda bantu. Meski begitu kamu masih belum terlalu piawai. Kadang-kadang kamu terjatuh.

Siapa yang mengajarimu mengendarai sepeda? Apakah dia ayah ibumu, kakek nenekmu, sepupu, kakakmu? Pernahkah kamu ingat mengajarimu teori yang rumit tentang mengendarai sepeda? Aku tebak pasti jawabannya tidak. Kamu langsung mempraktikkannya. Begitu terbiasa, kamu sudah tidak akan lupa lagi mengendarai sepeda.

Di titik ini aku terpikirkan kesamaan belajar mengendarai sepeda dengan belajar bahasa pemrograman komputer baru. Pada umumnya pemula akan memplajari dulu sintaks bahasa pemrograman komputer itu. Apakah itu pendekatan yang tepat? Pemahaman sintaks memang perlu tapi aku bisa membayangkan sebuah metode di mana pelajar langsung praktik membuat software rumit di bawah bimbingan seoarang pakar.

Halo Dunia

"Tidakkah cerita yang hebat itu mempunyai akhir?" ~J.R.R Tolkien

Dua kata yang hampir selalu ditulis oleh seorang pemula yang mempelajari bahasa pemrograman komputer adalah "Hello World" (Halo Dunia). Menurut legenda dua kata ini bermula dari sebuah program contoh yang ditulis oleh Brian Kernighan untuk memperkenalkan bahasa pemrograman C pada 1970 silam. Di sinilah aku memulai blog ini dengan "Halo Dunia."

Sejak 1970 komputer dan software berkembang dengan pesat. Kenyamnan yang kita nikmati bersama tidak bisa terlepas dari software yang semakin canggih dan rumit. Ada yang bilang kerumitan yang muncul itu sengaja dibuat-buat, istilahnya accidental complexity. Aku ingin mengerti, dengan bahasaku sendiri, apa betul kerumitan itu sengaja dibuat-buat. Selain itu, selama berkarir dan menjalani hidup, Aku senantiasa menjumpai hal-hal baru. Aku jarang berhenti dan meresapi apa yang baru aku temui itu. Sesungguhnya kebiasaan lama ini perlu diubah.

Terima kasih telah membaca. Mengutip percakapan Frodo dan Sam, "Sesungguhnya kisah yang hebat itu tidak berakhir. Hanya orang-orangnya saja yang datang dan pergi ketika bagian mereka sudah selesai." Selama bagianku masih ada, aku akan menuliskan sedikit cerita.