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 server atau aplikasi yang direplikasi sebagai kontainer untuk penyebaran cloud.

Misalnya, dengan situs web aplikasi pelacakan drone, Anda menemukan bahwa Anda memerlukan lebih banyak instans layanan penembolokan situs untuk mempertahankan performa selama waktu tertentu dalam sehari, 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 yang menunjukkan jumlah instans kontainer yang disebarkan secara otomatis meningkat jika permintaan naik dan bagaimana orkestrator memastikan semua instans yang disebarkan diperbarui dengan versi perangkat lunak terbaru.

Tentukan Kubernetes

Kubernetes adalah platform open-source portabel yang dapat diperluas untuk mengelola dan mengatur beban kerja kontainer. 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 server yang direplikasi sebagai beberapa kontainer dalam kluster Kubernetes.

Manfaat Kubernetes

Manfaat menggunakan Kubernetes didasarkan pada abstraksi tugas.

Diagram yang mencantumkan tiga manfaat Kubernetes: penyembuhan diri, penskalan dinamis, dan pembaruan bergulir.

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 yang menunjukkan daftar komponen Kubernetes yang mencakup pemantauan, layanan mikro, database, dan runtime Docker.

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.