-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
Description
Observed Behavior:
Karpenter occasionally provisions nodes without accounting for DaemonSet resource requirements. As a result, some DaemonSets (e.g., node-exporter) do not schedule on the newly-created nodes due to insufficient CPU or memory, despite those DaemonSets specifying explicit resource requests and requiring tolerations.
This leaves nodes without visibility/monitoring agents, and we see FailedScheduling events for those DaemonSet pods.
Related/Previous Issue Reference:
See aws/karpenter-provider-aws#2751 — we observe the same symptoms and scheduling problems described there.
Expected Behavior:
Karpenter should consider resource requests for all DaemonSets expected to run on new nodes during provisioning, so sufficient resources are available for both triggering workload pods and all relevant DaemonSets.
Reproduction Steps (Please include YAML):
This issue is difficult to reproduce reliably, as it occurs randomly depending on scheduling order and cluster load. Below is a representative DaemonSet YAML that triggers the issue in our environment:
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: node-exporter
spec:
template:
spec:
containers:
- name: node-exporter
resources:
requests:
cpu: 50m
memory: 50Mi
limits:
memory: 256Mi
tolerations:
- effect: NoSchedule
operator: Exists
nodeSelector:
kubernetes.io/os: linux- Apply the DaemonSet above.
- Schedule a regular workload pod that triggers Karpenter to provision a new node.
- Observe: Occasionally, the DaemonSet fails to schedule with
FailedSchedulingdue to insufficient resources.
Versions:
- Chart Version:
1.6.2 - Kubernetes Version (
kubectl version):v1.33.5-eks-3cfe0ce
- Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
- Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
- If you are interested in working on this issue or have submitted a pull request, please leave a comment