首页 > 解决方案 > kubernetes pod 重新调度并在不同命名空间部署后将在不同节点运行

问题描述

我有两个命名空间 qa 和 dev。qa 和 dev pod 可以在同一个节点上运行。当我删除开发版本/pod 时,k8 只是重新安排了不同节点中的一些 qa pod。当我启用自动缩放时也会发生类似的事情,即缩小时,k8 将重新调度相同/不同命名空间中的其他服务 pod。1) 如何防止 k8 重新调度 2) 在自动缩放的情况下如何处理?

标签: kuberneteshorizontal-pod-autoscaling

解决方案


如果您想在特定节点上安排您的 pod,那么您可以使用节点选择器

# To set level on node run
$ kubectl label nodes <node-name> <label-key>=<label-value>

# On pod spec set

  nodeSelector:
    <label-key>=<label-value>

如果您想防止重新安排,请使用Pod 中断预算并设置maxUnavailable: 0,它永远不会删除您的 pod

apiVersion: policy/v1beta1
kind: PodDisruptionBudget
metadata:
  name: pdb
spec:
  maxUnavailable: 0
  selector:
    matchLabels:
      app: demoapp

推荐阅读