守护进程
保证再每个node上都运行一个容器副本,常用来部署一些集群的日志,监控或其他系统管理应用,典型案例:
• 日志收集:fluentd、logstash
• 系统监控:prometheus、collectd、ganglia
• 系统程序:kube-proxy、kube-dns、glusterd
测试案例
#创建ds
[root@k8s-master ~]# cat ds.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: my-ds
labels:
app: filebeat
spec:
selector:
matchLabels:
app: filebeat
template:
metadata:
labels:
app: filebeat
spec:
containers:
- name: ds
image: nginx
ports:
- containerPort: 80
volumeMounts:
- name: var-log
mountPath: /tmp
volumes:
- name: var-log
hostPath:
path: /var/log
#应用
[root@k8s-master ~]# kubectl apply -f ds.yaml
daemonset.apps/my-ds created
#查看pod
[root@k8s-master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
my-ds-jcx6t 1/1 Running 0 53s
my-ds-tjq4l 1/1 Running 0 53s
#登录pod查看日志
[root@k8s-master ~]# kubectl exec -it my-ds-jcx6t bash
root@my-ds-jcx6t:/# ls /tmp/log/
anaconda cron-20221014 lastlog secure
audit cron-20221016 maillog secure-20221014
boot.log dmesg maillog-20221014 secure-20221016
boot.log-20221014 dmesg.old maillog-20221016 spooler
boot.log-20221015 firewalld messages spooler-20221014
btmp grubby messages-20221014 spooler-20221016
btmp-20221014 grubby_prune_debug messages-20221016 tallylog
calico iptraf-ng pods tuned
cloud-init-output.log journal q udinstall.log
cloud-init.log kec-ipv6-setup-utils qemu-ga wtmp
containers ksc-queue.log rhsm yum.log
cron kubernetes sa