-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
Problem Description
The NodePools documentation for minValues contains two inaccuracies that can mislead users:
-
Incorrect terminology
Uses "instance families" when referring to[c,m,r], which are actually instance categories -
Misleading capacity-type behavior
States "will use spot instance type for all provisioned instances" but the YAML example doesn't specifycapacity-type, meaning both Spot and On-Demand instances can be used
Current Documentation (Incorrect)
Location
website/content/en/{docs,preview,v1.0,v1.6,v1.7,v1.8}/concepts/nodepools.md
For example, the below spec will use spot instance type for all provisioned instances and enforces `minValues` to various keys where it is defined
i.e at least 2 unique instance families from [c,m,r], 5 unique instance families [eg: "m5","m5d","r4","c5","c5d","c4" etc], 10 unique instance types [eg: "c5.2xlarge","c4.xlarge" etc] is required for scheduling the pods.Issues
1. Terminology Error
-
Says:
"2 unique instance families from [c,m,r]" -
Should be:
"2 unique instance categories from [c,m,r]" -
Explanation:
karpenter.k8s.aws/instance-category:c,m,r(categories)karpenter.k8s.aws/instance-family:c4,c5,m4,m5,r4,r5(families)
2. Misleading Capacity Type Behavior
-
Says:
will use spot instance type for all provisioned instances" -
Reality:
The YAML does not specifykarpenter.sh/capacity-type, so Karpenter will consider both Spot and On-Demand instances. -
Impact:
Users may incorrectly assume only Spot instances will be used.
If Spot capacity is unavailable (ICE), On-Demand instances can be provisioned.
Suggested Fix
For example, the below spec enforces `minValues` to various keys where it is defined:
at least 2 unique instance categories from [c,m,r], 5 unique instance families
[eg: "m5","m5d","r4","c5","c5d","c4" etc], and 10 unique instance types
[eg: "c5.2xlarge","c4.xlarge" etc] are required for scheduling the pods.{{% alert title="Note" color="primary" %}}
This example does not specify karpenter.sh/capacity-type, so Karpenter will consider both Spot and On-Demand instances, preferring Spot when available due to lower cost.
If Spot capacity is unavailable, On-Demand instances may be used.
To explicitly use only Spot instances, add the following requirement:
{{% /alert %}}
- key: karpenter.sh/capacity-type
operator: In
values: ["spot"]Affected Files
All versions of the documentation contain this error:
website/content/en/docs/concepts/nodepools.md(latest)website/content/en/preview/concepts/nodepools.mdwebsite/content/en/v1.8/concepts/nodepools.mdwebsite/content/en/v1.7/concepts/nodepools.mdwebsite/content/en/v1.6/concepts/nodepools.mdwebsite/content/en/v1.0/concepts/nodepools.md
Related Issue
This issue is related to:
kubernetes-sigs/karpenter#2435
Contribution & Voting
- 👍 Please vote by adding a reaction to the original issue to help prioritize this request
- ❌ Avoid "+1" or "me too" comments
- 💬 If you are working on this issue or have submitted a PR, please leave a comment