![如何调度 Pod 以便每个集群节点都有相同的服务集?](https://linux22.com/image/778948/%E5%A6%82%E4%BD%95%E8%B0%83%E5%BA%A6%20Pod%20%E4%BB%A5%E4%BE%BF%E6%AF%8F%E4%B8%AA%E9%9B%86%E7%BE%A4%E8%8A%82%E7%82%B9%E9%83%BD%E6%9C%89%E7%9B%B8%E5%90%8C%E7%9A%84%E6%9C%8D%E5%8A%A1%E9%9B%86%EF%BC%9F.png)
我希望每个 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:
...