kubernetes暂挂Pod优先级

问题描述 投票:0回答:1

我的kubernetes(1.18.3)群集上有以下Pod:

NAME      READY   STATUS    RESTARTS   AGE
pod1      1/1     Running   0          14m
pod2      1/1     Running   0          14m
pod3      0/1     Pending   0          14m
pod4      0/1     Pending   0          14m

pod3和pod4无法启动,因为该节点只能容纳2个Pod。当pod1完成并退出时,调度程序将选择pod3或pod4并启动它。到目前为止一切顺利。

但是,当任何一个正在运行的Pod完成并退出时,我也想在pod3或pod4之前启动一个高优先级Pod(hpod)。

所以我创建了一个priorityclass,可以在kubernetes文档中找到:

kind: PriorityClass
metadata:
  name: high-priority-no-preemption
value: 1000000
preemptionPolicy: Never
globalDefault: false
description: "This priority class should be used for XYZ service pods only."

我创建了以下pod yaml:

apiVersion: v1
kind: Pod
metadata:
  name: hpod
  labels:
    app: hpod
spec:
  containers:
  - name: hpod
    image: ...
    resources:
      requests:
        cpu: "500m"
        memory: "500Mi"
      limits:
        cpu: "500m"
        memory: "500Mi"
  priorityClassName: high-priority-no-preemption

现在的问题是,当我使用kubectl apply -f hpod.yaml启动高优先级pod时,尽管我已经设置了'preemptionPolicy:Never',调度程序仍会终止正在运行的pod以允许高优先级pod启动。] >

预期的行为是将启动hpod的时间推迟到当前运行的Pod完成为止。然后,让hpod在pod3或pod4之前启动。

我在做什么错?

我在kubernetes(1.18.3)群集上有以下Pod:名称就绪状态重新启动年龄pod1 1/1运行0 14m pod2 1/1运行0 14m pod3 ...

kubernetes pod preemption
1个回答
0
投票

先决条件:

© www.soinside.com 2019 - 2024. All rights reserved.