我有一些在集群中运行的可爆 pod,我不想在内存/cpu 压力的情况下被杀死。
有什么方法可以增加它的优先级或其他东西,这样我们就不必更改它的命名空间(kube-system 使其变得至关重要)并且可以保存它?
我发现了一些关于为 pod 添加优先级的问题。但想不出解决办法。应该有一些方法来设置优先级,或者我在这里错过了什么大事?
我有一些在集群中运行的可爆 pod,我不想在内存/cpu 压力的情况下被杀死。
有什么方法可以增加它的优先级或其他东西,这样我们就不必更改它的命名空间(kube-system 使其变得至关重要)并且可以保存它?
我发现了一些关于为 pod 添加优先级的问题。但想不出解决办法。应该有一些方法来设置优先级,或者我在这里错过了什么大事?
Pod 优先级功能在 Kubernetes 之前不可用v1.7
从v1.8+
,您可以在 PodSpec 中添加 pod 的优先级。您需要创建具有优先级值的 PriorityClass 对象并在 Pod 中使用该 PriorityClass 名称。
但到目前为止v1.9
,PriorityClass 仍处于 alpha 阶段。
apiVersion: scheduling.k8s.io/v1alpha1
kind: PriorityClass
metadata:
name: high-priority
value: 1000000
globalDefault: false
这里,
value
表示优先级。值越高,优先级越高globalDefault
表示这个 PriorityClass 的值应该用于没有 PriorityClassName 的 Pod。系统中只能存在一个 globalDefault 设置为 true 的 PriorityClass。现在,让我们创建一个具有此优先级的 Pod
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
env: test
spec:
containers:
- name: nginx
image: nginx
priorityClassName: high-priority
抢占
创建 Pod 时,如果没有找到满足该 Pod 的所有指定要求的节点,则使用抢占逻辑将一个或多个较低优先级的 Pod 从该节点中删除。Pod 消失后,优先级较高的 Pod 会被调度到 Node 上。
查看有关pod 优先级的详细信息。