My IBM Masuk Berlangganan

Sejarah Kubernetes

2 November 2023

Bacaan 7 menit

Dalam hal infrastruktur TI modern, peran Kubernetes, platform orkestrasi kontainer sumber terbuka yang mengotomatiskan penerapan, manajemen, dan penskalaan aplikasi dan layanan perangkat lunak dalam kontainer—tidak dapat diremehkan.

Menurut laporan Cloud Native Computing Foundation (CNCF) (tautan berada di luar ibm.com), Kubernetes adalah proyek sumber terbuka terbesar kedua di dunia setelah Linux dan alat orkestrasi kontainer utama untuk 71% perusahaan Fortune 100. Untuk memahami bagaimana Kubernetes dapat mendominasi pasar komputasi cloud dan layanan mikro, kita harus memeriksa sejarahnya.

Evolusi Kubernetes

Sejarah Kubernetes, yang namanya berasal dari bahasa Yunani Kuno untuk 'pilot' atau 'juru mudi' (orang di kemudi yang mengemudikan kapal) sering ditelusuri ke tahun 2013 ketika trio insinyur di Google—Craig McLuckie, Joe Beda dan Brendan Burns—mengajukan ide untuk membangun sistem manajemen kontainer sumber terbuka. Para pelopor teknologi ini mencari cara untuk membawa keahlian infrastruktur internal Google ke ranah komputasi cloud skala besar dan juga memungkinkan Google untuk bersaing dengan Amazon Web Services (AWS)—pemimpin yang tak tertandingi di antara penyedia cloud pada saat itu.

Infrastruktur TI tradisional versus infrastruktur TI virtual

 

Tetapi untuk benar-benar memahami sejarah Kubernetes—juga sering disebut sebagai “Kube” atau “K8s,” sebuah “numeronym” (tautan berada di luar ibm.com) —kita harus melihat kontainer dalam konteks infrastruktur TI tradisional versus infrastruktur TI virtual.

Di masa lalu, organisasi menjalankan aplikasi mereka hanya di server fisik (juga dikenal sebagai bare metal server). Namun, tidak ada cara untuk mempertahankan batas sumber daya sistem untuk aplikasi tersebut. Misalnya, setiap kali server fisik menjalankan beberapa aplikasi, satu aplikasi dapat menghabiskan seluruh daya pemrosesan, memori, ruang penyimpanan, atau sumber daya lain di server tersebut. Untuk mencegah hal ini terjadi, bisnis akan menjalankan setiap aplikasi di server fisik yang berbeda. Tetapi menjalankan aplikasi di beberapa server menciptakan sumber daya yang kurang dimanfaatkan dan masalah dengan ketidakmampuan untuk menskalakan. Terlebih lagi, memiliki sejumlah besar mesin fisik membutuhkan ruang dan merupakan upaya yang mahal.

Virtualisasi

 

Kemudian muncullah virtualisasi—proses yang membentuk fondasi bagi komputasi cloud. Meskipun teknologi virtualisasi dapat ditelusuri kembali ke akhir tahun 1960-an, teknologi ini belum diadopsi secara luas hingga awal tahun 2000-an.

Virtualisasi bergantung pada perangkat lunak yang dikenal sebagai hypervisor. Hypervisor adalah bentuk ringan dari perangkat lunak yang memungkinkan beberapa virtual machines (VM) untuk berjalan pada unit pemrosesan pusat (CPU) server fisik tunggal. Setiap virtual machines memiliki sistem operasi tamu (OS), salinan virtual perangkat keras yang diperlukan OS untuk berjalan dan aplikasi serta pustaka dan dependensi terkait. 

Meskipun VM menciptakan penggunaan sumber daya perangkat keras yang lebih efisien untuk menjalankan aplikasi daripada server fisik, VM masih menggunakan sumber daya sistem dalam jumlah besar. Hal ini terutama terjadi ketika banyak VM dijalankan pada server fisik yang sama, masing-masing dengan sistem operasi tamunya sendiri.

Kontainer

 

Masuki teknologi kontainer. Sebuah tonggak sejarah dalam pengembangan kontainer terjadi pada tahun 1979 dengan pengembangan chroot (tautan berada di luar ibm.com), bagian dari sistem operasi Unix versi 7. Chroot memperkenalkan konsep isolasi proses dengan membatasi akses file aplikasi ke direktori tertentu (root) dan anak-anaknya (atau subproses).

Kontainer masa kini didefinisikan sebagai unit perangkat lunak di mana kode aplikasi dikemas bersama dengan seluruh pustaka dan dependensinya. Hal ini memungkinkan aplikasi berjalan dengan cepat di lingkungan apa pun—baik on- maupun off-premise—dari desktop, pusat data pribadi, atau cloud publik.

Tidak seperti VM yang melakukan virtualisasi pada perangkat keras, kontainer melakukannya pada sistem operasi (biasanya Linux atau Windows). Kurangnya OS tamu inilah yang membuat kontainer ringan, serta lebih cepat dan lebih portabel daripada VM.

Borg: Pendahulu Kubernetes

Kembali pada awal 2000-an, Google membutuhkan cara untuk mendapatkan kinerja terbaik dari virtual servers untuk mendukung infrastruktur yang berkembang dan menghadirkan platform cloud publik. Hal ini menyebabkan terciptanya Borg, sistem manajemen kontainer terpadu pertama. Dikembangkan antara tahun 2003 dan 2004, sistem Borg dinamai sesuai dengan sekelompok alien Star Trek - Borg, yaitu organisme cybernetic yang berfungsi dengan berbagi pikiran sarang (kesadaran kolektif) yang disebut 'The Collective'.

Nama Borg cocok dengan proyek Google dengan baik. Sistem manajemen klaster berskala besar Borg pada dasarnya bertindak sebagai otak pusat untuk menjalankan beban kerja terkontainerisasi di seluruh pusat datanya. Didesain untuk berjalan bersama mesin pencari Google, Borg digunakan untuk membangun layanan internet Google, termasuk Gmail, Google Docs, Google Search, Google Maps, dan YouTube.

Borg mengizinkan Google menjalankan ratusan ribu pekerjaan, dari banyak aplikasi yang berbeda, di banyak mesin. Hal ini memungkinkan Google mencapai pemanfaatan sumber daya yang tinggi, toleransi kesalahan, dan skalabilitas untuk beban kerja berskala besar. Borg masih digunakan di Google saat ini sebagai sistem manajemen kontainer internal utama perusahaan.

Pada tahun 2013, Google memperkenalkan Omega, sistem manajemen kontainer generasi kedua. Omega membawa ekosistem Borg lebih jauh, dengan menyediakan solusi penjadwalan yang fleksibel dan dapat diskalakan untuk klaster komputer berskala besar. Juga pada tahun 2013, Docker, pemain kunci dalam sejarah Kubernetes, muncul dalam gambar.

Docker mengantarkan kontainerisasi sumber terbuka

Dikembangkan oleh dotCloud, sebuah perusahaan teknologi Platform sebagai Layanan (PaaS), Docker dirilis pada tahun 2013 sebagai alat perangkat lunak sumber terbuka yang memungkinkan pengembang perangkat lunak online untuk membangun, menerapkan, dan mengelola aplikasi dalam kontainer.

Teknologi kontainer Docker menggunakan kernel Linux (komponen dasar sistem operasi) dan fitur-fitur kernel untuk memisahkan proses sehingga dapat berjalan secara independen. Untuk mengurai kebingungan, nama Docker juga merujuk pada Docker, Inc. (sebelumnya dotCloud, tautan berada di luar ibm.com), yang mengembangkan peralatan produktivitas yang dibangun di sekitar platform kontainerisasi sumber terbuka, serta ekosistem dan komunitas sumber terbuka Docker (tautan berada di luar ibm.com).

Dengan mempopulerkan runtime kontainer yang ringan dan menyediakan cara yang sederhana untuk mengemas, mendistribusikan, dan menerapkan aplikasi ke dalam sebuah mesin, Docker menyediakan benih atau inspirasi bagi para pendiri Kubernetes. Ketika Docker muncul, para pendiri Google Craig McLuckie, Joe Beda, dan Brendan Burns sangat tertarik dengan kemampuan Docker untuk membangun kontainer individual dan menjalankannya pada mesin individual.

Kendati Docker telah mengubah arah permainan untuk infrastruktur cloud native, Docker memiliki keterbatasan karena dibangun untuk berjalan di atas satu node, yang membuat otomatisasi menjadi tidak mungkin dilakukan. Misalnya, karena aplikasi dibuat untuk ribuan kontainer terpisah, mengelolanya di berbagai lingkungan menjadi tugas yang sulit di mana setiap pengembangan harus dikemas secara manual. Tim Google melihat adanya kebutuhan—dan peluang—untuk sebuah orkestrator kontainer yang dapat menerapkan dan mengelola banyak kontainer di berbagai mesin. Dengan demikian, sistem manajemen kontainer generasi ketiga Google, Kubernetes, lahir.

Kelahiran Kubernetes

Banyak pengembang Kubernetes telah berusaha untuk mengembangkan Borg dan ingin membangun orkestrator kontainer yang menggabungkan semua yang telah mereka pelajari melalui desain dan pengembangan sistem Borg dan Omega untuk menghasilkan alat sumber terbuka yang tidak terlalu kompleks dengan antarmuka (UI) yang ramah pengguna. Sebagai penghormatan bagi Borg, mereka menamakannya Project Seven of Nine yang diambil dari karakter Star Trek: Voyager yang dulunya merupakan drone Borg. Meskipun nama asli proyek ini tidak digunakan, nama ini diabadikan oleh tujuh titik pada logo Kubernetes (tautan berada di luar ibm.com).

Dalam klaster Kubernetes

Arsitektur Kubernetes didasarkan pada klaster yang berjalan yang memungkinkan kontainer berjalan di berbagai mesin dan lingkungan. Setiap klaster biasanya terdiri dari dua kelas node:

  • Node pekerja, yang menjalankan aplikasi yang terkontainerisasi.
  • Kontrol node bidang, yang mengontrol klaster.

Bidang kontrol pada dasarnya bertindak sebagai pengatur klaster Kubernetes dan mencakup beberapa komponen—server API (mengelola semua interaksi dengan Kubernetes), manajer kontrol (menangani semua proses kontrol), manajer pengendali cloud (antarmuka dengan API penyedia cloud), dan seterusnya. Node pekerja menjalankan kontainer menggunakan runtime kontainer seperti Docker. Pod, unit terkecil yang dapat diterapkan dalam klaster, menyimpan satu atau lebih kontainer aplikasi dan berbagi sumber daya, seperti informasi penyimpanan dan jaringan.

Kubernetes untuk umum

Pada tahun 2014, Kubernetes memulai debutnya sebagai versi sumber terbuka dari Borg, dengan Microsoft, RedHat, IBM, dan Docker bergabung sebagai anggota awal komunitas Kubernetes. Alat perangkat lunak termasuk fitur dasar untuk orkestrasi kontainer, termasuk yang berikut:

  • Replikasi untuk menerapkan beberapa instance aplikasi
  • Penyeimbangan beban dan penemuan layanan
  • Pemeriksaan dan perbaikan kesehatan dasar
  • Penjadwalan untuk mengelompokkan banyak mesin bersama-sama dan mendistribusikan pekerjaan kepada mereka

Pada tahun 2015, di O'Reilly Open Source Convention (OSCON) (tautan berada di luar ibm.com), para pendiri Kubernetes meluncurkan versi Kubernetes yang diperluas dan disempurnakan—Kubernetes 1.0. Segera setelahnya, pengembang dari tim Red Hat OpenShift bergabung dengan tim Google, menyumbangkan pengalaman teknik dan perusahaan mereka untuk proyek tersebut.

Sejarah Kubernetes dan Cloud Native Computing Foundation

Bertepatan dengan rilis Kubernetes 1.0 pada tahun 2015, Google menyumbangkan Kubernetes ke Cloud Native Computing Foundation (CNCF) (tautan berada di luar ibm.com), bagian dari Linux Foundation nirlaba. CNCF dibangun bersama oleh banyak anggota perusahaan komputasi terkemuka dunia, termasuk Docker, Google, Microsoft, IBM, dan Red Hat. Misi (tautan berada di luar ibm.com) dari CNCF adalah “untuk membuat komputasi cloud native tersedia di mana-mana.”

Pada tahun 2016, Kubernetes menjadi proyek pertama yang di-host oleh CNCF, dan pada tahun 2018, Kubernetes adalah proyek pertama CNCF yang lulus. Jumlah perusahaan yang berkontribusi aktif meningkat dengan cepat menjadi lebih dari 700 anggota, dan Kubernetes dengan cepat menjadi salah satu proyek sumber terbuka dengan pertumbuhan tercepat dalam sejarah. Pada tahun 2017, mereka melampaui pesaing seperti Docker Swarm dan Apache Mesos untuk menjadi standar industri untuk orkestrasi kontainer.

Kubernetes dan aplikasi cloud native

Sebelum cloud, aplikasi perangkat lunak terikat pada server perangkat keras tempat aplikasi tersebut dijalankan. Namun pada tahun 2018, ketika Kubernetes dan kontainer menjadi standar manajemen untuk organisasi penjual otomatis cloud, konsep aplikasi cloud native mulai berlaku. Hal ini membuka kesempatan untuk penelitian dan pengembangan perangkat lunak berbasis cloud.

Kubernetes membantu dalam mengembangkan program berbasis layanan mikro cloud native dan memungkinkan kontainerisasi aplikasi yang sudah ada, sehingga memungkinkan pengembangan aplikasi yang lebih cepat. Kubernetes juga menyediakan otomatisasi dan observabilitas yang diperlukan untuk mengelola beberapa aplikasi secara efisien pada saat yang bersamaan. Infrastruktur deklaratif yang digerakkan oleh API dari Kubernetes memungkinkan tim pengembangan cloud native beroperasi secara independen dan meningkatkan produktivitas mereka.

Dampak berkelanjutan dari Kubernetes

Sejarah Kubernetes dan perannya sebagai platform sumber terbuka yang portabel, dapat diperluas, untuk mengelola beban kerja yang terkontainerisasi dan layanan mikro, terus berkembang.

Sejak Kubernetes bergabung dengan CNCF pada tahun 2016, jumlah kontributor telah tumbuh menjadi 8.012—meningkat 996% (tautan berada di luar ibm.com). Konferensi global unggulan CNCF, KubeCon + CloudNativeCon (tautan berada di luar ibm.com), menarik ribuan peserta dan memberikan forum tahunan untuk informasi dan insight pengembang dan pengguna tentang Kubernetes dan tren DevOps lainnya.

Di bidang transformasi cloud dan modernisasi aplikasi, adopsi Kubernetes tidak menunjukkan tanda-tanda melambat. Menurut laporan dari Gartner, The CTO's Guide to Containers and Kubernetes (tautan berada di luar ibm.com), lebih dari 90% organisasi dunia akan menjalankan aplikasi kontainer dalam produksi pada tahun 2027.

IBM dan Kubernetes

Pada tahun 2014, IBM merupakan salah satu perusahaan besar pertama yang bergabung dengan komunitas sumber terbuka Kubernetes dan membawa orkestrasi kontainer ke perusahaan. Saat ini, IBM membantu bisnis menavigasi perjalanan cloud mereka yang sedang berlangsung dengan implementasi orkestrasi kontainer Kubernetes dan solusi manajemen berbasis cloud lainnya.

Apa pun tujuan Anda, baik pengembangan aplikasi cloud-native, penerapan aplikasi berskala besar, atau mengelola layanan mikro, kami dapat membantu Anda memanfaatkan Kubernetes dan berbagai contoh penggunaannya.

Red Hat OpenShift on IBM Cloud menawarkan cara yang cepat dan aman bagi para pengembang OpenShift untuk melakukan kontainerisasi dan menerapkan beban kerja perusahaan dalam klaster Kubernetes.

IBM Cloud Code Engine, platform tanpa server yang dikelola sepenuhnya, memungkinkan Anda menjalankan kontainer, kode aplikasi, atau pekerjaan batch pada runtime kontainer yang dikelola sepenuhnya.

 

Penulis