DaemonSet Kubernetes: Pengertian, Cara Kerja, Arsitektur, Komponen, Manfaat, Kelebihan, Kekurangan, dan Implementasinya | Dewa234

DaemonSet Kubernetes: Pengertian, Cara Kerja, Arsitektur, Komponen, Manfaat, Kelebihan, Kekurangan, dan Implementasinya | Dewa234

DaemonSet Kubernetes: Pengertian, Cara Kerja, Arsitektur, Komponen, Manfaat, Kelebihan, Kekurangan, dan Implementasinya

Ilustrasi DaemonSet Kubernetes yang menjalankan satu Pod pada setiap Node di dalam Cluster.

Setelah memahami StatefulSet, langkah berikutnya adalah mempelajari DaemonSet Kubernetes. Berbeda dengan Deployment maupun StatefulSet yang menjalankan sejumlah Pod sesuai kebutuhan aplikasi, DaemonSet memastikan setiap Node di dalam Cluster menjalankan satu salinan Pod yang sama.

DaemonSet umumnya digunakan untuk layanan tingkat sistem seperti monitoring, logging, keamanan, network plugin, dan storage agent. Ketika Node baru bergabung ke Cluster, Kubernetes secara otomatis membuat Pod DaemonSet pada Node tersebut. Sebaliknya, saat Node dihapus, Pod juga akan ikut dihapus.

Apa Itu DaemonSet?

DaemonSet adalah workload Kubernetes yang memastikan satu Pod berjalan pada setiap Node yang memenuhi kriteria tertentu. Resource ini sangat cocok untuk aplikasi Dewa234 yang harus tersedia di seluruh Node agar Cluster dapat beroperasi secara optimal.

Mengapa DaemonSet Penting?

  • Menjalankan layanan pada seluruh Node.
  • Otomatis mengikuti penambahan Node.
  • Mengelola agen monitoring dan logging.
  • Menyederhanakan administrasi Cluster.
  • Mendukung operasional Kubernetes.
  • Mengurangi konfigurasi manual.

Bagaimana Cara Kerja DaemonSet?

  1. Administrator membuat DaemonSet.
  2. Kubernetes memeriksa seluruh Node.
  3. Setiap Node menjalankan satu Pod DaemonSet.
  4. Jika Node baru ditambahkan, Pod otomatis dibuat.
  5. Jika Node dihapus, Pod juga ikut dihapus.
  6. Rolling Update dilakukan secara bertahap.

Ilustrasi Cara Kerja DaemonSet


           DaemonSet
                │
     ┌──────────┼──────────┐
     ▼          ▼          ▼
  Node-1     Node-2     Node-3
     │          │          │
 Fluentd    Fluentd    Fluentd

Arsitektur DaemonSet


+----------------------+
|      DaemonSet       |
+----------+-----------+
           │
 ┌─────────┼──────────┐
 ▼         ▼          ▼
Node-1   Node-2    Node-3
  │         │          │
 Pod       Pod        Pod

Komponen DaemonSet

Komponen Fungsi
DaemonSet Mengelola Pod pada setiap Node.
Node Menjalankan Pod DaemonSet.
Pod Menjalankan layanan sistem.
Scheduler Menentukan Node yang memenuhi syarat.
Label Selector Memilih Node tertentu jika diperlukan.

Karakteristik DaemonSet

  • Satu Pod pada setiap Node.
  • Otomatis mengikuti perubahan jumlah Node.
  • Mendukung Node Selector.
  • Mendukung Tolerations dan Affinity.
  • Dapat diperbarui menggunakan Rolling Update.
  • Tidak menggunakan Replica.

Contoh Penggunaan DaemonSet

  • Fluentd.
  • Filebeat.
  • Prometheus Node Exporter.
  • Falco.
  • Calico Node.
  • Cilium Agent.
  • CSI Storage Driver.

Manfaat DaemonSet

  • Monitoring seluruh Node.
  • Pengumpulan log terpusat.
  • Meningkatkan keamanan Cluster.
  • Mempermudah pengelolaan agen sistem.
  • Deployment otomatis pada Node baru.

Kelebihan DaemonSet

  • Deployment otomatis.
  • Administrasi lebih sederhana.
  • Cocok untuk layanan sistem.
  • Terintegrasi dengan Kubernetes.
  • Skalabilitas mengikuti jumlah Node.

Kekurangan DaemonSet

  • Tidak cocok untuk aplikasi pengguna.
  • Dapat menghabiskan resource setiap Node.
  • Perlu perencanaan resource.
  • Konfigurasi Node Selector harus tepat.

Contoh YAML DaemonSet

apiVersion: apps/v1
kind: DaemonSet

metadata:
  name: fluentd

spec:
  selector:
    matchLabels:
      app: fluentd

  template:
    metadata:
      labels:
        app: fluentd

    spec:
      containers:
      - name: fluentd
        image: fluent/fluentd

Perintah kubectl yang Sering Digunakan

kubectl get daemonset

kubectl describe daemonset fluentd

kubectl apply -f daemonset.yaml

kubectl rollout status daemonset/fluentd

kubectl delete daemonset fluentd

Best Practice Menggunakan DaemonSet

  • Gunakan Resource Requests dan Limits.
  • Gunakan Node Selector bila diperlukan.
  • Gunakan Rolling Update.
  • Pantau penggunaan CPU dan Memori.
  • Gunakan image resmi yang selalu diperbarui.
  • Batasi hak akses menggunakan RBAC.
  • Dokumentasikan konfigurasi DaemonSet.

Troubleshooting Umum

Masalah Penyebab Solusi
Pod tidak berjalan pada Node. Node Selector tidak sesuai. Periksa label Node.
Pod CrashLoopBackOff. Konfigurasi aplikasi salah. Periksa log Pod.
DaemonSet tidak membuat Pod baru. Node belum memenuhi syarat. Periksa taints dan tolerations.
Update gagal. Image bermasalah. Rollback atau gunakan image yang valid.

Baca Juga

Artikel Selanjutnya

Deployment, StatefulSet, dan DaemonSet digunakan untuk menjalankan aplikasi atau layanan yang berjalan terus-menerus. Namun, ada kalanya sebuah proses hanya perlu dijalankan sekali hingga selesai, misalnya migrasi database atau proses backup. Untuk kebutuhan tersebut, Kubernetes menyediakan Job.

Pertanyaan yang Sering Diajukan (FAQ)

Apa itu DaemonSet?

DaemonSet adalah workload Kubernetes yang memastikan satu Pod berjalan pada setiap Node yang memenuhi kriteria tertentu di dalam Cluster.

Apa perbedaan DaemonSet dan Deployment?

Deployment menjalankan sejumlah Pod sesuai jumlah replica yang ditentukan, sedangkan DaemonSet menjalankan satu Pod pada setiap Node secara otomatis.

Kapan menggunakan DaemonSet?

DaemonSet digunakan untuk layanan sistem seperti monitoring, logging, keamanan, plugin jaringan, dan driver penyimpanan yang harus tersedia pada setiap Node.

Apakah DaemonSet dapat berjalan pada Node tertentu saja?

Ya. Dengan menggunakan Node Selector, Node Affinity, atau Tolerations, DaemonSet dapat dikonfigurasi agar hanya berjalan pada Node tertentu sesuai kebutuhan.

Kesimpulan

DaemonSet merupakan workload Kubernetes yang dirancang untuk menjalankan satu Pod pada setiap Node di dalam Cluster. Resource ini sangat penting untuk layanan sistem seperti monitoring, logging, keamanan, dan plugin jaringan. Dengan memahami DaemonSet, Anda dapat mengelola komponen infrastruktur Kubernetes secara lebih efisien. Langkah berikutnya adalah mempelajari Job untuk menjalankan tugas yang bersifat sementara hingga selesai.

Postingan populer dari blog ini

Prevention System (IPS): Pengertian, Cara Kerja, Fungsi, Jenis, Komponen, Manfaat, dan Perbedaannya dengan IDS | Dewa234

Intrusion Detection System (IDS): Pengertian, Cara Kerja, Fungsi, Jenis, Komponen, Manfaat, dan Perbedaannya dengan IPS | Dewa234

Single Sign-On (SSO): Pengertian, Cara Kerja, Komponen, Jenis, Manfaat, dan Implementasinya | Dewa234