0

我们计划在生产中引入 AWS Spot 实例(非产品已经在 Spot 中运行)。为了实现 HA,我们为所有关键部署运行具有最少副本 2 的 HPA。由于现场实例的行为,我们希望运行按需实例,并且一个 pod 应该在相同的按需实例上运行

问题:

无论如何,我是否可以拆分 pod 以按需启动部署的一个 pod,并在现场实例中启动相同部署的所有其他 pod(另一个,因为最小值为 2,如果 HPA 增加 pod)。

我们已经使用了 nodeaAffinity 和 podAntiAffinity,因为出于不同的原因我们有多个节点组。下面是片段。

        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: category
                operator: In
                values:
                - <some value>
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
          - labelSelector:
              matchExpressions:
              - key: <lable key>
                operator: In
                values: 
                - <lable value>
            topologyKey: "kubernetes.io/hostname"
    
4

2 回答 2

1

简短的回答是No。没有这样的方式来定义每个副本。由于您已经在使用 podAntiAffinity,只需添加相同的 pod 标签,您就可以确保没有两个副本停留在同一主机中(如果这不是您已经在做的)。然后在现场中断期间使用spotInterruption Handler 来排空和重新安排时间,而不会突然停机。

于 2021-11-19T20:02:22.780 回答
0

跟进您的上一条消息:

将检查非产品中具有相同标签的两个部署,然后我们将在此处更新。

只是想知道这是怎么回事。您可以分享此设置中的任何问题/陷阱吗?您当前是在使用此设置,还是已移至其他设置。

于 2022-02-25T00:17:32.113 回答