Middle
Барномаи амалӣ дар Kubernetes барои DaemonSet чист?
sobes.tech AI
Ҷавоб аз AI
DaemonSet უზრუნველყოფს, რომ პოდია გაშვებული ყველა (ან მითითებულ ქვედანაყოფზე) ნეტვზე კლასტერში. ეს სასარგებლოა სისტემური დემონების განთავსებისთვის, რომლებიც უნდა მუშაობდნენ თითოეულ ნეტვზე.
პრაქტიკული გამოყენებები:
- ლოგების შეგროვება: ლოგების შეგროვების აგენტის (მაგალითად, Fluentd, Logstash) გაშვება თითოეულ ნეტვზე, რათა ლოგები გადაეცეს ცენტრალიზებულ საცავში.
- ნეტვების მონიტორინგი: მონიტორინგის აგენტის (მაგალითად, Prometheus Node Exporter, Datadog Agent) განთავსება თითოეულ ნეტვზე, რათა შეგროვდეს ნეტვზე სტატუსის მეტრიკები.
- კლასტერული საცავი: დომენის დისტრიბუციული საცავის უზრუნველსაყოფად, მაგალითად, Ceph, Glusterfs, თითოეულ ნეტვზე გაშვება.
- უსაფრთხოების აგენტები: უსაფრთხოების ან აუდიტის აგენტების განთავსება თითოეულ ნეტვზე.
განსხვავება Deployment-დან: DaemonSet ქმნის პოდს თითოეულ ნეტვზე, მაშინ როდესაც Deployment ცდილობს შეინარჩუნოს მითითებული რეპლიკების რაოდენობა მთელ კლასტერში, განაწილებით ხელმისაწვდომ ნეტვებზე.
DaemonSet-ის მაგალითი ლოგების შეგროვების აგენტის მანიაფესტისთვის:
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: fluentd-elasticsearch
labels:
k8s-app: fluentd-logging
spec:
selector:
matchLabels:
name: fluentd-elasticsearch
template:
metadata:
labels:
name: fluentd-elasticsearch
spec:
containers:
- name: fluentd-elasticsearch
image: fluentd/fluentd-kubernetes-daemonset:v1.14-debian-elasticsearch7-1
env:
- name: FLUENT_ELASTICSEARCH_HOST
value: "elasticsearch.default.svc.cluster.local" # მაგალითი Elasticsearch-ის მისამართის
- name: FLUENT_ELASTICSEARCH_PORT
value: "9200"
- name: FLUENT_ELASTICSEARCH_SCHEME
value: "http"
volumeMounts:
- name: varlog
mountPath: /var/log
- name: varlibdockercontainers
mountPath: /var/lib/docker/containers
readOnly: true
terminationGracePeriodSeconds: 30
volumes:
- name: varlog
hostPath:
path: /var/log
- name: varlibdockercontainers
hostPath:
path: /var/lib/docker/containers
DaemonSet ავტომატურად დამატებს პოდს ახალ ნეტვებზე და წაშლის მას ნეტვიდან კლასტერში წაშლისას.