是否有一种方法可以仅在具有活动部署的节点上部署DaemonSet



我正在我的命名空间下部署我的服务。我们有一个工作节点场,我的服务将只使用其节点的一小部分。

我想部署cAdvisor的DaemontSet,但我只希望它们在与我的命名空间无关的节点中运行。如果可能,如何做到这一点?

谢谢!

ScheduleDaemonSetPods是一个kubernetes功能,它允许您使用默认调度程序而不是DaemonSet控制器来调度DaemonSets,方法是将NodeAffinity项而不是.spec.nodeName项添加到DaemonSetpod中。Kubernetes文档

例如,下面的k8s清单将在具有type=target-host-name:的节点上创建Pods

apiVersion: apps/v1
kind: DaemonSet
metadata:
name: testdaemon
spec:
template:
metadata:
labels:
app: testdaemon
annotations:
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: type
operator: In
values:
- target-host-name
containers:
- name: testdaemon
image: nginx

DaemonSet每个节点运行一个pod。不能绕过节点。