DaemonSets untuk Tugas Khusus Nod
Gunakan DaemonSets untuk menjalankan salinan Pod pada semua atau nod terpilih dalam kelompok anda bagi operasi peringkat kelompok.
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.nodeNameBahagian 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.nodeNameMelancarkan 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.nodeNameKeupayaan 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
nodeSelectoruntuk menyasarkan nod tertentu. - DaemonSets ditakrifkan dengan
kind: DaemonSetdan menggunakan templat pod, serupa dengan Deployment.
Seterusnya, Anda akan meneroka StatefulSets untuk mengurus aplikasi berkeadaan!
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
- StatefulSets untuk Aplikasi Berkeadaan
- DaemonSets untuk Tugas Khusus Nod
- Memahami Operator Kubernetes
- Takrif Sumber Tersuai (CRD)