Từ Code đến System

Kubernetes

[Kubernetes] Phần 9: Khái niệm DaemonSet

Tổng quan

Bài toán, khi triển khai mô hình cluster nhiều node ta sẽ gặp bài toán làm sao để triển khai agent giám sát tới mỗi node. Và với mô hình Cluster K8s, ứng dụng được chạy trong pod, vậy làm sao để thu thập metric của các Pod chạy trong từng node, làm sao bảo đảm khi có Node Worker mới join vào Cluster sẽ tự có agent được triển khai trên node đó và tự mất đi khi có Worker out khỏi Cluster.

Để giải quyết bài toán này, K8s sinh ra resource DaemonSets. DaemonSets sử dụng để bảo đảm 1 tập hoặc tất cả các K8s node sẽ chạy 1 bản copy của pod. Khi thêm mới Node vào K8s Cluster, sẽ tự có Pod triển khai vào node mới. Khi out worker khỏi node, Pod sẽ tự mất đi.

DaemonSet là phương pháp quản lý Pod khác, giống như DeploymentsReplicaSetsStatefulSets. Nó sinh ra với mục tiêu duy nhất, bảo đảm sẽ có Pod (triển khai dạng DaemonSet) được triển khai trên toàn bộ các node thuộc Cluster.

Ví dụ điển hình nhất của DaemonSet là logging và monitoring các Pod, Node thuộc Cluster

Các ví dụ sử dụng DaemonSet

  • To run a daemon for cluster storage on each node, such as: – glusterd – ceph
  • To run a daemon for logs collection on each node, such as: – fluentd – logstash
  • To run a daemon for node monitoring on ever note, such as: – Prometheus Node Exporter – collectd – Datadog agent

Nguồn

https://collabnix.github.io/kubelabs/DaemonSet101/

https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/

Leave a Reply