CKAD 常用资源:DaemonSet

DaemonSet 的 YAML 模板和 CKAD 常考字段解析

DaemonSet 保证每个匹配节点上运行一个 Pod,常用于日志、监控、节点代理。CKAD 不算最高频,但属于常见工作负载资源。

YAML 模板

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: node-logger
  namespace: kube-system
spec:
  selector:
    matchLabels:
      app: node-logger
  template:
    metadata:
      labels:
        app: node-logger
    spec:
      containers:
      - name: logger
        image: busybox
        command: ["sh", "-c", "while true; do date; sleep 30; done"]

常考字段解析

  • spec.selector.matchLabels:选择 DaemonSet 管理的 Pod。
  • spec.template.metadata.labels:必须匹配 selector。
  • spec.template.spec.nodeSelector:限制只在部分节点运行。
  • spec.template.spec.tolerations:允许调度到带污点的节点。

常用命令

1
2
3
4
k get daemonset -A
k describe daemonset node-logger -n kube-system
k rollout status daemonset/node-logger -n kube-system
k get pod -n kube-system -l app=node-logger -o wide

易错点

  • DaemonSet 不写 replicas,副本数由节点数量决定。
  • selector 和 template labels 仍然必须一致。
comments powered by Disqus