digilib@itb.ac.id +62 812 2508 8800

Dalam menjalankan aplikasi pada sebuah server ada banyak pendekatan yang dapat dilakukan, salah satunya adalah menjalankannya dalam bentuk container. Untuk memudahkan manajemennya, kakas container orchestrator seperti Kubernetes banyak digunakan. Untuk mempermudah maintenance, berbagai platform managed Kubernetes mulai bermunculan, salah satunya adalah yang ditawarkan Google dengan nama Google Kubernetes Engine. Untuk menghemat biaya, Google Cloud Platform juga menyediakan virtual machinepreemptibleyang dapat digunakan sebagai node Kubernetes. Virtual machinepreemptibleharganya lebih murah tapi memiliki banyak kekurangan. Kekurangan-kekurangan tersebut dapat mengganggu ketersediaan workload jika tidak ditangani. Pada tugas akhir ini, diimplementasikan sistem dengan nama Iodine. Sistem ini menggabungkan dua metode yaitu graceful shutdown dan node scheduling untuk membantu meningkatkan ketersediaan sistem. Pendekatan graceful shutdowndilakukan dengan mengatur readiness probe dari pod pada node yang ingin dimatikan agar mengembalikan nilai tidak ready. Akibatnya pod-pod tersebut tidak akan menerima request baru sehingga dapat dimatikan dengan aman. Untuk pendekatan node scheduling dilakukan dengan secara random mematikan nodesebelum 24 jam. Tujuannya adalah agar tidak terjadi kondisi saat mayoritas kapasitas klaster hilang di saat bersamaan. Dari hasil implementasi maka dapat terlihat bahwa sistem Iodine berhasil menurunkan jumlah request gagal hingga 65%. Dari hasil eksperimen didapati juga bahwa pendekatan scheduling ternyata sedikit menurunkan ketersediaan sistem pada kondisi normal. Akan tetapi pendekatan tersebut dibutuhkan untuk mengurangi kemungkinan semua node dimatikan bersamaan