Langsung ke konten utama

Day 90 : Daemonset dalam Kubernetes

Halo semuanya! Hari ini, di hari ke-90 dari perjalanan saya belajar DevOps, saya akan melanjutkan eksplorasi di dunia Kubernetes. Setelah kemarin menulis tentang ReplicaSet, kali ini saya ingin mengajak kalian mengenal lebih dekat dengan salah satu komponen penting di Kubernetes, yaitu DaemonSet. Apa sih sebenarnya DaemonSet itu, dan kenapa ia begitu penting dalam pengelolaan cluster Kubernetes? 

Apa itu DaemonSet?

Bayangkan kalian memiliki sebuah cluster Kubernetes yang terdiri dari banyak node (server). Di setiap node, kalian ingin menjalankan satu aplikasi atau proses tertentu, seperti log collector, monitoring agent, atau network proxy. Tugas inilah yang diselesaikan oleh DaemonSet.

DaemonSet adalah salah satu tipe objek dalam Kubernetes yang memastikan bahwa setiap node di cluster menjalankan exactly one instance dari pod yang ditentukan. Bahkan, jika ada node baru yang ditambahkan ke cluster, Kubernetes akan secara otomatis membuatkan pod baru berdasarkan konfigurasi DaemonSet di node tersebut.



Kenapa Penting?

Pikirkan jika kalian harus secara manual mengatur setiap node agar menjalankan aplikasi tertentu—pasti sangat merepotkan, terutama dalam skala besar! Dengan DaemonSet, semuanya jadi otomatis dan terpusat. Contoh kasus penggunaan DaemonSet antara lain:

  1. Logging: Menggunakan agen seperti Fluentd atau Filebeat untuk mengumpulkan log dari semua node.
  2. Monitoring: Menggunakan Prometheus Node Exporter untuk memantau metrik setiap node.
  3. Networking: Menjalankan alat seperti Calico atau Weave Net untuk manajemen jaringan cluster.

Konfigurasi DaemonSet

Berikut adalah contoh file YAML konfigurasi DaemonSet yang bisa langsung kalian gunakan:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: daemon-set-shefa
  labels:
    label-key1: label-value1
  annotations:
    annotation-key1: annotation-value1
spec:
  selector:
    matchLabels:
      label-key1: label-value1
    matchExpressions:
      - key: label-key1
        operator: In
        values:
          - label-value1
  template:
    metadata:
      name: pod-name
      labels:
        label-key1: label-value1
    spec:
      containers:
        - name: container-name
          image: image-name
          ports:
            - containerPort: 80
          readinessProbe:
            httpGet:
              path: /health
              port: 80
            initialDelaySeconds: 0
            periodSeconds: 10
            failureThreshold: 3
            successThreshold: 1
            timeoutSeconds: 1

Penjelasan Konfigurasi

  1. Metadata: Memberikan nama dan label untuk DaemonSet agar mudah dikenali.
  2. Selector: Menentukan pod-pod yang akan dikelola oleh DaemonSet menggunakan kombinasi matchLabels dan matchExpressions.
  3. Template: Mendefinisikan pod yang akan dibuat, termasuk container, port, dan readinessProbe untuk memeriksa kesehatan aplikasi.
  4. Readiness Probe: Memastikan bahwa pod hanya dianggap siap jika memenuhi kriteria kesehatan yang telah ditentukan.

Cara Menggunakan

Terapkan konfigurasi di atas ke cluster Kubernetes kalian dengan perintah berikut:

kubectl apply -f daemon-set.yaml

Untuk melihat statusnya, gunakan perintah ini:

kubectl get daemonset kubectl describe daemonset daemon-set-shefa

Kesimpulan

Dengan DaemonSet, pengelolaan aplikasi yang harus berjalan di setiap node menjadi lebih efisien dan otomatis. Konfigurasi YAML di atas adalah salah satu contoh sederhana yang bisa kalian gunakan dan modifikasi sesuai kebutuhan.

Itulah pembahasan saya tentang DaemonSet di Kubernetes. Selanjutnya, saya akan membahas fitur Kubernetes lainnya yang tidak kalah menarik. Sampai jumpa, dan tetap semangat belajar DevOps! 😊

Komentar

Postingan populer dari blog ini

Day 109 : Akhir dari Perjalanan PKL: Terima Kasih untuk PT Excellent

Hari ini adalah hari terakhir saya menjalani PKL di PT Excellent. Momen ini menjadi penutup dari perjalanan yang luar biasa penuh pembelajaran, pengalaman, dan kenangan yang tak terlupakan. Saya ingin menyampaikan rasa terima kasih yang sebesar-besarnya kepada keluarga besar PT Excellent atas kesempatan, bimbingan, dan kepercayaan yang telah diberikan kepada saya selama saya melaksanakan PKL di sini. Selama PKL, saya mendapatkan banyak pengetahuan baru yang sebelumnya belum pernah saya pelajari. Dari segi teknis, saya belajar banyak tentang teknologi seperti Zimbra, bahasa pemrograman Golang, hingga DevOps hal-hal yang awalnya terasa asing, kini menjadi ilmu yang berharga dan menjadi ilmu baru bagi saya. Namun, pembelajaran saya di PT Excellent tidak hanya terbatas pada aspek teknis. Saya juga belajar tentang kedisiplinan, tanggung jawab, profesionalisme, serta bagaimana pentingnya kolaborasi dalam lingkungan kerja. Terima kasih kepada Mas Ridwan, yang selalu membimbing saya dengan sab...

Day 82 : Membuat image dengan bahasa pemrograman golang

Hari ini, saya melanjutkan perjalanan belajar Docker dengan memanfaatkan Visual Studio Code (VSCode), editor favorit saya. Fokus utama saya adalah memahami cara membuat Docker image menggunakan alur kerja yang terintegrasi dengan VSCode. Proses ini tidak hanya efisien tetapi juga menyenangkan karena VSCode memiliki ekosistem yang kaya, termasuk berbagai ekstensi pendukung yang mempermudah pekerjaan. Mengapa Menggunakan VSCode untuk Docker? VSCode menyediakan lingkungan pengembangan yang lengkap dengan berbagai fitur, seperti: Docker Extension : Mempermudah pengelolaan image, container, dan jaringan Docker langsung dari editor. Terminal Terintegrasi : Menjalankan perintah Docker langsung dari VSCode tanpa perlu beralih aplikasi. Debugging Tools : Membantu melacak masalah aplikasi yang berjalan di dalam container, terutama bagi pengembang Golang. Dengan semua keunggulan ini, VSCode menjadi alat yang sangat mendukung dalam pengembangan berbasis Docker. Langkah-langkah Membuat Docker Image...

Day 64 : Membuat program sederhana go part 7 : Menghitung sistem persamaan dua variabel

Apa itu Sistem Persamaan Linear Dua Variabel (SPLDV)? Sistem persamaan linear dua variabel (SPLDV) adalah kumpulan dua persamaan linear yang melibatkan dua variabel, biasanya dinotasikan dengan x dan y . Tujuan SPLDV adalah mencari nilai x dan y yang memenuhi kedua persamaan tersebut secara bersamaan . Secara umum, bentuk SPLDV adalah: a 1 x + b 1 y = c 1 a_1x + b_1y = c_1 a 1 ​ x + b 1 ​ y = c 1 ​ a 2 x + b 2 y = c 2 a_2x + b_2y = c_2 a 2 ​ x + b 2 ​ y = c 2 ​ Keterangan: a 1 , b 1 , c 1 a_1, b_1, c_1 a 1 ​ , b 1 ​ , c 1 ​ adalah koefisien dan konstanta dari persamaan pertama. a 2 , b 2 , c 2 a_2, b_2, c_2 a 2 ​ , b 2 ​ , c 2 ​ adalah koefisien dan konstanta dari persamaan kedua. x dan y adalah variabel yang dicari solusinya. Contoh SPLDV 2 x + 3 y = 5 2x + 3y = 5 2 x + 3 y = 5 4 x − y = 2 4x - y = 2 4 x − y = 2 Tujuan kita adalah mencari nilai x dan y yang membuat kedua persamaan benar secara bersamaan. Kemungkinan Solusi SPLDV Solusi unik : SPLDV memiliki satu pasangan sol...