在AWS EKS自动模式下部署KEDA至system节点池的问题求助
解决KEDA通过Helm部署到AWS EKS system节点池的问题
你的问题出在没有匹配KEDA Helm Chart的values结构,直接写Pod spec层级的配置是不生效的。Helm需要你通过对应组件的values项来传递nodeSelector和tolerations,而非直接写Pod的spec块。
正确的配置文件写法
创建keda-system-nodepool.yaml,内容如下:
# 针对KEDA Operator(核心组件)配置节点选择和容忍度 operator: nodeSelector: karpenter.sh/nodepool: system tolerations: - key: "CriticalAddonsOnly" operator: "Exists" # 若KEDA Webhook也需要部署到system节点池,添加以下配置 webhook: nodeSelector: karpenter.sh/nodepool: system tolerations: - key: "CriticalAddonsOnly" operator: "Exists" # 若使用KEDA Metrics Server,同样配置(可选) metricsServer: nodeSelector: karpenter.sh/nodepool: system tolerations: - key: "CriticalAddonsOnly" operator: "Exists"
重新执行Helm安装命令
helm upgrade --install keda kedacore/keda --namespace keda --create-namespace -f keda-system-nodepool.yaml --wait
验证部署结果
执行以下命令确认Pod是否调度到system节点池:
# 查看KEDA Pod所在节点 kubectl get pods -n keda -o wide # 检查Pod的nodeSelector和tolerations配置 kubectl describe pod <keda-operator-pod-name> -n keda | grep -A5 -B5 "Node Selector\|Tolerations"
如果Pod仍未调度到目标节点,需要确认:
- system节点池的节点确实带有
karpenter.sh/nodepool: system标签 - 节点已配置
CriticalAddonsOnly污点(可通过kubectl describe node <node-name>查看)
内容的提问来源于stack exchange,提问作者tampe125
相关产品推荐
相关产品推荐

