Docker K8s 07 使用 DaemonSet 在某些节点上运行单例 Pod 服务

DaemonSet 通过 label 确保某些(或全部) Node 节点运行某一个单例 Pod 服务. 随着 Node 节点加入集群创建 Pod 服务, 随着从集群移除 Node 节点回收 Pod 服务. 删除 DaemonSet 会同时删除所有基于它的 Pod 服务.

典型用法: 节点日志收集(logstash, fluentd), 域名服务, 数据存储服务(glusterd, ceph), 监控程序(Node Exporter)等.

1
2
3
4
5
6
7
8
apiVersion: app/v1
# 指定资源类型为 DaemonSet
kind: DaemonSet
metadata:
name: node-exporter
namespace: monitoring
labels:
# ...

其中指定了命名空间(Namespace), 如果不存在需要预先创建:

1
kubectl create namespace monitoring

之后执行应用

1
kubectl apply -f DAEMON_SET_NAME.yaml

查看执行结果

1
kubectl get pods --namespace=monitoring -o wide

至此, 定义的 DaemonSet 就在指定的 label 机器上(或全部机器)上创建好了 Pod 服务.

Donate - Support to make this site better.
捐助 - 支持我让我做得更好.