Autoscaled Kubernetes 工作节点上的专用 Pods

Dedicated Pods on Autoscaled Kubernetes worker nodes

我已经在 Google Cloud Platform 上创建了一个自动缩放的 Kubernetes 集群。我有一个用例,我想在每个节点上启动专用 pods .i.e.每个工作节点只能有一个这样的 pod,我希望这些专用 pods 在由于自动缩放而形成的新创建的节点上启动。有什么办法可以做到这一点。 例如如果我有 3 个工作节点,我将在我的部署文件中将副本数和 podAntiAffinity 指定为 3,这样每个 pods 都将在 3 个不同的节点上启动。但是,如果我的集群自动缩放并添加了第 4 个节点,我如何确保此 Pod 将添加到第 4 个节点?

如果您需要在每个节点上安装一个 pod,DaemonSet 就是您正在寻找的工具。如果您添加节点,DaemonSet 控制器将在那里自动启动 pod 的新副本。

对于监控服务和服务网格等工具来说,这是一种很好的方法,其中主机本身是一个重要的实体,您确实希望每个主机都有一个(收集每个主机磁盘 I/O,以透明地加密主机间网络流量)。对于更典型的基于服务器的工作负载,您应该坚持使用普通部署,其中副本数量应该独立于主机数量进行扩展(您可以有 20 个主机和 4 个 pod 副本;或者您可以在 4 个 8 核上安排 20 个 pod 副本系统)。