Usage of karpenter:
-ami-refresh-interval duration
How often Karpenter refreshes AMI data from EC2. Increasing this value will reduce the number of DescribeImages API calls at the cost of increased staleness in AMI discovery and drift detection. Must be at least 1m. (default 1m0s)
-aws-feature-gates string
Optional AWS-specific features can be enabled / disabled using feature gates. Current options are: NodeClassCEL, DRANVIDIAGPU, DRAEFA, RebootForRepair. (default "NodeClassCEL=false,DRANVIDIAGPU=false,DRAEFA=false,RebootForRepair=false")
-batch-idle-duration duration
The maximum amount of time with no new pending pods that if exceeded ends the current batching window. If pods arrive faster than this time, the batching window will be extended up to the maxDuration. If they arrive slower, the pods will be batched separately. (default 1s)
-batch-max-duration duration
The maximum length of a batch window. The longer this is, the more pods we can consider for provisioning at one time which usually results in fewer but larger nodes. (default 10s)
-cluster-ca-bundle string
Cluster CA bundle for nodes to use for TLS connections with the API server. If not set, this is taken from the controller's TLS configuration.
-cluster-endpoint string
The external kubernetes cluster endpoint for new nodes to connect with. If not specified, will discover the cluster endpoint using DescribeCluster API.
-cluster-name string
[REQUIRED] The kubernetes cluster name for resource discovery.
-cpu-requests int
CPU requests in millicores on the container running the controller. (default 1000)
-disable-cluster-state-observability
Disable cluster state metrics and events
-disable-controller-warmup
Disable controller warmup which starts controller sources before leader election is won. Controller warmup pre-populates caches and improves leader failover time.
-disable-dry-run
If true, then disable dry run validation for EC2NodeClasses.
-disable-leader-election
Disable the leader election client before executing the main loop. Disable when running replicated components for high availability is not desired.
-eks-control-plane
Marking this true means that your cluster is running with an EKS control plane and Karpenter should attempt to discover cluster details from the DescribeCluster API
-enable-profiling
Enable the profiling on the metric endpoint
-enable-zonal-shift
If true, then enable zonal shifting feature.
-feature-gates string
Optional features can be enabled / disabled using feature gates. Current options are: NodeRepair, ReservedCapacity, SpotToSpotConsolidation, NodeOverlay, StaticCapacity, CapacityBuffer, TerminateFirstDrift, TerminateFirstRepair, and PodDeletionCostManagement. (default "NodeRepair=false,ReservedCapacity=true,SpotToSpotConsolidation=false,NodeOverlay=false,StaticCapacity=false,CapacityBuffer=false,TerminateFirstDrift=false,TerminateFirstRepair=false,PodDeletionCostManagement=false")
-health-probe-port int
The port the health probe endpoint binds to for reporting controller health (default 8081)
-ignore-dra-requests
When set, Karpenter will ignore pods' DRA requests during scheduling simulations. NOTE: This flag will be removed once formal DRA support is GA in Karpenter.
-interruption-queue string
Interruption queue is the name of the SQS queue used for processing interruption events from EC2. Interruption handling is disabled if not specified. Enabling interruption handling may require additional permissions on the controller service account. Additional permissions are outlined in the docs.
-isolated-vpc
If true, then assume we can't reach AWS services which don't have a VPC endpoint. This also has the effect of disabling look-ups to the AWS on-demand pricing endpoint.
-karpenter-service string
The Karpenter Service name for the dynamic webhook certificate
-kube-client-burst int
The maximum allowed burst of queries to the kube-apiserver (default 300)
-kube-client-qps int
The smoothed rate of qps to kube-apiserver (default 200)
-leader-election-name string
Leader election name to create and monitor the lease if running outside the cluster (default "karpenter-leader-election")
-leader-election-namespace string
Leader election namespace to create and monitor the lease if running outside the cluster
-legacy-node-repair
When set with the NodeRepair feature gate, Karpenter runs the legacy node repair controller instead of node repair as a disruption method. The legacy controller only replaces nodes: it does not support terminate-first repair, reboot, repair policy priority or termination grace periods, or the karpenter.sh/do-not-repair annotation. NOTE: The legacy node repair controller is planned for deprecation. If you use it because the new one does not work for you, please open an issue with your use case or problem.
-log-error-output-paths string
Optional comma separated paths for logging error output (default "stderr")
-log-level string
Log verbosity level. Can be one of 'debug', 'info', or 'error' (default "info")
-log-output-paths string
Optional comma separated paths for directing log output (default "stdout")
-memory-limit int
Memory limit on the container running the controller. The GC soft memory limit is set to 90% of this value. (default -1)
-metrics-port int
The port the metric endpoint binds to for operating metrics about the controller itself (default 8080)
-min-values-policy string
Min values policy for scheduling. Options include 'Strict' for existing behavior where min values are strictly enforced or 'BestEffort' where Karpenter relaxes min values when it isn't satisfied. (default "Strict")
-preference-policy string
How the Karpenter scheduler should treat preferences. Preferences include preferredDuringSchedulingIgnoreDuringExecution node and pod affinities/anti-affinities and ScheduleAnyways topologySpreadConstraints. Can be one of 'Ignore' and 'Respect' (default "Respect")
-reserved-enis int
Reserved ENIs are not included in the calculations for max-pods or kube-reserved. This is most often used in the VPC CNI custom networking setup https://docs.aws.amazon.com/eks/latest/userguide/cni-custom-network.html.
-scheduler-config string
A YAML/JSON document configuring the parts of the cluster's kube-scheduler behavior that Karpenter must mirror during scheduling simulation, currently only podTopologySpread.defaultConstraints. Empty means no scheduler-config overrides.
-security-group-refresh-interval duration
How often Karpenter refreshes security group data from EC2. Increasing this value will reduce the number of DescribeSecurityGroups API calls at the cost of increased staleness in security group discovery. Must be at least 1m. (default 1m0s)
-subnet-refresh-interval duration
How often Karpenter refreshes subnet data from EC2. Increasing this value will reduce the number of DescribeSubnets API calls at the cost of increased staleness in subnet discovery. Must be at least 1m. (default 1m0s)
-vm-memory-overhead-percent float
The VM memory overhead as a percent that will be subtracted from the total memory for all instance types when cached information is unavailable. (default 0.075)
Options (38)
| Option | Description | Source |
|---|---|---|
-ami-refresh-interval duration | How often Karpenter refreshes AMI data from EC2. | help |
-aws-feature-gates string | Optional AWS-specific features can be enabled / disabled using feature gates. | help |
-batch-idle-duration duration | The maximum amount of time with no new pending pods that if exceeded ends the current batching window. | help |
-batch-max-duration duration | The maximum length of a batch window. | help |
-cluster-ca-bundle string | Cluster CA bundle for nodes to use for TLS connections with the API server. | help |
-cluster-endpoint string | The external kubernetes cluster endpoint for new nodes to connect with. | help |
-cluster-name string | [REQUIRED] The kubernetes cluster name for resource discovery. | help |
-cpu-requests int | CPU requests in millicores on the container running the controller. | help |
-disable-cluster-state-observability | Disable cluster state metrics and events | help |
-disable-controller-warmup | Disable controller warmup which starts controller sources before leader election is won. | help |
-disable-dry-run | If true, then disable dry run validation for EC2NodeClasses. | help |
-disable-leader-election | Disable the leader election client before executing the main loop. | help |
-eks-control-plane | Marking this true means that your cluster is running with an EKS control plane and Karpenter should attempt to discover cluster details from the DescribeCluster API | help |
-enable-profiling | Enable the profiling on the metric endpoint | help |
-enable-zonal-shift | If true, then enable zonal shifting feature. | help |
-feature-gates string | Optional features can be enabled / disabled using feature gates. | help |
-health-probe-port int | The port the health probe endpoint binds to for reporting controller health (default 8081) | help |
-ignore-dra-requests | When set, Karpenter will ignore pods' DRA requests during scheduling simulations. | help |
-interruption-queue string | Interruption queue is the name of the SQS queue used for processing interruption events from EC2. | help |
-isolated-vpc | If true, then assume we can't reach AWS services which don't have a VPC endpoint. | help |
-karpenter-service string | The Karpenter Service name for the dynamic webhook certificate | help |
-kube-client-burst int | The maximum allowed burst of queries to the kube-apiserver (default 300) | help |
-kube-client-qps int | The smoothed rate of qps to kube-apiserver (default 200) | help |
-leader-election-name string | Leader election name to create and monitor the lease if running outside the cluster (default "karpenter-leader-election") | help |
-leader-election-namespace string | Leader election namespace to create and monitor the lease if running outside the cluster | help |
-legacy-node-repair | When set with the NodeRepair feature gate, Karpenter runs the legacy node repair controller instead of node repair as a disruption method. | help |
-log-error-output-paths string | Optional comma separated paths for logging error output (default "stderr") | help |
-log-level string | Log verbosity level. | help |
-log-output-paths string | Optional comma separated paths for directing log output (default "stdout") | help |
-memory-limit int | Memory limit on the container running the controller. | help |
-metrics-port int | The port the metric endpoint binds to for operating metrics about the controller itself (default 8080) | help |
-min-values-policy string | Min values policy for scheduling. | help |
-preference-policy string | How the Karpenter scheduler should treat preferences. | help |
-reserved-enis int | Reserved ENIs are not included in the calculations for max-pods or kube-reserved. | help |
-scheduler-config string | A YAML/JSON document configuring the parts of the cluster's kube-scheduler behavior that Karpenter must mirror during scheduling simulation, currently only podTopologySpread.defaultConstraints. | help |
-security-group-refresh-interval duration | How often Karpenter refreshes security group data from EC2. | help |
-subnet-refresh-interval duration | How often Karpenter refreshes subnet data from EC2. | help |
-vm-memory-overhead-percent float | The VM memory overhead as a percent that will be subtracted from the total memory for all instance types when cached information is unavailable. | help |