如何调度 Pod 以便每个集群节点都有相同的服务集?

如何调度 Pod 以便每个集群节点都有相同的服务集?

我希望每个 Kubernetes 节点上都有一组相同的 pod。

如果我扩大部署,我希望新的 pod 能够运行在我扩大规模的新集群节点上。

我是否要为此使用所需的节点亲和性?

答案1

正如评论中所建议的:为了让节点运行同一组 Pod,你正在寻找一个DaemonSet

虽然 Deployment 允许您控制所需的副本数量,但 DaemonSets 依赖其 nodeSelector 为每个与该选择器匹配的节点安排一个副本。

默认情况下(如果您未设置任何 nodeSelector),Pod 将被调度到所有节点。根据节点污点,可能需要一些容忍度:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: foo
spec:
  selector:
    matchLabels:
      foo: bar
  template:
    metadata:
      labels:
        foo: bar
    spec:
      tolerations:
      - operator: Exists
      containers:
      ...

相关内容