Kem Intensif DevOps · Pelajaran

DaemonSets untuk Tugas Khusus Nod

Gunakan DaemonSets untuk menjalankan salinan Pod pada semua atau nod terpilih dalam kelompok anda bagi operasi peringkat kelompok.

Pelajaran 2 daripada 411 langkah

DaemonSets untuk Tugas Khusus Nod ialah pelajaran Kem Intensif DevOps percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Kem Intensif DevOps, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Kem Intensif DevOps merangkumi sejumlah 4 pelajaran.

Apakah DaemonSets?

Bayangkan Anda perlu menjalankan alat atau perkhidmatan tertentu pada setiap pelayan dalam kluster Anda. Contohnya, ejen pengelogan yang mengumpulkan log daripada setiap mesin.

Di sinilah DaemonSets digunakan! Berbeza daripada Deployment, yang bertujuan memastikan bilangan pod tertentu berjalan di mana-mana dalam kluster, DaemonSet memastikan satu salinan pod berjalan pada semua nod (atau nod yang dipilih).

Kegunaan Biasa DaemonSet

DaemonSets amat sesuai untuk tugasan yang perlu dijalankan pada peringkat nod. Berikut ialah beberapa contoh biasa:

  • Ejen Pengelogan: Alat seperti Fluentd atau Logstash untuk mengumpulkan log daripada setiap nod.
  • Ejen Pemantauan: Prometheus Node Exporter untuk mengumpulkan metrik daripada setiap pelayan.
  • Daemon Storan: Perkhidmatan seperti GlusterFS atau Ceph yang menyediakan storan teragih pada setiap nod.
  • Proksi Rangkaian: Kube-proxy milik Kubernetes sendiri berjalan sebagai DaemonSet untuk mengurus peraturan rangkaian.

Manifes Asas DaemonSet

Takrif DaemonSet kelihatan sangat serupa dengan Deployment. Perbezaan utamanya ialah kind: DaemonSet. Mari kita lihat struktur asas:

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

Bahagian Utama YAML

Mari kita huraikan bahagian penting dalam manifes DaemonSet kita:

  • kind: DaemonSet: Ini memberitahu Kubernetes bahawa kita mahu mengurus pod khusus nod.
  • spec.selector: Penting! Ia menentukan cara DaemonSet mencari dan mengurus podnya menggunakan label.
  • spec.template: Ini ialah takrif pod itu sendiri. Ia hampir sama dengan templat pod yang terdapat dalam Deployment. Bahagian ini menerangkan bekas, volum dan tetapan lain untuk pod yang akan berjalan pada setiap nod.

Menggunakan pada Semua Nod

Berikut ialah DaemonSet ringkas yang menjalankan bekas busybox pada setiap nod yang layak. Bekas ini akan mencetak mesej yang menunjukkan nod tempat ia berjalan.

Ini ialah corak biasa untuk ejen seluruh kluster.

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

Melancarkan DaemonSet Anda

Untuk mencipta DaemonSet dalam kluster Kubernetes Anda, gunakan perintah kubectl apply yang biasa bersama fail YAML yang baru Anda lihat:

kubectl apply -f node-hello-daemonset.yaml

Kubernetes kemudian akan memastikan satu pod dijadualkan pada setiap nod yang sepadan dengan kriteria DaemonSet.

Menyemak Kesihatan DaemonSet

Selepas menggunakannya, Anda boleh menyemak status DaemonSet dan pod yang diciptanya:

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

Pilihan -o wide membantu Anda melihat nod tempat setiap pod dijadualkan.

DaemonSets pada Nod Terpilih

Bagaimana jika Anda hanya mahu DaemonSet berjalan pada sebahagian nod Anda? Contohnya, hanya pada nod yang mempunyai GPU atau nod yang dikhususkan untuk storan.

Anda boleh melakukannya menggunakan nodeSelector. Medan ini dalam spec pod (dalam templat DaemonSet) membolehkan Anda menentukan label nod yang mesti dimiliki oleh sesuatu nod supaya pod boleh dijadualkan di situ.

Menggunakan Pemilih Nod dalam YAML

Mari kita ubah suai DaemonSet sebelumnya supaya hanya berjalan pada nod yang dilabelkan disktype: ssd. Mula-mula, Anda perlu melabelkan nod, contohnya, 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

Keupayaan DaemonSet

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

DaemonSets: Kesimpulan Utama

Syabas! Anda telah berjaya mempelajari DaemonSets Kubernetes.

  • DaemonSets memastikan pod berjalan pada setiap nod yang layak.
  • DaemonSets penting untuk operasi peringkat nod seperti ejen pengelogan, pemantauan dan storan.
  • Anda boleh menggunakan nodeSelector untuk menyasarkan nod tertentu.
  • DaemonSets ditakrifkan dengan kind: DaemonSet dan menggunakan templat pod, serupa dengan Deployment.

Seterusnya, Anda akan meneroka StatefulSets untuk mengurus aplikasi berkeadaan!

Percuma untuk bermula

Pelajari Kem Intensif DevOps dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
142
Pelajaran
568

Soalan Lazim

Adakah pelajaran “DaemonSets untuk Tugas Khusus Nod” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Kem Intensif DevOps, termasuk “DaemonSets untuk Tugas Khusus Nod”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Kem Intensif DevOps merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “DaemonSets untuk Tugas Khusus Nod”?

Gunakan DaemonSets untuk menjalankan salinan Pod pada semua atau nod terpilih dalam kelompok anda bagi operasi peringkat kelompok. Anda berlatih Kem Intensif DevOps menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Kem Intensif DevOps?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Kem Intensif DevOps di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “DaemonSets untuk Tugas Khusus Nod” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Kem Intensif DevOps ini?

Ya. Setiap pelajaran Kem Intensif DevOps menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. StatefulSets untuk Aplikasi Berkeadaan
  2. DaemonSets untuk Tugas Khusus Nod
  3. Memahami Operator Kubernetes
  4. Takrif Sumber Tersuai (CRD)
← Kembali ke Kem Intensif DevOps