Apa itu Kubernetes?
Desain layanan mikro yang dipisahkan yang dikombinasikan dengan atomitas kontainer memungkinkan untuk menskalakan aplikasi yang merespons permintaan. Dalam solusi kompleks, seperti aplikasi pelacakan drone, proses penyebaran, pembaruan, pemantauan, dan penghapusan kontainer menimbulkan tantangan.
Sebelum melihat apa yang ada di Kubernetes, ada dua konsep yang harus Anda pahami terlebih dahulu, manajemen kontainer dan orkestrator.
Apa itu manajemen kontainer?
Manajemen kontainer adalah proses penyelenggaraan, penambahan, penghapusan, atau pembaruan sejumlah besar kontainer.
Aplikasi pelacakan drone terdiri dari beberapa layanan mikro yang bertanggung jawab atas tugas seperti penembolokan, antrean, atau pemrosesan data. Masing-masing layanan ini dihosting dalam kontainer yang disebarkan, diperbarui, dan diskalakan secara independen satu sama lain.
Misalnya, dengan situs web aplikasi pelacakan drone, Anda menemukan selama waktu tertentu dalam sehari, Anda memerlukan lebih banyak instans layanan penembolokan situs untuk mempertahankan performa, sehingga Anda menambahkan lebih banyak instans kontainer layanan penembolokan.
Selanjutnya, asumsikan bahwa Anda telah meningkatkan jumlah instans penembolokan dan perlu meluncurkan versi baru layanan mikro. Anda perlu memperbarui semua kontainer aktif untuk menggunakan versi baru.
Manajemen kontainer membantu Anda dengan tugas berulang manual ini.
Apa itu orkestrator kontainer?
Orkestrator kontainer adalah sistem yang secara otomatis menerapkan dan mengelola aplikasi kontainer. Sebagai bagian dari manajemen, orkestrator menangani penskalaan perubahan dinamis di lingkungan untuk meningkatkan atau mengurangi jumlah instans aplikasi yang disebarkan. Ini juga memastikan semua instans kontainer yang disebarkan diperbarui saat versi baru layanan dirilis.
Tentukan Kubernetes
Kubernetes adalah platform sumber terbuka portabel dan dapat diperluas untuk manajemen dan orkestrasi beban kerja kontainer Anda. Kubernetes menyederhanakan tugas manajemen kontainer yang kompleks dan memberi Anda konfigurasi deklaratif untuk mengatur kontainer di lingkungan komputasi yang berbeda. Platform orkestrasi ini memberi Anda kemudahan penggunaan dan fleksibilitas yang sama yang mungkin sudah Anda ketahui dari penawaran platform as a service (PaaS) atau infrastruktur sebagai layanan (IaaS).
Manfaat Kubernetes
Manfaat menggunakan Kubernetes didasarkan pada abstraksi tugas.
Tugas-tugas ini meliputi:
Penyembuhan mandiri kontainer; misalnya, menghidupkan ulang kontainer yang gagal atau mengganti kontainer
Menskalakan jumlah kontainer yang disebarkan naik atau turun secara dinamis, berdasarkan permintaan
Mengotomatiskan pembaruan bergulir dan pemutaran kembali kontainer
Mengelola penyimpanan
Mengelola lalu lintas jaringan
Menyimpan dan mengelola informasi sensitif seperti nama pengguna dan kata sandi
Penting
Perlu diingat bahwa semua aspek Kubernetes sebelumnya memerlukan konfigurasi dan pemahaman yang baik tentang teknologi yang mendasarinya. Misalnya, Anda perlu memahami konsep seperti jaringan virtual, load balancer, dan reverse proxies untuk mengonfigurasi jaringan Kubernetes.
Pertimbangan Kubernetes
Dengan Kubernetes, Anda dapat melihat pusat data sebagai satu sumber daya komputasi yang besar. Anda tidak perlu khawatir tentang cara dan tempat Anda menyebarkan kontainer, hanya tentang menyebarkan dan menskalakan aplikasi sesuai kebutuhan.
Namun, penting untuk dipahami bahwa Kubernetes bukanlah satu pun aplikasi yang terinstal yang dilengkapi dengan semua komponen yang mungkin diperlukan untuk mengelola dan mengatur solusi kontainer:
Aspek-aspek seperti penyebaran, penskalaan, penyeimbangan beban, pencatatan log, dan pemantauan semuanya opsional. Anda bertanggung jawab untuk menemukan solusi terbaik yang sesuai dengan kebutuhan Anda untuk mengatasi aspek-aspek ini.
Kubernetes tidak membatasi jenis aplikasi yang dapat berjalan pada platform. Jika aplikasi Anda dapat berjalan dalam sebuah kontainer, aplikasi dapat berjalan di Kubernetes. Untuk memanfaatkan solusi kontainer secara optimal, pengembang Anda perlu memahami konsep seperti arsitektur layanan mikro.
Kubernetes tidak menyediakan middleware, kerangka kerja pemrosesan data, database, cache, atau sistem penyimpanan kluster. Semua item ini dijalankan sebagai kontainer, atau sebagai bagian dari penawaran layanan lain.
Agar Kubernetes dapat menjalankan kontainer, dibutuhkan runtime kontainer seperti Docker atau containerd. Runtime kontainer adalah objek yang bertanggung jawab untuk mengelola kontainer. Misalnya, runtime kontainer dimulai, berhenti, dan melaporkan status kontainer.
Anda bertanggung jawab untuk menjaga lingkungan Kubernetes. Misalnya, Anda perlu mengelola peningkatan OS dan instalasi dan peningkatan Kubernetes. Anda juga mengelola konfigurasi perangkat keras mesin host, seperti jaringan, memori, dan penyimpanan.
Layanan cloud seperti Azure Kubernetes Service (AKS) mengurangi tantangan ini dengan menyediakan lingkungan Kubernetes yang dihosting. Layanan ini juga menyederhanakan penyebaran dan pengelolaan aplikasi dalam kontainer di Azure. Dengan AKS, Anda mendapatkan manfaat dari Kubernetes open-source tanpa kompleksitas atau overhead operasional menjalankan kluster Kubernetes kustom Anda sendiri.
Catatan
Kubernetes terkadang disingkat dengan K8s. 8 mewakili delapan karakter antara K dan kata K[ubernete]s.