Apa itu Kubernetes?

Selesai

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.

Diagram of a server or application replicated as containers for cloud deployment.

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.

Diagram showing how number of deployed container instances is automatically increased if demand rises and how an orchestrator ensures all deployed instances are updated with the latest software version.

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).

Diagram of replicated servers as multiple containers in a Kubernetes cluster.

Manfaat Kubernetes

Manfaat menggunakan Kubernetes didasarkan pada abstraksi tugas.

Diagram that lists three Kubernetes benefits: self-healing, dynamic scaling, and rolling updates.

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.

Diagram that shows a list of Kubernetes components that including monitoring, microservices, databases, and the Docker runtime.

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.