Apa itu Kubernetes?

Dengan makin banyaknya penggunaan container di kalangan organisasi, Kubernetes, software pengelolaan yang berfokus ke container, telah menjadi standar untuk men-deploy dan mengoperasikan aplikasi dalam container. Google Cloud adalah tempat asal Kubernetes, yang awalnya dikembangkan di Google dan dirilis sebagai open source pada tahun 2014. Kubernetes memanfaatkan pengalaman Google selama 15 tahun dalam menjalankan beban kerja dalam container dan kontribusi berharga komunitas open source. Terinspirasi oleh sistem pengelolaan cluster internal Google, Borg, Kubernetes mempermudah segala hal yang berkaitan dengan deployment dan pengelolaan aplikasi Anda. Dengan menyediakan orkestrasi container otomatis, Kubernetes meningkatkan keandalan Anda dan mengurangi waktu serta resource yang dikaitkan dengan operasi harian.

Uji pengetahuan Anda dengan lab interaktif di Google Skills

Penjelasan Kubernetes

Kubernetes (terkadang disingkat menjadi K8s dengan 8 menggambarkan jumlah huruf antara “K” dan “s”) adalah sistem open source untuk men-deploy, menskalakan, dan mengelola aplikasi dalam container di mana saja.

Kubernetes mengotomatiskan tugas-tugas operasional pengelolaan container dan mencakup perintah bawaan untuk men-deploy aplikasi, meluncurkan perubahan pada aplikasi, menaikkan dan menurunkan skala aplikasi agar sesuai dengan kebutuhan yang terus berubah, memantau aplikasi, dan lain-lain, sehingga mempermudah pengelolaan aplikasi.

Cara kerja Kubernetes

Kubernetes membantu menyederhanakan pengelolaan saat aplikasi diskalakan ke beberapa container dan server. Sistem ini mengorkestrasi deployment menggunakan API open source, yang mengelompokkan container ke dalam pod untuk penskalaan berdasarkan permintaan dan ketersediaan resource. Kubernetes juga mengotomatiskan penemuan layanan, load balancing, dan alokasi resource, serta memantau kondisi untuk memungkinkan pemulihan mandiri dengan memulai ulang atau mereplikasi container.

Bagi developer perusahaan, berikut uraian langkah demi langkah tentang cara kerja Kubernetes:

  • Tentukan aplikasi Anda: Mulai dengan menentukan status yang diinginkan untuk aplikasi Anda menggunakan file YAML. File ini menentukan container yang akan dijalankan, resource yang dibutuhkan (CPU, memori), dan cara container tersebut diekspos ke jaringan.
  • Kirim permintaan ke Kubernetes API: Anda mengirimkan file YAML ini ke Kubernetes API, biasanya menggunakan alat command line kubectl.
  • Penjadwal menetapkan pod ke node: Penjadwal Kubernetes menganalisis persyaratan aplikasi Anda dan menemukan node terbaik di cluster untuk menjalankan container Anda (dikemas sebagai pod).
  • Kubelet meluncurkan container: Di setiap node, proses Kubelet menerima instruksi dari bidang kontrol dan meluncurkan container.
  • Service mengekspos aplikasi: Service Kubernetes menyediakan alamat IP dan nama DNS yang stabil untuk aplikasi Anda, sehingga aplikasi lain dapat mengaksesnya, meskipun pod dibuat, dihancurkan, dan dijadwalkan ulang.
  • Pengontrol memastikan status yang diinginkan: Pengontrol Kubernetes terus memantau status aplikasi Anda dan mengambil tindakan korektif jika diperlukan. Misalnya, jika pod mengalami crash, pengontrol akan otomatis membuat pod baru untuk menggantikannya.
  • Penskalaan dan update: Anda dapat dengan mudah menskalakan aplikasi dengan mengupdate jumlah replika dalam konfigurasi deployment Anda. Kubernetes akan otomatis membuat atau menghapus pod agar sesuai dengan skala yang diinginkan. Update berkelanjutan memungkinkan Anda men-deploy versi baru aplikasi tanpa waktu non-operasional.

Apa saja manfaat Kubernetes?

 Operasi otomatis

Kubernetes memiliki perintah bawaan untuk menangani banyak tugas berat yang berkaitan dengan pengelolaan aplikasi, sehingga Anda dapat mengotomatiskan operasi sehari-hari. Anda dapat memastikan aplikasi selalu berjalan sesuai keinginan Anda.

Abstraksi infrastruktur

Saat diinstal, Kubernetes akan menangani komputasi, jaringan, dan penyimpanan menggantikan workload Anda. Hal ini memungkinkan developer untuk fokus ke aplikasi dan tidak mengkhawatirkan lingkungan yang mendasarinya.

Pemantauan service health

Kubernetes terus menjalankan health check terhadap layanan Anda, memulai ulang container yang gagal, atau terhenti, dan hanya menyediakan layanan kepada pengguna jika layanan tersebut telah dikonfirmasi berjalan.

Pemanfaatan resource yang dioptimalkan

Dengan mengemas container secara efisien ke dalam node berdasarkan persyaratan, Kubernetes mengoptimalkan pemanfaatan resource. Hal ini pada gilirannya membantu mengurangi pemborosan resource dan menurunkan biaya infrastruktur.

Pengelolaan aplikasi yang dipermudah

Mengefisienkan pengelolaan aplikasi dengan Kubernetes. Kubernetes menawarkan pendekatan seragam untuk men-deploy, mengupdate, dan mengelola aplikasi dengan berbagai tingkat kompleksitas.

Portabilitas yang lebih baik

Kubernetes adalah platform open source yang berjalan secara konsisten di berbagai lingkungan, mulai dari pusat data lokal hingga cloud publik, sehingga memberikan fleksibilitas dan portabilitas bagi perusahaan.

Mengatasi tantangan bisnis Anda dengan Google Cloud

Pelanggan baru mendapatkan kredit gratis senilai $300 untuk dibelanjakan di Google Cloud.
Bicara dengan spesialis penjualan Google Cloud untuk membahas tantangan unik Anda secara lebih mendetail.

Kubernetes versus Docker

Kubernetes dan Docker adalah teknologi pelengkap yang berbeda untuk menjalankan aplikasi dalam container, yang sering disalahartikan sebagai pilihan untuk menggantikan satu sama lain. 

Docker memungkinkan Anda menempatkan semua yang diperlukan untuk menjalankan aplikasi ke dalam kotak yang dapat disimpan dan dibuka kapan saja serta di tempat yang diperlukan. Setelah mulai mengemas aplikasi, Anda memerlukan cara untuk mengelolanya; dan itulah yang dilakukan Kubernetes.

Kubernetes adalah kata dalam bahasa Yunani yang berarti 'kapten' dalam bahasa Indonesia. Seperti halnya kapten bertanggung jawab atas perjalanan kapal yang aman di laut, Kubernetes bertanggung jawab untuk membawa dan mengirimkan kotak-kotak itu dengan aman ke lokasi di mana kotak tersebut dapat digunakan.

  • Kubernetes dapat digunakan dengan atau tanpa Docker
  • Docker bukanlah alternatif untuk Kubernetes. Oleh karena itu, pertanyaan tentang “Kubernetes vs. Docker” tidak terlalu tepat dalam hal ini. Pernyataan yang benar adalah menggunakan Kubernetes dengan Docker untuk memasukkan aplikasi Anda ke dalam container dan menjalankannya dalam skala besar
  • Perbedaan antara Docker dan Kubernetes terkait pada peran masing-masing dalam containerization dan menjalankan aplikasi Anda
  • Docker adalah standar industri terbuka untuk mengemas dan mendistribusikan aplikasi dalam container
  • Kubernetes menggunakan Docker untuk men-deploy, mengelola, dan menskalakan aplikasi dalam container

Kasus penggunaan Kubernetes umum

Kubernetes digunakan untuk membuat aplikasi yang mudah dikelola dan di-deploy di mana saja. Jika tersedia sebagai layanan terkelola, Kubernetes menawarkan berbagai solusi untuk memenuhi kebutuhan Anda. Berikut beberapa kasus penggunaan yang umum.

Meningkatkan kecepatan pengembangan

Kubernetes membantu Anda mem-build aplikasi berbasis microservice berbasis cloud. Sistem ini juga mendukung containerization aplikasi yang sudah ada, sehingga menjadi dasar modernisasi aplikasi dan memungkinkan Anda mengembangkan aplikasi dengan lebih cepat.

  • Contoh: Perusahaan jasa keuangan menggunakan Kubernetes untuk men-deploy microservice untuk platform perbankan online-nya, sehingga memungkinkan siklus pengembangan yang lebih cepat dan skalabilitas yang lebih baik

Men-deploy aplikasi di mana saja

Kubernetes dibuat untuk digunakan di mana saja, sehingga Anda dapat menjalankan aplikasi di seluruh deployment lokal dan cloud publik; serta deployment hybrid. Jadi, Anda dapat menjalankan aplikasi di mana pun Anda membutuhkannya.

  • Contoh: Perusahaan e-commerce global menggunakan Kubernetes untuk men-deploy aplikasi di beberapa penyedia cloud, sehingga memastikan ketersediaan tinggi dan menghindari keterikatan pada vendor

Menjalankan layanan yang efisien

Kubernetes dapat secara otomatis menyesuaikan ukuran cluster yang diperlukan untuk menjalankan layanan. Kemampuan ini memungkinkan Anda meningkatkan dan menurunkan skala aplikasi secara otomatis berdasarkan permintaan dan menjalankannya secara efisien.

  • Contoh: Layanan streaming media menggunakan Kubernetes untuk menskalakan infrastruktur encoding video secara otomatis berdasarkan jumlah pengguna yang menonton konten, mengoptimalkan pemanfaatan resource, dan mengurangi biaya

FAQ

Pelajari berbagai pertanyaan umum tentang Kubernetes

Cluster Kubernetes terdiri dari node (mesin virtual atau fisik) yang menjalankan aplikasi dalam container yang diorkestrasi oleh Kubernetes.

Pod Kubernetes, unit terkecil yang dapat di-deploy, menampung satu atau beberapa container, yang merepresentasikan satu instance proses yang berjalan.

Deployment Kubernetes memastikan status aplikasi yang diinginkan dengan mengelola replika dan update yang lancar.

Layanan Kubernetes adalah objek Kubernetes yang menyediakan alamat IP dan nama DNS yang stabil untuk aplikasi Anda, sehingga aplikasi lain dapat mengaksesnya.

Anda dapat menskalakan aplikasi dengan memperbarui jumlah replika dalam konfigurasi deployment. Kubernetes akan otomatis membuat atau menghapus pod agar sesuai dengan skala yang diinginkan.

Langkah selanjutnya

Mulailah membangun solusi di Google Cloud dengan kredit gratis senilai $300 dan lebih dari 20 produk yang selalu gratis.