Kubernetes, dikenal juga sebagai k8s atau kube, adalah platform orkestrasi kontainer sumber terbuka untuk menjadwalkan dan mengotomatiskan penerapan, pengelolaan, dan penskalaan aplikasi dalam kontainer.
Saat ini, Kubernetes dan ekosistem yang lebih luas dari teknologi terkait kontainer telah bergabung untuk membentuk blok pembangun infrastruktur cloud modern. Ekosistem ini memungkinkan organisasi untuk menghadirkan lingkungan komputasi hybrid multicloud yang sangat produktif untuk melakukan berbagai tugas kompleks seputar infrastruktur dan operasi. Selain itu, ekosistem ini juga mendukung pengembangan cloud native dengan memungkinkan pendekatan bangun satu kali dan terapkan di mana saja untuk membangun aplikasi.
Kata Kubernetes berasal dari bahasa Yunani yang berarti juru mudi atau pilot, sesuai dengan helm yang ada di logo Kubernetes.
Kontainer adalah komponen aplikasi ringan dan dapat dieksekusi yang menggabungkan kode sumber dengan semua pustaka sistem operasi (OS) dan dependensi yang diperlukan untuk menjalankan kode di lingkungan apa pun.
Kontainer memanfaatkan bentuk virtualisasi OS yang memungkinkan beberapa aplikasi untuk berbagi satu instans OS dengan mengisolasi proses dan mengendalikan jumlah CPU, memori, dan disk yang dapat diakses oleh proses tersebut. Karena berukuran lebih kecil, lebih hemat sumber daya, dan lebih portabel daripada mesin virtual (VM), kontainer telah menjadi unit komputasi de facto dari aplikasi cloud native modern. Kontainer juga lebih hemat sumber daya. Mereka memungkinkan Anda untuk menjalankan lebih banyak aplikasi pada mesin yang lebih sedikit (server virtual dan server fisik) dengan instans OS yang lebih sedikit.
Karena kontainer dapat berjalan secara konsisten di mana saja, kontainer menjadi penting bagi arsitektur dasar yang mendukung lingkungan hybrid multicloud, gabungan antara on premises, cloud pribadi, cloud publik, dan lebih dari satu layanan cloud dari lebih dari satu vendor cloud.
Docker adalah alat yang paling populer untuk membuat dan menjalankan kontainer Linux. Meskipun bentuk awal kontainer telah diperkenalkan beberapa dekade lalu (dengan teknologi seperti FreeBSD Jails dan AIX Workload Partitions), kontainer disesuaikan pada tahun 2013 ketika Docker membawanya ke masyarakat dengan implementasi baru yang ramah pengembang dan cloud.
Docker dimulai sebagai proyek sumber terbuka, tetapi saat ini juga merujuk pada Docker Inc., perusahaan yang memproduksi Docker—sebuah toolkit kontainer komersial yang dibangun di atas proyek sumber terbuka (dan menyumbangkan perbaikannya kembali ke komunitas sumber terbuka).
Docker dibangun di atas teknologi kontainer Linux tradisional, tetapi memungkinkan virtualisasi yang lebih terperinci dari proses kernel Linux dan menambahkan fitur-fitur untuk membuat kontainer lebih mudah diakses oleh para pengembang untuk membangun, menggunakan, mengelola, dan mengamankan.
Meskipun tersedia platform waktu proses kontainer alternatif saat ini seperti Open Container Initiative (OCI), CoreOS dan Canonical (Ubuntu) LXD, Docker adalah pilihan utama. Selain itu, Docker kini serupa dengan kontainer dan terkadang disalahartikan sebagai pesaing teknologi pelengkap seperti Kubernetes.
Saat ini, Docker dan Kubernetes adalah alat kontainerisasi terkemuka, dengan Docker mendominasi 82% pasar dan Kubernetes mengendalikan 11,52% pangsa pasar pada tahun 2024.
Seiring dengan berkembangnya kontainer, kini sebuah organisasi mungkin memiliki ratusan atau ribuan kontainer. Tim operasi diperlukan untuk menjadwalkan dan mengotomatiskan penerapan kontainer, jaringan, skalabilitas, dan ketersediaan. Lahirlah orkestrasi kontainer.
Berdasarkan Borg, platform orkestrasi kontainer internal Google, Kubernetes diperkenalkan ke publik sebagai alat sumber terbuka pada tahun 2014, dengan Microsoft, Red Hat, IBM, dan pemain teknologi besar lainnya bergabung sebagai anggota awal komunitas Kubernetes. Pada tahun 2015, Google menyumbangkan Kubernetes ke Cloud Native Computing Foundation (CNCF), pusat komputasi cloud native yang bersifat netral vendor dengan sumber terbuka.
Kubernetes menjadi proyek pertama yang dihosting CNCF pada Maret 2016. Sejak saat itu, Kubernetes telah menjadi alat orkestrasi kontainer yang paling banyak digunakan untuk menjalankan beban kerja berbasis kontainer di seluruh dunia. Dalam sebuah laporan CNCF, Kubernetes adalah proyek sumber terbuka terbesar kedua di dunia (setelah Linux) dan alat orkestrasi kontainer utama untuk 71% perusahaan Fortune 100.
Pada tahun 2018, Kubernetes merupakan proyek pertama yang memenuhi kriteria CNCF dan menjadi salah satu proyek sumber terbuka dengan pertumbuhan tercepat dalam sejarah. Meskipun opsi orkestrasi kontainer lainnya, terutama Docker Swarm dan Apache Mesos, mendapatkan sejumlah daya tarik sejak awal, Kubernetes dengan cepat menjadi kontainer yang paling banyak diadopsi.
Sejak Kubernetes bergabung dengan CNCF pada tahun 2016, jumlah kontributor telah berkembang menjadi 8.012, meningkat 996%. Pada saat penulisan artikel ini, kontributor telah menambahkan lebih dari 123.000 komit ke repositori Kubernetes di GitHub.
Buletin industri
Ikuti perkembangan tren industri yang paling penting—dan menarik—di bidang AI, otomatisasi, data, dan lainnya dengan buletin Think. Lihat Pernyataan Privasi IBM.
Langganan Anda akan disediakan dalam bahasa Inggris. Anda akan menemukan tautan berhenti berlangganan di setiap buletin. Anda dapat mengelola langganan atau berhenti berlangganan di sini. Lihat Pernyataan Privasi IBM kami untuk informasi lebih lanjut.
Kubernetes menjadwalkan dan mengotomatiskan tugas-tugas terkait kontainer di seluruh siklus hidup aplikasi, termasuk yang berikut ini.
Menerapkan sejumlah kontainer tertentu ke host tertentu dan jaga agar tetap berjalan dalam keadaan yang diinginkan.
Peluncuran adalah perubahan pada penerapan. Kubernetes memungkinkan Anda memulai, menjeda, melanjutkan, atau memutar kembali peluncuran.
Kubernetes dapat secara otomatis mengekspos kontainer ke internet atau ke kontainer lain dengan menggunakan nama sistem nama domain (DNS) atau alamat IP.
Atur Kubernetes untuk memasang penyimpanan lokal atau cloud yang persisten untuk kontainer Anda sesuai kebutuhan.
Berdasarkan penggunaan CPU atau metrik khusus, penyeimbangan beban Kubernetes dapat mendistribusikan beban kerja di seluruh jaringan untuk menjaga kinerja dan stabilitas.
Saat lalu lintas melonjak, penskalaan otomatis Kubernetes dapat memutar kluster baru sesuai kebutuhan untuk menangani beban kerja tambahan.
Ketika sebuah kontainer gagal, Kubernetes dapat memulai ulang atau menggantinya secara otomatis untuk mencegah waktu henti. Kubernetes juga dapat menurunkan kontainer yang tidak memenuhi persyaratan pemeriksaan kesehatan Anda.
Penerapan Kubernetes melibatkan klaster, blok pembangun arsitektur Kubernetes. Klaster terdiri dari node, masing-masing mewakili satu host komputasi, baik mesin fisik (bare metal server) atau VM.
Arsitektur Kubernetes terdiri dari dua bagian utama: komponen panel kontrol dan komponen yang mengelola node individual.
Sebuah node terdiri dari pemalut. Ini adalah kelompok kontainer yang berbagi sumber daya komputasi dan jaringan yang sama. Mereka juga merupakan unit skalabilitas di Kubernetes. Jika sebuah kontainer dalam pemalut mendapatkan lalu lintas yang melebihi kapasitasnya, Kubernetes akan mereplikasi pemalut tersebut ke node lain dalam kluster.
Bidang kontrol secara otomatis menangani penjadwalan pod di seluruh node dalam klaster.
Setiap kluster memiliki node utama yang menangani bidang kontrol kluster. Node master menjalankan layanan penjadwal yang mengotomatisasi kapan dan di mana kontainer diterapkan berdasarkan persyaratan penerapan yang ditetapkan pengembang dan kapasitas komputasi yang tersedia.
Komponen utama dalam kluster Kubernetes adalah kube-apiserver, etcd, kube-scheduler, kube-controller-manager, dan cloud-controller-manager:
Server API: Server antarmuka pemrograman aplikasi (API) di Kubernetes mengekspos API Kubernetes (antarmuka yang digunakan untuk mengelola, membuat, dan mengonfigurasi klaster Kubernetes) dan berfungsi sebagai titik masuk untuk semua perintah dan kueri.
etcd: etcd adalah penyimpanan nilai kunci terdistribusi sumber terbuka yang digunakan untuk menyimpan dan mengelola informasi penting yang dibutuhkan sistem terdistribusi untuk tetap berjalan. Di Kubernetes, etcd mengelola data konfigurasi, data status, dan metadata.
Scheduler: Komponen ini melacak pod yang baru dibuat dan memilih node yang akan digunakan untuk menjalankannya. Scheduler mempertimbangkan ketersediaan sumber daya dan batasan alokasi, persyaratan perangkat keras dan perangkat lunak, dan banyak lagi.
Controller-manager:Â Sekumpulan pengendali bawaan, controller-manager Kubernetes menjalankan siklus kontrol yang memantau status bersama klaster dan berkomunikasi dengan server API untuk mengelola sumber daya, pod, atau titik akhir layanan. Controller-manager terdiri dari proses terpisah yang digabungkan bersama untuk mengurangi kompleksitas dan berjalan dalam satu proses.
Cloud-controller-manager: Komponen ini memiliki fungsi yang mirip dengan hubungan controller-manager. Komponen ini menghubungkan ke API penyedia cloud dan memisahkan komponen yang berinteraksi dengan platform cloud tersebut dari komponen yang hanya berinteraksi di dalam klaster.
Node pekerja bertanggung jawab untuk menerapkan, menjalankan, dan mengelola aplikasi di dalam kontainer:
Kubelet: Kubelet adalah agen perangkat lunak yang menerima dan menjalankan perintah dari node master dan membantu memastikan bahwa kontainer berjalan dalam pod.
Kube-proxy: Diinstal di setiap node dalam klaster, kube-proxy menjaga aturan jaringan pada host dan memantau perubahan dalam layanan dan pod.
Saat ini, terdapat lebih dari 90 penawaran Kubernetes bersertifikasi, termasuk platform pengelolaan kelas perusahaan yang menyediakan alat, peningkatan, dan kemampuan add-on yang mempercepat pengembangan dan pengiriman aplikasi dalam kontainer.
Meskipun merupakan teknologi pilihan untuk mengatur aplikasi cloud berbasis kontainer, Kubernetes bergantung pada komponen lain, mulai dari jaringan, ingress, penyeimbangan muatan, penyimpanan, integrasi berkelanjutan, dan pengiriman berkelanjutan (CI/CD), dan banyak lagi, agar berfungsi sepenuhnya.
Meskipun hosting mandiri kluster Kubernetes di lingkungan berbasis cloud dimungkinkan, penyiapan dan pengelolaannya bisa jadi rumit untuk organisasi perusahaan. Di sinilah Kubernetes service terkelola menjadi solusinya.
Dengan Kubernetes service terkelola, penyedia biasanya mengelola komponen bidang kontrol Kubernetes. Penyedia layanan terkelola membantu mengotomatiskan proses rutin untuk pembaruan, penyeimbangan beban, penskalaan, dan pemantauan. Sebagai contoh, Red Hat OpenShift adalah Kubernetes service yang dapat digunakan di lingkungan apa pun dan di semua cloud publik utama termasuk Amazon Web Services (AWS), Microsoft Azure, Google Cloud, dan IBM Cloud. Banyak penyedia cloud juga menawarkan Kubernetes service yang dikelola sendiri.
Pemantauan Kubernetes mengacu pada pengumpulan dan analisis data yang terkait dengan karakteristik kesehatan, kinerja, dan biaya aplikasi terkontainerisasi yang berjalan di dalam kluster Kubernetes.
Pemantauan kluster Kubernetes memungkinkan administrator dan pengguna untuk melacak waktu aktif, penggunaan sumber daya kluster, dan interaksi antar komponen kluster. Pemantauan membantu mengidentifikasi dengan cepat masalah seperti sumber daya yang tidak mencukupi, kegagalan, dan node yang tidak dapat bergabung dengan kluster. Solusi pemantauan Kubernetes saat ini mencakup alat otomatis untuk manajemen kinerja aplikasi (APM), observabilitas, manajemen sumber daya aplikasi (ARM), dan banyak lagi.
Kubernetes dapat menerapkan dan menskalakan pemalut, tetapi tidak dapat mengelola atau mengotomatisasi perutean di antara mereka dan tidak menyediakan alat apa pun untuk memantau, mengamankan, atau men-debug koneksi-koneksi ini.
Seiring bertambahnya jumlah kontainer dalam kluster, jumlah jalur koneksi yang mungkin di antara mereka meningkat secara eksponensial. Misalnya, 2 kontainer memiliki 2 koneksi potensial, tetapi 10 pemalut memiliki 90, menciptakan potensi masalah konfigurasi dan manajemen.
Istio, lapisan mesh layanan sumber terbuka yang dapat dikonfigurasi, memberikan solusi dengan menghubungkan, memantau, dan mengamankan kontainer dalam klaster Kubernetes. Manfaat signifikan lainnya termasuk kemampuan debug yang lebih baik dan dasbor yang dapat digunakan oleh tim DevOps dan administrator untuk memantau latensi, kesalahan time-in-service, dan karakteristik lain dari koneksi antara kontainer.
Knative (diucapkan 'kay-native') adalah platform sumber terbuka yang menyediakan jalan masuk yang mudah ke komputasi tanpa server, pengembangan aplikasi komputasi cloud dan model eksekusi yang memungkinkan pengembang untuk membangun dan menjalankan kode aplikasi tanpa menyediakan atau mengelola server atau infrastruktur backend.
Alih-alih menerapkan instans kode berkelanjutan yang diam seraya menunggu permintaan, tanpa server menampilkan kode sesuai kebutuhan, menaikkan atau menurunkan skala saat permintaan berfluktuasi, lalu menghapus kode saat tidak digunakan. Tanpa server mencegah kapasitas dan daya komputasi terbuang dan mengurangi biaya karena Anda hanya membayar untuk menjalankan kode saat kode benar-benar berjalan.
Tekton adalah kerangka kerja netral vendor sumber terbuka untuk membuat sistem integrasi dan pengiriman berkelanjutan (CI/CD) yang diatur oleh Continuous Delivery Foundation (CDF).
Sebagai kerangka kerja Kubernetes, Tekton membantu memodernisasi pengiriman berkelanjutan dengan menyediakan spesifikasi industri untuk saluran, alur kerja, dan blok pembangun lainnya, sehingga penerapan di banyak penyedia cloud atau lingkungan hybrid menjadi lebih cepat dan mudah.
Perlu dicatat bahwa Tekton adalah penerus Knative Build, yang masih didukung di beberapa distribusi Knative. Pipeline Tekton telah menjadi standar untuk membangun citra kontainer dan menerapkannya dalam Container Registry di lingkungan Kubernetes.
Organisasi perusahaan menggunakan Kubernetes untuk mendukung contoh penggunaan berikut ini yang semuanya memainkan peran penting dalam menyusun infrastruktur TI modern.
Cloud native adalah pendekatan pengembangan perangkat lunak untuk membangun, menerapkan, dan mengelola aplikasi berbasis cloud. Manfaat utama dari cloud native adalah memungkinkan tim DevOps dan tim lain untuk membuat kode satu kali dan menerapkannya pada infrastruktur cloud apa pun dari penyedia layanan cloud mana pun.
Proses pengembangan modern ini bergantung pada layanan mikro, pendekatan yang memungkinkan satu aplikasi terdiri dari banyak komponen atau layanan yang lebih kecil dengan tingkat dependensi rendah dan dapat diterapkan secara independen, yang diterapkan dalam kontainer yang dikelola oleh Kubernetes.
Kubernetes membantu memastikan bahwa setiap layanan mikro memiliki sumber daya yang dibutuhkan untuk berjalan secara efektif, sekaligus meminimalkan biaya operasional yang terkait dengan pengelolaan banyak kontainer secara manual.
Hybrid cloud menggabungkan dan menyatukan infrastruktur pusat data di cloud publik, cloud pribadi, dan on premises untuk menciptakan satu infrastruktur TI yang fleksibel dan hemat biaya.
Saat ini, hybrid cloud telah bergabung dengan multicloud, layanan cloud publik dari lebih dari satu vendor cloud, untuk menciptakan lingkungan hybrid multicloud.
Pendekatan hybrid multicloud menciptakan fleksibilitas yang lebih besar dan mengurangi ketergantungan organisasi pada satu vendor sehingga mencegah vendor lock-in. Karena menciptakan fondasi untuk pengembangan cloud native, Kubernetes merupakan kunci bagi adopsi hybrid multicloud.
Kubernetes mendukung penerapan aplikasi cloud skala besar dengan penskalaan otomatis. Proses ini memungkinkan aplikasi untuk meningkatkan atau menurunkan skala, menyesuaikan dengan perubahan permintaan secara otomatis, dengan kecepatan, efisiensi, dan waktu henti yang minimal.
Skalabilitas elastis dari penerapan Kubernetes berarti sumber daya dapat ditambahkan atau dihapus berdasarkan perubahan dalam lalu lintas pengguna seperti penjualan kilat pada situs web retail.
Kubernetes menyediakan platform cloud modern yang diperlukan untuk mendukung modernisasi aplikasi, dengan memigrasikan dan mengubah aplikasi lama monolitik menjadi aplikasi cloud yang dibangun di atas arsitektur layanan mikro.
Otomatisasi merupakan inti dari DevOps, yang mempercepat pengiriman perangkat lunak berkualitas tinggi dengan menggabungkan dan mengotomatiskan pekerjaan pengembangan perangkat lunak dan tim operasi TI.
Kubernetes membantu tim DevOps membangun dan memperbarui aplikasi secara cepat dengan mengotomatiskan konfigurasi dan penerapan aplikasi.
Model MLÂ dan model bahasa besar (LLM) yang mendukung AIÂ mencakup komponen yang akan sulit dan memakan waktu untuk dikelola secara terpisah. Dengan mengotomatiskan konfigurasi, penerapan, dan skalabilitas di seluruh lingkungan cloud, Kubernetes membantu memberikan ketangkasan dan fleksibilitas yang diperlukan untuk melatih, menguji, dan menerapkan model yang kompleks ini.
Jika Anda siap untuk mulai bekerja dengan Kubernetes atau ingin membangun keterampilan Anda dengan alat ekosistem Kubernetes dan Kubernetes, cobalah salah satu tutorial berikut:
Red Hat OpenShift on IBM Cloud adalah OpenShift Container Platform (OCP) yang dikelola sepenuhnya.
Solusi kontainer menjalankan dan meningkatkan beban kerja dalam kontainer dengan keamanan, inovasi sumber terbuka, dan penerapan yang cepat.
Dapatkan kemampuan baru dan dorong ketangkasan bisnis dengan layanan konsultasi cloud IBM. Temukan cara berkolaborasi dalam menciptakan solusi, mempercepat transformasi digital, dan mengoptimalkan kinerja melalui strategi hybrid cloud dan kemitraan pakar.