Middle
Kāda ir DaemonSet praktiskā pielietojuma Kubernetes?
sobes.tech AI
Atbilde no AI
DaemonSet nodrošina, ka pods irdar tiekts visās (vai norādītajās) klastera mezglos. Tas ir noderīgi sistēmiskiem demoniem, kas jādarbojas katrā mezglā.
Praktiski pielietojumi:
- Žurnālu vākšana: Žurnālu vākšanas aģenta (piemēram, Fluentd, Logstash) izvietošana katrā mezglā, lai žurnāli tiktu pārsūtīti uz centralizētu glabātuvi.
- Mezgla uzraudzība: Uzraudzības aģenta (piemēram, Prometheus Node Exporter, Datadog Agent) izvietošana katrā mezglā, lai savāktu mezgla stāvokļa metriku.
- Klastera glabātuve: Izplatītas glabāšanas (piemēram, Ceph, Glusterfs) izvietošana katrā mezglā, lai nodrošinātu izplatītu glabāšanu.
- Drošības aģenti: Drošības vai audita aģentu izvietošana katrā mezglā.
Atšķirība no Deployment: DaemonSet izveido podu katrā mezglā, kamēr Deployment cenšas uzturēt noteiktu repliku skaitu visā klasterī, sadalot tās pieejamajos mezglos.
DaemonSet piemērs žurnālu vākšanas aģentam:
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" # Piemērs Elasticsearch adrese
- 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 automātiski pievieno podu jauniem mezgliem un noņem to, ja mezgls tiek izņemts no klastera.