0Pricing
DevOps Bootcamp · Pelajaran

DaemonSets untuk Tugas Khusus Node

Gunakan DaemonSets untuk menjalankan salinan Pod pada semua atau node tertentu dalam cluster Anda untuk operasi tingkat cluster.

DaemonSets untuk Tugas Khusus Node adalah pelajaran DevOps Bootcamp gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar DevOps Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus DevOps Bootcamp mencakup 4 pelajaran total.

Apa Itu DaemonSets?

Bayangkan Anda perlu menjalankan alat atau layanan tertentu di setiap server dalam klaster. Contohnya adalah agen pencatatan yang mengumpulkan catatan dari setiap mesin.

Di sinilah DaemonSets berperan! Berbeda dengan deployment, yang bertujuan mempertahankan sejumlah pod tertentu agar tetap berjalan di suatu tempat dalam klaster, DaemonSet memastikan salinan pod berjalan di semua node (atau node yang dipilih).

Penggunaan Umum DaemonSet

DaemonSets sangat cocok untuk tugas yang perlu dijalankan pada tingkat node. Berikut beberapa contohnya:

  • Agen Pencatatan: Alat seperti Fluentd atau Logstash untuk mengumpulkan catatan dari setiap node.
  • Agen Pemantauan: Prometheus Node Exporter untuk mengumpulkan metrik dari setiap server.
  • Daemon Penyimpanan: Layanan seperti GlusterFS atau Ceph yang menyediakan penyimpanan terdistribusi pada setiap node.
  • Proksi Jaringan: Kube-proxy milik Kubernetes berjalan sebagai DaemonSet untuk mengelola aturan jaringan.

Manifest Dasar DaemonSet

Definisi DaemonSet terlihat sangat mirip dengan deployment. Perbedaan utamanya adalah kind: DaemonSet. Mari lihat struktur dasarnya:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: my-daemonset
spec:
  selector:
    matchLabels:
      app: my-daemonset-app
  template:
    metadata:
      labels:
        app: my-daemonset-app
    spec:
      containers:
      - name: my-container
        image: busybox
        command: ["sh", "-c", "echo 'Hello from DaemonSet on node $(NODE_NAME)'; sleep 3600"]
        env:
        - name: NODE_NAME
          valueFrom:
            fieldRef:
              fieldPath: spec.nodeName

Bagian-Bagian Penting YAML

Mari kita uraikan bagian-bagian penting dari manifest DaemonSet:

  • kind: DaemonSet: Ini memberi tahu Kubernetes bahwa kita ingin mengelola pod khusus node.
  • spec.selector: Sangat penting! Bagian ini menentukan cara DaemonSet menemukan dan mengelola podnya menggunakan label.
  • spec.template: Ini adalah definisi pod itu sendiri. Isinya hampir sama dengan templat pod yang terdapat dalam deployment. Bagian ini menjelaskan kontainer, volume, dan pengaturan lain untuk pod yang akan berjalan pada setiap node.

Menerapkan ke Semua Node

Berikut DaemonSet sederhana yang menjalankan kontainer busybox pada setiap node yang memenuhi syarat. Kontainer tersebut akan mencetak pesan yang menunjukkan node tempatnya berjalan.

Ini adalah pola umum untuk agen di seluruh klaster.

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: node-hello-daemon
spec:
  selector:
    matchLabels:
      app: node-hello
  template:
    metadata:
      labels:
        app: node-hello
    spec:
      containers:
      - name: hello-container
        image: busybox
        command: ["sh", "-c", "while true; do echo 'Hello from node: $(NODE_NAME)'; sleep 5; done"]
        env:
        - name: NODE_NAME
          valueFrom:
            fieldRef:
              fieldPath: spec.nodeName

Menjalankan DaemonSet Anda

Untuk membuat DaemonSet di klaster Kubernetes Anda, gunakan perintah kubectl apply yang sudah dikenal bersama file YAML yang baru saja Anda lihat:

kubectl apply -f node-hello-daemonset.yaml

Kubernetes kemudian akan memastikan sebuah pod dijadwalkan pada setiap node yang sesuai dengan kriteria DaemonSet.

Memeriksa Kesehatan DaemonSet

Setelah menerapkannya, Anda dapat memeriksa status DaemonSet dan pod yang dibuatnya:

  • Untuk melihat DaemonSet: kubectl get ds
  • Untuk melihat setiap pod yang berjalan pada masing-masing node: kubectl get pods -l app=node-hello -o wide

Opsi -o wide membantu Anda melihat node tempat setiap pod dijadwalkan.

DaemonSets pada Node yang Dipilih

Bagaimana jika Anda hanya ingin DaemonSet berjalan pada sebagian node? Misalnya, hanya pada node yang memiliki GPU atau node yang dikhususkan untuk penyimpanan.

Anda dapat melakukannya menggunakan nodeSelector. Kolom ini dalam spec pod (di dalam templat DaemonSet) memungkinkan Anda menentukan label node yang harus dimiliki sebuah node agar pod dapat dijadwalkan di sana.

Menggunakan Pemilih Node dalam YAML

Mari ubah DaemonSet sebelumnya agar hanya berjalan pada node yang diberi label disktype: ssd. Anda harus terlebih dahulu memberi label pada node, misalnya, kubectl label node <node-name> disktype=ssd.

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: ssd-monitor-daemon
spec:
  selector:
    matchLabels:
      app: ssd-monitor
  template:
    metadata:
      labels:
        app: ssd-monitor
    spec:
      nodeSelector:
        disktype: ssd # Only runs on nodes with this label
      containers:
      - name: monitor-container
        image: busybox
        command: ["sh", "-c", "while true; do echo 'Monitoring SSD on node: $(NODE_NAME)'; sleep 10; done"]
        env:
        - name: NODE_NAME
          valueFrom:
            fieldRef:
              fieldPath: spec.nodeName

Kemampuan DaemonSet

Anda telah mempelajari cara kerja DaemonSets. Mari uji pemahaman Anda!

DaemonSets: Poin-Poin Penting

Kerja bagus! Anda telah berhasil mempelajari DaemonSets Kubernetes.

  • DaemonSets memastikan sebuah pod berjalan pada setiap node yang memenuhi syarat.
  • DaemonSets sangat penting untuk operasi tingkat node seperti agen pencatatan, pemantauan, dan penyimpanan.
  • Anda dapat menggunakan nodeSelector untuk menargetkan node tertentu.
  • DaemonSets didefinisikan dengan kind: DaemonSet dan menggunakan templat pod, serupa dengan deployment.

Selanjutnya, Anda akan mempelajari StatefulSets untuk mengelola aplikasi stateful!

Pertanyaan yang Sering Diajukan

Apakah pelajaran “DaemonSets untuk Tugas Khusus Node” gratis?

Ya — teks lengkap “DaemonSets untuk Tugas Khusus Node” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus DevOps Bootcamp, upgrade ke CoddyKit PRO. Kursus DevOps Bootcamp mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “DaemonSets untuk Tugas Khusus Node”?

Gunakan DaemonSets untuk menjalankan salinan Pod pada semua atau node tertentu dalam cluster Anda untuk operasi tingkat cluster. Kamu berlatih DevOps Bootcamp dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai DevOps Bootcamp?

Tidak diperlukan pengalaman sebelumnya. DevOps Bootcamp di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “DaemonSets untuk Tugas Khusus Node” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran DevOps Bootcamp ini?

Ya. Setiap pelajaran DevOps Bootcamp menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. StatefulSets untuk Aplikasi Berstatus
  2. DaemonSets untuk Tugas Khusus Node
  3. Memahami Operator Kubernetes
  4. Definisi Sumber Daya Kustom (CRD)
← Kembali ke DevOps Bootcamp