Masdika Loading..
Masdika.BIZ.ID

DevOps Engineer

Cloud Engineer

System Administrator

  • Home
  • Portofolio
  • Services
  • Resume
  • Skills
  • Blog
  • Contact
Masdika.BIZ.ID

DevOps Engineer

Cloud Engineer

System Administrator

Download CV

Recent Posts

  • CI/CD Laravel: Otomatisasi Deployment dengan Jenkins & Docker
  • Cara Kirim Notifikasi Otomatis SSL Expired via Email (Lengkap + Bash Script)
  • Panduan Lengkap Autoscaling di Kubernetes Bare-Metal (Lengkap untuk Pemula)
  • Panduan Lengkap: Deploy Website Statis ke Kubernetes Menggunakan Docker + NodePort
  • Cara Cerdas Menguasai Kubernetes (K8s): Panduan Lengkap Orkestrasi Kontainer untuk Developer Modern

Recent Comments

  1. Masdika.BIZ.ID on Cara Cerdas Menguasai Kubernetes (K8s): Panduan Lengkap Orkestrasi Kontainer untuk Developer Modern
  2. VSTRA on Cara Cerdas Menguasai Kubernetes (K8s): Panduan Lengkap Orkestrasi Kontainer untuk Developer Modern
  3. Rikiy on Cara Mudah Deploy Website Node.js Menggunakan Docker
  4. Masdika.BIZ.ID on Disaster Recovery Cluster (DRC) WordPress dengan MariaDB Galera dan Load Balancer Caddy
  5. someone on Disaster Recovery Cluster (DRC) WordPress dengan MariaDB Galera dan Load Balancer Caddy

Archives

  • August 2025
  • July 2025
  • June 2025

Categories

  • Tutorial

Masddika.BIZ.ID

  • About
  • Terms & Conditions
  • Privacy Policy
Blog Post

Cara Cerdas Menguasai Kubernetes (K8s): Panduan Lengkap Orkestrasi Kontainer untuk Developer Modern

July 26, 2025 Tutorial by Masdika.BIZ.ID
Cara Cerdas Menguasai Kubernetes (K8s): Panduan Lengkap Orkestrasi Kontainer untuk Developer Modern

Sebelum adanya Kubernetes, para pengembang biasanya menggunakan Docker untuk mengemas dan menjalankan aplikasi mereka di dalam kontainer. ๐Ÿ“ฆ Docker memang memudahkan pembuatan dan menjalankan satu kontainer, tetapi menjadi sulit untuk mengelola banyak kontainer yang berjalan di berbagai mesin. Misalnya, bagaimana jika satu kontainer tiba-tiba berhenti bekerja? ๐Ÿ’ฅ Bagaimana cara memulainya kembali secara otomatis? Atau bagaimana cara menangani ratusan kontainer yang perlu bekerja sama?

Itulah mengapa Kubernetes diciptakan. Ini membantu mengelola dan mengatur kontainer secara otomatis. ๐Ÿค– Kubernetes memastikan kontainer Anda tetap berjalan, dapat ditingkatkan kapasitasnya saat ada lebih banyak lalu lintas, ๐Ÿ“ˆ dan dapat berpindah ke mesin yang sehat jika terjadi masalah. Ini seperti memiliki pengatur lalu lintas yang sangat efisien untuk seluruh ekosistem aplikasi Anda! ๐Ÿšฆ

Apa itu Kubernetes?

Kubernetes (sering disingkat K8s) adalah platform sumber terbuka yang membantu Anda mengotomatiskan penyebaran, penskalaan, dan pengelolaan aplikasi yang dikemas dalam kontainer. ๐Ÿ—๏ธ Sederhananya, jika Anda menjalankan banyak aplikasi menggunakan kontainer (seperti dengan Docker), Kubernetes membantu Anda mengatur dan mengendalikannya secara efisien. ๐ŸŽฎ Anda cukup “memberi tahu” Kubernetes seperti apa aplikasi Anda seharusnya (berapa banyak salinan yang harus dijalankan, apa yang harus dilakukan jika ada yang gagal, dll.), dan Kubernetes akan mengurus sisanya, memastikan semuanya berjalan dengan baik dan sesuai yang diinginkan. โœ…๐Ÿ› ๏ธ

Contoh

Untuk benar-benar memahami bagaimana Kubernetes membantu dalam skenario dunia nyata, mari kita ambil sebuah contoh: ๐Ÿ’ก

Bayangkan Anda membuat aplikasi pengiriman makanan populer ๐Ÿ” dan aplikasi tersebut berjalan dalam kontainer menggunakan Docker. Ketika aplikasi Anda menjadi populer dan ribuan pengguna mulai memesan, Anda perlu menjalankan lebih banyak salinan aplikasi untuk menangani beban. ๐Ÿš€

Alih-alih melakukan ini secara manual, โœ๏ธ Anda menggunakan Kubernetes untuk mengatakan:

“Hei Kubernetes, selalu jaga agar 5 salinan aplikasi saya tetap berjalan. Jika ada yang berhenti, ganti secara otomatis. ๐Ÿ”„ Dan jika lebih banyak pengguna datang, tingkatkan jumlah salinan secara otomatis.” ๐Ÿ†™

Kubernetes kemudian mendengarkan instruksi ini dan mewujudkannya secara otomatis. โœจ

Istilah-Istilah Penting (Key Terminologies)

Bayangkan Kubernetes seperti perusahaan yang terorganisir dengan baik di mana berbagai tim dan sistem bekerja sama untuk menjalankan aplikasi secara efisien. ๐Ÿข Berikut adalah bagaimana istilah-istilah kunci cocok dalam sistem ini:

  1. Pod: Unit terkecil yang dapat Anda sebarkan di Kubernetes. ๐Ÿค Sebuah Pod membungkus satu atau lebih kontainer yang perlu berjalan bersama, berbagi jaringan dan penyimpanan yang sama. ๐ŸŒ๐Ÿ’พ Kontainer di dalam Pod dapat dengan mudah berkomunikasi dan bekerja sebagai satu unit. ๐Ÿค๐Ÿ“ฆ
  2. Node: Sebuah mesin (fisik atau virtual) dalam klaster Kubernetes yang menjalankan aplikasi Anda. ๐Ÿ’ป Setiap Node berisi alat yang diperlukan untuk menjalankan Pod, termasuk runtime kontainer (seperti Docker), Kubelet (agen), dan Kube-proxy (jaringan). ๐Ÿ”Œ
  3. Klaster (Cluster): Sebuah klaster Kubernetes adalah sekelompok komputer (disebut node) yang bekerja sama untuk menjalankan aplikasi Anda yang dikemas dalam kontainer. ๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ Node-node ini bisa berupa mesin fisik atau virtual. Ada dua jenis node utama dalam klaster Kubernetes:
    • Master Node (Control Plane): Anggap ini sebagai “otak” klaster. ๐Ÿง  Ini membuat keputusan, seperti di mana aplikasi akan dijalankan, menangani penjadwalan, dan melacak semuanya. ๐Ÿ—บ๏ธ
    • Worker Nodes: Ini adalah mesin yang benar-benar menjalankan aplikasi Anda di dalam kontainer. ๐Ÿ’ช Setiap worker node memiliki Kubelet (agen), runtime kontainer (seperti Docker atau containerd), dan alat untuk jaringan dan pemantauan. ๐Ÿ“Š
  4. Deployment: Objek Kubernetes yang digunakan untuk mengelola sekumpulan Pod yang menjalankan aplikasi Anda yang dikemas dalam kontainer. ๐Ÿ“‹ Ini menyediakan pembaruan deklaratif, artinya Anda memberi tahu Kubernetes apa yang Anda inginkan, dan ia mencari tahu bagaimana mencapainya. ๐ŸŽฏ
  5. ReplicaSet: Memastikan bahwa jumlah Pod identik yang tepat terus berjalan. ๐Ÿ‘ฏโ€โ™€๏ธ
  6. Service: Dalam Kubernetes, Service adalah cara untuk menghubungkan aplikasi yang berjalan di dalam klaster Anda. ๐Ÿ”— Ini memberi Pod Anda cara yang stabil untuk berkomunikasi, bahkan jika Pod itu sendiri terus berubah. ๐Ÿ—ฃ๏ธ
  7. Ingress: Cara untuk mengelola akses eksternal ke layanan Anda dalam klaster Kubernetes. ๐Ÿšช Ini menyediakan perutean HTTP dan HTTPS ke layanan Anda, bertindak sebagai reverse proxy. โžก๏ธ
  8. ConfigMap: Menyimpan pengaturan konfigurasi secara terpisah dari aplikasi, sehingga perubahan dapat dilakukan tanpa memodifikasi kode sebenarnya. โš™๏ธ Bayangkan Anda memiliki aplikasi yang membutuhkan beberapa pengaturan, seperti kata sandi basis data atau kunci API. ๐Ÿ”‘ Alih-alih mengkodekan pengaturan ini ke dalam aplikasi Anda, Anda menyimpannya di ConfigMap. Aplikasi Anda kemudian dapat membaca pengaturan ini dari ConfigMap saat runtime, yang memudahkan pembaruan pengaturan tanpa mengubah kode aplikasi. ๐Ÿ“
  9. Secret: Cara untuk menyimpan informasi sensitif (seperti kata sandi, API key, atau token) dengan aman dalam klaster Kubernetes. ๐Ÿ”’
  10. Persistent Volume (PV): Bagian dari penyimpanan dalam klaster Kubernetes yang dapat Anda gunakan untuk menyimpan data dan tidak akan terhapus saat Pod dihapus atau dimulai ulang. ๐Ÿ’พโœจ
  11. Namespace: Seperti lingkungan terpisah dalam klaster Kubernetes Anda. ๐Ÿ˜๏ธ Ini membantu Anda mengatur dan mengisolasi sumber daya Anda seperti Pod, Service, dan Deployment. ๐Ÿ“
  12. Kubelet: Berjalan di setiap Worker Node dan memastikan Pod berjalan sesuai harapan. ๐Ÿƒ
  13. Kube-proxy: Mengelola jaringan di dalam klaster, memastikan Pod yang berbeda dapat berkomunikasi. ๐Ÿ”„๐Ÿ”—

Manfaat Menggunakan Kubernetes (Benefits of using Kubernetes)

  1. Penyebaran dan Pengelolaan Otomatis (Automated Deployment and Management): Jika Anda menggunakan Kubernetes untuk menyebarkan aplikasi, tidak perlu intervensi manual. ๐Ÿšซโœ‹ Kubernetes akan mengurus semuanya seperti mengotomatiskan penyebaran, penskalaan, dan pengemasan aplikasi. ๐Ÿค– Kubernetes akan mengurangi kesalahan yang dapat dibuat oleh manusia yang membuat penyebaran lebih efektif. ๐Ÿ’ฏ
  2. Skalabilitas (Scalability): Anda dapat menskalakan kontainer aplikasi tergantung pada lalu lintas yang masuk. ๐Ÿ“ˆ Kubernetes menawarkan penskalaan Pod horizontal, di mana Pod akan diskalakan secara otomatis tergantung pada beban. ๐Ÿš€
  3. Ketersediaan Tinggi (High Availability): Anda dapat mencapai ketersediaan tinggi untuk aplikasi Anda dengan bantuan Kubernetes dan juga akan mengurangi masalah latensi bagi pengguna akhir. โšก๏ธ๐ŸŒ
  4. Efektivitas Biaya (Cost-Effectiveness): Jika ada penggunaan infrastruktur yang tidak perlu, biaya juga akan meningkat. ๐Ÿ’ธ Kubernetes akan membantu Anda mengurangi pemanfaatan sumber daya dan mengontrol penyediaan infrastruktur yang berlebihan. ๐Ÿ’ฐโ™ป๏ธ
  5. Peningkatan Produktivitas Pengembang (Improved Developer Productivity): Pengembang dapat fokus pada penulisan kode daripada mengelola penyebaran, karena Kubernetes mengotomatiskan sebagian besar proses penyebaran dan penskalaan. ๐Ÿ‘จโ€๐Ÿ’ปโœจ

Menyebarkan dan Mengelola Aplikasi yang Dikemas dalam Kontainer dengan Kubernetes (Deploying and Managing Containerized Applications with Kubernetes)

Ikuti langkah-langkah yang disebutkan di bawah ini untuk menyebarkan aplikasi dalam bentuk kontainer. ๐Ÿ‘‡

Langkah 1: Instal Kubernetes dan Siapkan Klaster Kubernetes (Install Kubernetes and Set up Kubernetes Cluster) Mulailah dengan menginstal Kubernetes dan mengonfigurasi klaster. ๐Ÿ’ปโš™๏ธ Setidaknya harus ada satu master node dan dua worker node. Anda dapat menyiapkan klaster Kubernetes di penyedia cloud mana pun yang menyediakan Kubernetes sebagai layanan. โ˜๏ธ

Langkah 2: Buat File Manifest Deployment (Create a Deployment Manifest File) Sekarang, buat file manifest deployment. ๐Ÿ“ Dalam file ini, Anda menentukan jumlah Pod yang diinginkan, image kontainer, dan sumber daya yang diperlukan. Setelah membuat manifest, terapkan menggunakan perintah kubectl. ๐Ÿš€

Langkah 3: Paparkan Layanan (Expose the Service) Setelah membuat Pod, Anda perlu memaparkan layanan ke luar. ๐ŸŒ Untuk itu, Anda perlu menulis satu file manifest lagi yang berisi jenis layanan (misalnya, Load Balancer atau Cluster IP), port, dan selector. ๐Ÿšช

Kasus Penggunaan Kubernetes dalam Skenario Dunia Nyata (Use Cases of Kubernetes in Real-World Scenarios)

Berikut adalah beberapa kasus penggunaan Kubernetes dalam skenario dunia nyata: ๐ŸŒŽ

  1. E-commerce: Anda menyebarkan dan mengelola situs web e-commerce dengan penskalaan otomatis dan penyeimbangan beban. Anda dapat mengelola jutaan pengguna dan transaksi. ๐Ÿ›๏ธ๐Ÿ›’๐Ÿ’ฐ
  2. Media dan Hiburan (Media and Entertainment): Anda dapat menyimpan data statis dan dinamis serta mengirimkannya ke seluruh dunia tanpa latensi apa pun kepada pengguna akhir. ๐ŸŽฌ๐ŸŽถ
  3. Layanan Keuangan (Financial Services): Kubernetes sangat cocok untuk aplikasi penting karena tingkat keamanan yang ditawarkannya. ๐Ÿฆ๐Ÿ”
  4. Perawatan Kesehatan (Healthcare): Anda dapat menyimpan data pasien dan mengurus hasil kesehatan pasien. ๐Ÿฅโค๏ธโ€๐Ÿฉน

Kubernetes vs. Platform Orkestrasi Kontainer Lainnya (Kubernetes v/s Other Container Orchestration Platforms)

Berikut adalah perbandingan Kubernetes dengan platform orkestrasi kontainer populer lainnya: ๐Ÿ“Š

Fitur (Feature)KubernetesDocker SwarmOpenShiftNomad
Penyebaran (Deployment)Kontainer disebarkan menggunakan CLI kubectl dan semua konfigurasi yang diperlukan untuk kontainer akan disebutkan dalam manifest. ๐Ÿ“๐Ÿš€Kontainer disebarkan menggunakan file docker compose yang berisi semua konfigurasi yang diperlukan untuk kontainer. ๐Ÿ“„๐ŸณAnda dapat menyebarkan kontainer menggunakan manifest atau CLI OpenShift. โœ๏ธFile konfigurasi HCL diperlukan untuk menyebarkan kontainer. ๐Ÿ“œ
Skalabilitas (Scalability)Anda dapat mengelola lalu lintas masuk yang berat dengan menskalakan Pod di berbagai node secara efisien. ๐Ÿ“ˆโœจAnda dapat menskalakan kontainer tetapi tidak seefisien Kubernetes. ๐Ÿ“‰Anda dapat menskalakan kontainer tetapi tidak seefisien Kubernetes. ๐Ÿ“‰Anda dapat menskalakan kontainer tetapi tidak seefisien Kubernetes. ๐Ÿ“‰
Jaringan (Networking)Anda dapat menggunakan berbagai jenis plugin untuk meningkatkan fleksibilitas. ๐Ÿ”Œ๐Ÿ”—Mudah digunakan yang membuatnya lebih mudah daripada Kubernetes. ๐Ÿ‘Model jaringan sangat canggih. ๐Ÿง ๐ŸŒAnda dapat mengintegrasikan sejumlah plugin yang Anda inginkan. ๐Ÿงฉ
Penyimpanan (Storage)Mendukung berbagai opsi penyimpanan seperti persistent volume claim dan Anda bahkan dapat melampirkan penyimpanan berbasis cloud. โ˜๏ธ๐Ÿ’พAnda dapat menggunakan penyimpanan lokal dengan lebih fleksibel. ๐Ÿ Mendukung penyimpanan lokal dan cloud. โ˜๏ธ๐Ÿ Mendukung penyimpanan lokal dan cloud. โ˜๏ธ๐Ÿ 

Fitur-Fitur Kubernetes (Features of Kubernetes)

Berikut adalah beberapa fitur penting Kubernetes: โœจ

  1. Penjadwalan Otomatis (Automated Scheduling): Kubernetes menyediakan penjadwal canggih untuk meluncurkan kontainer di node klaster. Ini melakukan optimasi sumber daya. ๐Ÿ“…๐Ÿค–
  2. Kemampuan Penyembuhan Diri (Self-Healing Capabilities): Ini menyediakan penjadwalan ulang, penggantian, dan memulai ulang kontainer yang mati. โค๏ธโ€๐Ÿฉนโ™ป๏ธ
  3. Rollout dan Rollback Otomatis (Automated Rollouts and Rollbacks): Mendukung rollout dan rollback untuk keadaan yang diinginkan dari aplikasi yang dikemas dalam kontainer. ๐Ÿ”„โœ…
  4. Penskalaan Horizontal dan Penyeimbangan Beban (Horizontal Scaling and Load Balancing): Kubernetes dapat menskalakan aplikasi naik dan turun sesuai kebutuhan. โš–๏ธ๐Ÿ“ˆ
  5. Pemanfaatan Sumber Daya (Resource Utilization): Kubernetes menyediakan pemantauan dan optimasi pemanfaatan sumber daya, memastikan kontainer menggunakan sumber dayanya secara efisien. ๐Ÿ“Š๐Ÿ’ก
  6. Dukungan untuk Berbagai Cloud dan Hybrid Cloud (Support for multiple clouds and hybrid clouds): Kubernetes dapat disebarkan di berbagai platform cloud dan menjalankan aplikasi yang dikemas dalam kontainer di berbagai cloud. โ˜๏ธ๐ŸŒ
  7. Ekstensibilitas (Extensibility): Kubernetes sangat dapat diperluas dan dapat diperluas dengan plugin dan pengontrol kustom. ๐Ÿงฉ๐Ÿ”ง
  8. Dukungan Komunitas (Community Support): Kubernetes memiliki komunitas yang besar dan aktif dengan pembaruan, perbaikan bug, dan fitur baru yang sering ditambahkan. ๐Ÿค๐ŸŒŸ

Kubernetes vs. Docker (Kubernetes v/s Docker)

Tabel berikut menunjukkan perbandingan antara Kubernetes dan Docker: ๐Ÿ†š

Fitur (Feature)DockerKubernetes
Tujuan (Purpose)Platform kontainerisasi untuk membangun, mengirim, dan menjalankan kontainer. ๐Ÿ“ฆ๐Ÿšข๐Ÿƒโ€โ™€๏ธAlat orkestrasi kontainer yang mengelola, menyebarkan, dan menskalakan aplikasi yang dikemas dalam kontainer. ๐Ÿ—๏ธ๐Ÿš€
Dikembangkan Oleh (Developed By)Docker Inc. ๐ŸณAwalnya oleh Google, sekarang dikelola oleh CNCF. ๐ŸŒ
Manajemen Kontainer (Container Management)Mengelola kontainer individual. โ˜๏ธMengelola banyak kontainer di seluruh klaster. ๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘
Penskalaan (Scaling)Penskalaan manual kontainer menggunakan docker run atau docker-compose. โœ‹Penskalaan otomatis dengan Horizontal Pod Autoscaler (HPA). ๐Ÿค–๐Ÿ“ˆ
Jaringan (Networking)Menggunakan jaringan bridge single-host secara default. ๐ŸŒ‰Menggunakan jaringan cluster-wide untuk menghubungkan layanan di berbagai node. ๐Ÿ•ธ๏ธ
Penyeimbangan Beban (Load Balancing)Penyeimbangan beban dasar melalui Docker Swarm. โš–๏ธPenyeimbangan beban tingkat lanjut dengan Service dan Ingress. ๐Ÿšฆ
Penyembuhan Diri (Self-Healing)Kontainer perlu dimulai ulang secara manual jika gagal. ๐Ÿ’”โžก๏ธ๐ŸฉนSecara otomatis mengganti kontainer (Pod) yang gagal. โค๏ธโ€๐Ÿฉนโœจ
Pembaruan Bergulir (Rolling Updates)Tidak didukung secara asli; memerlukan pembuatan ulang kontainer secara manual. ๐Ÿšซ๐Ÿ”„Mendukung pembaruan bergulir tanpa downtime untuk aplikasi. โœ…๐Ÿ”„
Penyimpanan (Storage)Penyimpanan persisten lokal. ๐Ÿ ๐Ÿ’พPenyimpanan persisten dengan Persistent Volumes (PV) & Persistent Volume Claims (PVC). โ˜๏ธ๐Ÿ’พ
Manajemen Klaster (Cluster Management)Terbatas pada Docker Swarm (kurang kompleks, tetapi kurang kuat dari Kubernetes). ๐ŸคMengelola sistem terdistribusi skala besar dengan banyak node. ๐Ÿš€๐ŸŒ
Kasus Penggunaan (Use Case)Terbaik untuk mengembangkan dan menjalankan aplikasi yang dikemas dalam kontainer di satu mesin. ๐Ÿ’ปTerbaik untuk menjalankan, mengelola, dan menskalakan aplikasi yang dikemas dalam kontainer di berbagai mesin (klaster). ๐ŸŒ

Arsitektur Kubernetes (Architecture of Kubernetes)

Kubernetes mengikuti arsitektur client-server di mana kita memiliki master yang diinstal pada satu mesin dan node pada mesin Linux terpisah. ๐Ÿ–ฅ๏ธโ†”๏ธ๐Ÿ–ฅ๏ธ Ini mengikuti model master-slave, yang menggunakan master untuk mengelola kontainer Docker di berbagai node Kubernetes. Sebuah master dan node yang dikontrolnya (worker node) membentuk “klaster Kubernetes”. ๐ŸŒ Pengembang dapat menyebarkan aplikasi dalam kontainer docker dengan bantuan master Kubernetes. ๐Ÿง‘โ€๐Ÿ’ป

Komponen Kunci Kubernetes (Key Components of Kubernetes)

1. Komponen Kubernetes-Master Node (Kubernetes-Master Node Components)

Master Kubernetes bertanggung jawab untuk mengelola seluruh klaster, mengoordinasikan semua aktivitas di dalam klaster, dan berkomunikasi dengan worker node untuk menjaga Kubernetes dan aplikasi Anda tetap berjalan. ๐Ÿง โœจ Ini adalah titik masuk dari semua tugas administratif. ๐Ÿšช Ketika kita menginstal Kubernetes di sistem kita, kita memiliki empat komponen utama Master Node Kubernetes yang akan terinstal. Komponen master node Kubernetes adalah:

  • API Server: Titik masuk untuk semua perintah REST yang digunakan untuk mengontrol klaster. ๐ŸŒ Semua tugas administratif dilakukan oleh API server di dalam master node. Jika kita ingin membuat, menghapus, memperbarui, atau menampilkan objek Kubernetes, itu harus melalui API server ini. โœ๏ธ๐Ÿ—‘๏ธ๐Ÿ”„๐Ÿ‘๏ธ Ini memvalidasi dan mengonfigurasi objek API seperti Pod, Service, ReplicationController, dan Deployment, dan mengekspos API untuk setiap operasi. โš™๏ธ Anda dapat berinteraksi dengan API ini menggunakan alat yang disebut kubectl. kubectl adalah binary bahasa go yang sangat kecil yang pada dasarnya berbicara dengan API server untuk melakukan operasi apa pun yang kita keluarkan dari baris perintah. ๐Ÿ—ฃ๏ธ๐Ÿ’ป
  • Scheduler: Ini adalah layanan di master yang bertanggung jawab untuk mendistribusikan beban kerja. ๐Ÿ“ฆ Ini bertanggung jawab untuk melacak pemanfaatan beban kerja dari setiap worker node dan kemudian menempatkan beban kerja pada sumber daya yang tersedia dan dapat menerima beban kerja. ๐Ÿ“Š Scheduler bertanggung jawab untuk menjadwalkan Pod di seluruh node yang tersedia tergantung pada batasan yang Anda sebutkan dalam file konfigurasi, ia menjadwalkan Pod ini sesuai. โœ… Scheduler bertanggung jawab untuk pemanfaatan beban kerja dan mengalokasikan Pod ke node baru. ๐Ÿš€
  • Controller Manager: Juga dikenal sebagai pengontrol. ๐ŸŽฎ Ini adalah daemon yang berjalan dalam loop yang tidak berakhir dan bertanggung jawab untuk mengumpulkan dan mengirim informasi ke API server. ๐Ÿ”„ Ini mengatur klaster Kubernetes dengan melakukan fungsi siklus hidup seperti pembuatan namespace dan pengumpulan sampah acara siklus hidup, pengumpulan sampah Pod yang dihentikan, pengumpulan sampah yang dihapus berjenjang, node sampah, dan banyak lagi. ๐Ÿงน Pada dasarnya, pengontrol mengawasi keadaan klaster yang diinginkan jika keadaan klaster saat ini tidak memenuhi keadaan yang diinginkan maka loop kontrol mengambil langkah-langkah korektif untuk memastikan bahwa keadaan saat ini sama dengan keadaan yang diinginkan. โค๏ธโ€๐Ÿฉน Pengontrol utama adalah pengontrol replikasi, pengontrol endpoint, pengontrol namespace, dan pengontrol akun layanan. Jadi dengan cara ini pengontrol bertanggung jawab atas kesehatan keseluruhan seluruh klaster dengan memastikan bahwa node aktif dan berjalan setiap saat dan Pod yang benar berjalan seperti yang disebutkan dalam file spesifikasi. ๐Ÿฉบ๐ŸŒŸ
  • etcd: Ini adalah basis data key-value terdistribusi yang ringan. ๐Ÿ—„๏ธ Dalam Kubernetes, ini adalah basis data pusat untuk menyimpan keadaan klaster saat ini kapan saja dan juga digunakan untuk menyimpan detail konfigurasi seperti subnet, config map, dll. ๐Ÿ’พ Ini ditulis dalam bahasa pemrograman Go. โœ๏ธ

2. Komponen Kubernetes-Worker Node (Kubernetes-Worker Node Components)

Worker node Kubernetes berisi semua layanan yang diperlukan untuk mengelola jaringan antara kontainer, berkomunikasi dengan master node, dan menetapkan sumber daya ke kontainer yang dijadwalkan. ๐Ÿค Komponen worker node Kubernetes adalah:

  • Kubelet: Ini adalah agen node utama yang berkomunikasi dengan master node dan dieksekusi di setiap worker node di dalam klaster. ๐Ÿ—ฃ๏ธ Ini mendapatkan spesifikasi Pod melalui API server dan mengeksekusi kontainer yang terkait dengan Pod dan memastikan bahwa kontainer yang dijelaskan dalam Pod berjalan dan sehat. โœ… Jika Kubelet melihat masalah apa pun dengan Pod yang berjalan di worker node, maka ia mencoba memulai ulang Pod di node yang sama. ๐Ÿ”„ Jika masalahnya ada pada worker node itu sendiri, maka master node Kubernetes mendeteksi kegagalan node dan memutuskan untuk membuat ulang Pod di node sehat lainnya. ๐Ÿš‘
  • Kube-Proxy: Ini adalah komponen jaringan inti di dalam klaster Kubernetes. ๐Ÿ•ธ๏ธ Ini bertanggung jawab untuk menjaga seluruh konfigurasi jaringan. Kube-Proxy menjaga jaringan terdistribusi di semua node, Pod, dan kontainer dan memaparkan layanan ke dunia luar. ๐ŸŒ Ini bertindak sebagai proxy jaringan dan penyeimbang beban untuk layanan di satu worker node dan mengelola perutean jaringan untuk paket TCP dan UDP. ๐Ÿšฆ Ini mendengarkan API server untuk setiap pembuatan dan penghapusan endpoint layanan sehingga untuk setiap endpoint layanan ia menyiapkan rute sehingga Anda dapat mencapainya. ๐Ÿ“
  • Pods: Sebuah Pod adalah sekelompok kontainer yang disebarkan bersama di host yang sama. ๐Ÿค Dengan bantuan Pod, kita dapat menyebarkan beberapa kontainer yang bergantung bersama sehingga bertindak sebagai pembungkus di sekitar kontainer ini sehingga kita dapat berinteraksi dan mengelola kontainer ini terutama melalui Pod. ๐Ÿ“ฆโœจ
  • Docker: Docker adalah platform kontainerisasi yang digunakan untuk mengemas aplikasi Anda dan semua dependensinya bersama dalam bentuk kontainer untuk memastikan bahwa aplikasi Anda bekerja dengan lancar di lingkungan apa pun yang bisa berupa pengembangan atau pengujian atau produksi. ๐Ÿณ Docker adalah alat yang dirancang untuk memudahkan pembuatan, penyebaran, dan menjalankan aplikasi dengan menggunakan kontainer. Docker adalah platform kontainer perangkat lunak terkemuka di dunia. ๐ŸŒŸ Ini diluncurkan pada tahun 2013 oleh perusahaan bernama Dotcloud. Ini ditulis dalam bahasa Go. Baru enam tahun sejak Docker diluncurkan, namun komunitas telah beralih ke sana dari VM. ๐Ÿš€ Docker dirancang untuk menguntungkan pengembang dan administrator sistem menjadikannya bagian dari banyak toolchain DevOps. ๐Ÿง‘โ€๐Ÿ’ปโš™๏ธ Pengembang dapat menulis kode tanpa khawatir tentang lingkungan pengujian dan produksi. Sysadmin tidak perlu khawatir tentang infrastruktur karena Docker dapat dengan mudah menskalakan naik dan turun jumlah sistem. ๐Ÿ“ˆ๐Ÿ“‰ Docker berperan pada tahap penyebaran siklus pengembangan perangkat lunak. ๐Ÿ“ฆ

Penerapan Kubernetes (Application of Kubernetes)

Kubernetes memiliki berbagai aplikasi: ๐ŸŽฏ

  1. Arsitektur Microservices (Microservices Architecture): Kubernetes sangat cocok untuk mengelola arsitektur microservices, yang melibatkan pemecahan aplikasi kompleks menjadi komponen yang lebih kecil, modular, yang dapat disebarkan dan dikelola secara independen. ๐Ÿ—๏ธ๐Ÿงฉ
  2. Pengembangan Cloud-Native (Cloud-Native Development): Kubernetes adalah komponen kunci dari pengembangan cloud-native, yang melibatkan pembangunan aplikasi yang dirancang untuk berjalan di infrastruktur cloud dan memanfaatkan skalabilitas, fleksibilitas, dan ketahanan cloud. โ˜๏ธโœจ
  3. Integrasi dan Pengiriman Berkelanjutan (CI/CD) (Continuous Integration and Delivery): Kubernetes terintegrasi dengan baik dengan pipeline CI/CD, membuatnya lebih mudah untuk mengotomatiskan proses penyebaran dan meluncurkan versi baru aplikasi Anda dengan downtime minimal. ๐Ÿš€๐Ÿ”„
  4. Penyebaran Hybrid dan Multi-Cloud (Hybrid and Multi-Cloud Deployments): Kubernetes menyediakan pengalaman penyebaran dan pengelolaan yang konsisten di berbagai penyedia cloud, pusat data on-premise, dan bahkan laptop pengembang, membuatnya lebih mudah untuk membangun dan mengelola penyebaran hybrid dan multi-cloud. ๐ŸŒ๐Ÿ’ป
  5. Komputasi Kinerja Tinggi (HPC) (High-Performance Computing): Kubernetes dapat digunakan untuk mengelola beban kerja komputasi kinerja tinggi, seperti simulasi ilmiah, pembelajaran mesin, dan pemrosesan data besar. ๐Ÿง ๐Ÿ”ฌ
  6. Komputasi Tepi (Edge Computing): Kubernetes juga digunakan dalam aplikasi edge computing, di mana ia dapat digunakan untuk mengelola aplikasi yang dikemas dalam kontainer yang berjalan di perangkat edge seperti perangkat IoT atau peralatan jaringan. ๐Ÿ’ก๐Ÿ“ก

Kesimpulan

Secara keseluruhan, Kubernetes telah merevolusi cara kita mengelola aplikasi modern, terutama yang dikemas dalam kontainer. Dari mengotomatiskan penyebaran dan penskalaan hingga memastikan ketersediaan tinggi dan efisiensi biaya, Kubernetes menawarkan solusi yang kuat untuk tantangan orkestrasi kontainer yang kompleks.

Dengan ekosistem yang kaya akan fitur, dukungan komunitas yang aktif, dan kemampuan untuk beradaptasi dengan berbagai lingkungan cloud, Kubernetes memberdayakan pengembang untuk fokus pada inovasi, sementara platform mengurus kompleksitas operasional. Baik untuk e-commerce, layanan keuangan, atau komputasi edge, Kubernetes terbukti menjadi alat yang sangat diperlukan dalam lanskap teknologi saat ini, membentuk masa depan pengembangan dan pengelolaan aplikasi. ๐Ÿš€๐ŸŒŸโœจ

Share:
Tags: containerDeveloperdockerk8skubernetes

Post navigation

Prev
Next
2 Comments
  • VSTRA 4:40 pm July 26, 2025 Reply

    keren mas, sangat bermanfaat untuk materi pembelajaran

    • Masdika.BIZ.ID 5:12 pm July 26, 2025 Reply

      Siap mas.

Write a comment Cancel Reply

ยฉ 2025 www.masdika.biz.id โ€” Semua Hak Dilindungi