3.4.10. DaemonSet¶
实例-阿里日志:
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: logtail-ds
namespace: kube-system
labels:
k8s-app: logtail-ds
spec:
revisionHistoryLimit: 10
selector:
matchLabels:
name: logtail-ds
updateStrategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
template:
metadata:
labels:
name: logtail-ds
spec:
containers:
- env:
- name: ALIYUN_LOGTAIL_CONFIG
valueFrom:
configMapKeyRef:
key: log-config-path
name: alibaba-log-configuration
name: logtail
image: registry-vpc.cn-beijing.aliyuncs.com/acs/logtail:v0.16.52.2-f161bec-aliyun
resources:
limits:
cpu: 500m
memory: 2Gi
requests:
cpu: 100m
memory: 512Mi
volumeMounts:
- mountPath: /var/run
name: run
- mountPath: /logtail_host
name: root
readOnly: true
terminationGracePeriodSeconds: 30
volumes:
- hostPath:
path: /var/run
type: Directory
name: run
- hostPath:
path: /
type: Directory
备注
最主要特征: 一台 node 一个 DaemonSet
DaemonSet 更新策略:
1. nDelete:
使用 OnDelete 更新策略时,在更新 DaemonSet 模板后
只有当你手动删除老的 DaemonSet pods 之后,新的 DaemonSet Pod 才会被自动创建。
跟 Kubernetes 1.6 以前的版本类似。
2. RollingUpdate:
这是默认的更新策略。
使用 RollingUpdate 更新策略时,在更新 DaemonSet 模板后
老的 DaemonSet pods 将被终止,并且将以受控方式自动创建新的 DaemonSet pods
更新期间,最多只能有 DaemonSet 的一个 Pod 运行于每个节点上