Kubernetes 使用种类部署模拟守护程序行为

Kubernetes 使用种类部署模拟守护程序行为,kubernetes,Kubernetes,我有一些无状态应用程序,我希望在每个节点上安排一个pod(受节点选择器限制)。如果集群中有3个节点,其中一个掉了,那么我应该仍然有2个吊舱(每个节点上一个) 这正是守护程序所做的,但是守护程序在使用上有几个注意事项(例如不支持节点排水,以及远程呈现等工具不支持它们)。因此,我想模拟使用部署的守护程序的行为 我的第一个想法是使用带有自定义指标的水平pod autoscaler,这样所需的副本将等于节点数。但即使在实现了这一点之后,它仍然不能保证每个节点调度一个pod(我想是吧?) 关于如何实施这一

我有一些无状态应用程序,我希望在每个节点上安排一个pod(受节点选择器限制)。如果集群中有3个节点,其中一个掉了,那么我应该仍然有2个吊舱(每个节点上一个)

这正是守护程序所做的,但是守护程序在使用上有几个注意事项(例如不支持节点排水,以及远程呈现等工具不支持它们)。因此,我想模拟使用部署的守护程序的行为

我的第一个想法是使用带有自定义指标的水平pod autoscaler,这样所需的副本将等于节点数。但即使在实现了这一点之后,它仍然不能保证每个节点调度一个pod(我想是吧?)


关于如何实施这一点,有什么想法?

< P>你可以考虑下面的组合

  • HPA根据自定义指标将副本更新为节点数。我想你已经这样做了
  • 使用节点关联和反关联在每个节点上仅运行一个pod

  • <>你可以考虑下面的组合

  • HPA根据自定义指标将副本更新为节点数。我想你已经这样做了
  • 使用节点关联和反关联在每个节点上仅运行一个pod
  • 可用性设计 如果集群中有3个节点,其中一个掉了,那么我应该仍然有2个吊舱(每个节点上一个)

    我的理解是,您希望为可用性设计集群。因此,最重要的是将副本(POD)分布在不同的节点上,以减少节点停机时的影响

    在不同节点上调度吊舱 为此使用
    PodAntiAffinity
    topologyKey

    部署redis群集,使同一主机上没有两个实例

    有关可用性,请参见和

    设计 如果集群中有3个节点,其中一个掉了,那么我应该仍然有2个吊舱(每个节点上一个)

    我的理解是,您希望为可用性设计集群。因此,最重要的是将副本(POD)分布在不同的节点上,以减少节点停机时的影响

    在不同节点上调度吊舱 为此使用
    PodAntiAffinity
    topologyKey

    部署redis群集,使同一主机上没有两个实例


    请参阅和

    这些解决方案都不保证一个pod只能在一个节点上运行。这些解决方案都不保证一个pod只能在一个节点上运行。真正保证这一点的唯一方法是使用一个自定义计划程序。我不认为这是黑客与亲和力或HPA。顺便说一句,不支持节点排水,这是怎么回事?我认为这只是kubectl中的一个标志(
    --忽略守护程序
    )。编辑:我猜你指的是优雅关机。@ThomasJungblut你能详细说明为什么HPA+亲和力不起作用吗?它们根本不能保证这种行为。它们可以工作,但请注意您在这里的实际需求。我只是想将此作为问题的可能解决方案添加,真正保证的唯一方法是有一个自定义的调度程序来完成这项工作。我不认为这是黑客与亲和力或HPA。顺便说一句,不支持节点排水,这是怎么回事?我认为这只是kubectl中的一个标志(
    --忽略守护程序
    )。编辑:我猜你指的是优雅关机。@ThomasJungblut你能详细说明为什么HPA+亲和力不起作用吗?它们根本不能保证这种行为。它们可以工作,但请注意您的实际需求。我只是想将其添加为问题的可能解决方案