Apa itu Kubernetes, Komponen, dan Cara Kerjanya?

Apa itu Kubernetes?

Pertanyaan seperti “apa itu Kubernetes?” sering kali terdengar terutama bagi orang yang tidak memiliki background IT, atau baru saja mencoba memasuki dunia cloud. 

Banyaknya pertanyaan tersebut diakibatkan oleh tingkat popularitas Kubernetes yang semakin meningkat. Beberapa benefit yang ditawarkan, seperti kemudahan skalabilitas, portabilitas lintas platform, konfigurasi yang konsisten, serta dukungan komunitas dan organisasi yang kuat, membuat banyak programmer melirik Kubernetes untuk dimanfaatkan. 

Tapi, apa itu Kubernetes, manfaat, fungsi dan bagaimana cara kerja yang sebenarnya? Simak artikel ini hingga akhir untuk mengetahui detailnya. 

Apa itu Kubernetes?  

Kubernetes adalah sebuah sistem berupa platform open-source, yang berfungsi untuk menjalankan dan mengatur banyak aplikasi pada kontainer yang tersebar dalam beberapa cluster mesin. Kubernetes memungkinkan penggunanya untuk mengelola distribusi, skalabilitas, dan ketersediaan aplikasi pada berbagai macam environment virtual. 

Sebagai pengguna Kubernetes, Anda dibebaskan untuk menentukan bagaimana aplikasi Anda beroperasi dan bagaimana mereka terkoneksi dengan aplikasi lain di luar environmentnya. Anda dapat meningkatkan atau menurunkan (scale up – scale down) layanan dan resource, melakukan update berkala, serta switch traffic antar aplikasi yang berbeda untuk menguji fitur atau memperbaiki penerapan yang bermasalah.  

Kubernetes dapat diibaratkan sebagai seorang manajer yang sangat pintar dalam program komputer. Dia bertanggung jawab untuk menjalankan dan mengawasi program-program tersebut agar berjalan dengan lancar. Namun, program-program ini tidak berjalan secara langsung di komputer kita, melainkan di sesuatu yang disebut “kontainer.” 

Apa itu Kontainer? 

Yang dimaksud dengan kontainer pada Kubernetes adalah sebuah teknologi yang memberikan segala hal yang diperlukan untuk menjalankan aplikasi seperti kode, perangkat lunak, dependensi, dan konfigurasi. Kontainer bisa diperumpamakan sebagai kotak berisikan keperluan untuk menjalankan aplikasi. 

Kontainer memungkinkan penggunanya menjalankan aplikasi yang dihostnya di berbagai platform dan infrastruktur. Misalkan saja jika Anda mempunyai aplikasi game atau web-app yang ingin bisa dijalankan dengan lancar di berbagai platform seperti komputer, cloud, maupun pusat data, maka, kontainer adalah solusinya. 

Salah satu keunggulan kontainer adalah sifatnya yang portable, artinya Anda hanya perlu mengemas aplikasi Anda ke dalam kontainer sekali, dan kemudian dapat mengirimkannya ke mana saja. 

Kontainer diletakkan pada satuan lebih besar di dalam Kubernetes yang disebut “pod”. Satu pod dapat memuat satu hingga banyak kontainer. Bisa dibayangkan, di dalam Kubernetes memiliki beberapa Pod yang di dalamnya memuat banyak kontainer.  

Kontainer-kontainer yang bisa tersebar ke platform atau infrastruktur mana saja ini tetap dapat diatur, dikelola, dan dipantau oleh Kubernetes. Sehingga Anda dapat menjalankan aplikasi Anda dengan mudah, bahkan jika Anda memiliki banyak aplikasi atau perangkat keras yang berbeda, di mana pun Anda inginkan. 

Komponen-Komponen Kubernetes yang Perlu Diketahui 

Agar memahami lebih baik bagaimana Kubernetes bekerja, mari kita lakukan dengan memahami komponen pembangun Kubernetes dan fungsinya. 

Dalam Kubernetes ada beberapa lapisan komponen yang perlu diketahui, di antaranya: 

1. Komponen Master Node (Control Plane) 

Master node juga dikenal dengan master server atau control plane. Master node berfungsi sebagai titik kontak utama bagi pengguna dan administrator. Mudahnya, master node berperan sebagai otak dari kluster Kubernetes dan bertanggung jawab atas pengambilan keputusan terkait penjadwalan, manajemen sumber daya, dan koordinasi operasi kluster secara keseluruhan. 

Adapun master node terdiri dari beberapa bagian yaitu; 

    • Etcd 

Etcd adalah penyimpanan konfigurasi sentral yang digunakan oleh Kubernetes untuk menyimpan data penting. Ini membantu semua node dalam kluster mengakses informasi terkini, mendukung penemuan layanan, dan memelihara keadaan kluster. Etcd memiliki antarmuka HTTP/JSON yang mudah digunakan dan dapat dijalankan pada satu server master tunggal atau di beberapa mesin dalam jaringan Kubernetes. 

    • API Server 

API server memungkinkan pengguna mengkonfigurasi kluster, menjaga keselarasan data, dan mengoordinasikan operasi kluster. API server memiliki antarmuka RESTful yang memudahkan komunikasi dengan berbagai alat, dengan kubectl sebagai klien default untuk berinteraksi dengan kluster Kubernetes. 

    • Scheduler 

Scheduler dalam Kubernetes menentukan di mana beban kerja akan dijalankan dalam kluster, memastikan keseimbangan sumber daya dan menghindari alokasi berlebihan dengan memeriksa persyaratan beban kerja dan kapasitas node. 

    • Controller Manager 

Controller Manager merupakan penghubung yang memungkinkan Kubernetes berinteraksi dengan penyedia infrastruktur yang beragam sambil menjaga konstruksi internal yang relatif generik, memungkinkan Kubernetes memperbarui informasi status, menyesuaikan sumber daya, dan menggunakan layanan cloud tambahan sesuai dengan kebutuhan kluster. 

 

2. Worker Node

Worker node atau juga dikenal dengan node adalah komponen yang berfungsi menjalankan kontainer. Berikut adalah komponen worker node: 

  • Kubelet 

Kubelet berfungsi untuk menyampaikan informasi dan bertanggung jawab atas komunikasi antara worker node dan master node, serta menjalankan dan mengelola kontainer pada node tersebut. 

  • Kube-proxy 

Kube-proxy berfungsi untuk menjalankan aturan jaringan di worker node. Hal ini memungkinkan kontainer berkomunikasi satu sama lain di dalam atau melintasi node. 

  • Container Runtime 

Container runtime merupakan software yang digunakan untuk mengelola dan menjalankan kontainer yang ringan dan terisolasi untuk beban kerja dalam kluster. 

 

3. Pod 

Pod dalam Kubernetes mengelompokkan kontainer-kontainer yang perlu berkomunikasi dan berbagi sumber daya, berjalan dengan alamat IP dan port lokal bersama, memungkinkan kerja sama antar kontainer dalam satu pod untuk efisiensi maksimal. 

4. Service 

Service menyediakan alamat IP dan nama DNS yang tetap untuk satu atau beberapa pod. Ini memungkinkan aplikasi di dalam dan di luar kluster untuk berkomunikasi dengan mudah dengan pod. 

5. Volume & Persistant Volume 

Volume adalah cara berbagi data dalam pod yang bertahan selama pod aktif. Namun, data tidak persisten. Persistent volumes adalah penyimpanan tahan lama yang dapat diminta oleh pod dan tidak terkait dengan siklus hidup pod. 

6. Namespace 

Namespace memungkinkan pemisahan kluster menjadi beberapa lingkungan virtual yang berbeda. Ini membantu dalam mengatur, mengisolasi, dan mengamankan sumber daya kluster. 

7. ConfigMap dan Secret 

ConfigMap dan Secret berfungsi untuk mengelola konfigurasi dan data sensitif yang digunakan oleh aplikasi. 

8. Ingress 

Sebuah komponen yang digunakan untuk mengatur lalu lintas HTTP dan HTTPS ke dalam kluster berdasarkan aturan tertentu. 

9. Custom Resource Definitions (CRDs) 

CRDs membantu dalam mendefinisikan sumber daya kustom yang dapat digunakan oleh pengguna untuk mengatur sumber daya khusus aplikasi mereka. 

10. Kubetcl 

Kubetcl merupakan komponen yang digunakan untuk berinteraksi dengan kluster Kubernetes. 

Dengan adanya komponen-komponen ini, Kubernetes bisa memberikan kerangka kerja yang powerful untuk mengelola aplikasi dalam kontainer secara skalabel, portabel, dan aman di berbagai lingkungan komputasi. 

Bagaimana dengan Cara Kerjanya? 

Singkatnya, setiap aplikasi Anda yang berada di Kubernetes dibungkus dalam sebuah kotak kecil yang disebut “kontainer.” Hal ini seperti mengemas aplikasi Anda dalam kotak yang mudah dibawa.  

Kontainer-kontainer ini ditempatkan dalam kelompok yang kita sebut “pod.” Yang mana Pod ini seperti wadah yang berisikan beberapa kotak dengan barang yang harus bekerja sama. Kemudian, Kubernetes kemudian memutuskan di komputer mana pod dan kontainer akan berjalan.  

Pod dan kontainer pada Kubernetes dapat berkomunikasi satu sama lain seperti halnya mengirim pesan yang dibantu oleh rangkaian worker node. Jika ada masalah pada salah satu komputer, Kubernetes akan memindahkan kotak-kotak ke komputer lain yang masih berfungsi.  

Misalkan Anda memerlukan lebih banyak kotak atau aplikasi, Anda bisa memberi tahu Kubernetes untuk menambahkan lebih banyak kotak dan pod.  

Topologi Kubernetes

Topologi Kubernetes

 

Apa saja Keuntungan dari Penggunaan Kubernetes? 

Ada banyak manfaat dan keuntungan yang ditawarkan Kubernetes untuk penggunanya, di antaranya adalah sebagai berikut: 

  1. Skalabilitas Otomatis: Dengan menggunakan Kubernetes memungkinkan aplikasi Anda untuk secara otomatis merespons perubahan permintaan dengan menambah atau mengurangi jumlah kontainer. Ini memastikan aplikasi tetap responsif tanpa perlu campur tangan manual.
  2. Manajemen Sumber Daya: Penggunaan Kubernetes dapat membantu Anda mengelola dan mengalokasikan sumber daya komputasi, seperti CPU dan memori, kepada kontainer sesuai dengan kebutuhan. Hal ini membantu mengoptimalkan penggunaan sumber daya dan menghindari pemborosan. 
  3. Penyediaan yang Tinggi: Kubernetes menyediakan alat dan mekanisme yang memungkinkan Anda untuk menjalankan aplikasi Anda dengan ketersediaan yang tinggi. Ini berarti aplikasi Anda akan tetap berjalan bahkan jika ada kegagalan perangkat keras atau perangkat lunak.
  4. Portabilitas dan Pengiriman Cepat: Dengan Kubernetes, Anda dapat dengan mudah mengemas aplikasi Anda dalam kontainer yang dapat berjalan di berbagai lingkungan, dari pusat data lokal hingga cloud publik. Ini memfasilitasi pengiriman aplikasi yang konsisten dan cepat di berbagai platform. 

Kesimpulan 

Dari bahasan di atas dapat disimpulkan bahwa Kubernetes merupakan platform open-source yang bisa digunakan untuk pembangunan hingga pengelolaan aplikasi yang efisien, mendukung pertumbuhan melalui skalabilitas yang ditawarkannya, serta meningkatkan ketersediaan data sambil mempermudah perpindahan aplikasi lintas infrastruktur. 

Kunjungi blog CloudRaya untuk mendapatkan insight seputar teknologi. Selain itu, Jika membutuhkan tutorial, Anda bisa membaca artikel tutorial di Knowledge Base CloudRaya, atau menonton video tutorial di channel Youtube Cloud Raya.

 

 

Facebook
Twitter
LinkedIn

Ready, Set, Cloud

Ready, Set, Cloud