pod_ipodtouch4_poachingpod

Kubernetes 1.21版本引入了一个新特性,Pod Deletion Cost。这是一个可选的新特性,允许用户设置一个Pod的”删除成本”,以影响Kubernetes调度器在进行缩容时的决策。删除成本是一个整数值,可以为正数、零或负数。具有较高删除成本的Pod在缩容时将被优先保留,而具有较低删除成本的Pod将被优先删除。如果没有设置删除成本,Pod的默认删除成本为0。这个特性为用户提供了更大的灵活性,使他们能够更好地控制在进行缩容时哪些Pod应该被优先删除,从而更好地优化他们的应用程序和服务。

未调度 > 已调度:未调度的Pods优先级更高,因为它们还没有开始运行任何任务,所以优先缩减它们对系统的资源占用。

PodPending > PodUnknown > PodRunning:PodPending表示Pod还未开始运行,PodUnknown表示Pod状态未知,PodRunning表示Pod正在运行。优先缩减还未运行或者状态未知的Pods,以尽可能保持系统的稳定运行。

Not ready > ready:Not ready的Pods优先级更高,因为它们可能存在问题,优先缩减它们可以减少系统的错误率。

较大打散权重 > 较小:打散权重大的Pods优先级更高,因为它们在集群中的分布更广,优先缩减它们可以减少系统的负载。

处于 Ready 时间较短 > 较长:处于Ready状态时间较短的Pods优先级更高,因为它们可能刚刚开始运行,优先缩减它们可以减少对系统的影响。

容器重启次数较多 > 较少:重启次数多的Pods优先级更高,因为它们可能存在问题,优先缩减它们可以减少系统的错误率。

创建时间较短 > 较长:创建时间短的Pods优先级更高,因为它们可能刚刚开始运行,优先缩减它们可以减少对系统的影响。

拓展案例

apiVersion: v1kind: Podmetadata:  name: mypod  annotations:    "controller.kubernetes.io/pod-deletion-cost": "10"        命令方式kubectl get podskubectl annotate pod  controller.kubernetes.io/pod-deletion-cost=     

在这个例子中,mypod的删除成本被设置为10。这意味着在进行缩容时,Kubernetes调度器将优先删除其他删除成本较低的Pod。

注意,Pod Deletion Cost只在ReplicaSet和Deployment的Pod中有效,对于StatefulSet和DaemonSet中的Pod则无效。并且,你只能在创建Pod时设置deletionCost,不支持后期修改。

限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: lzxmw777

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注