Skip to content

Commit 2eeb646

Browse files
Merge pull request #6557 from kiryl-filatau:aws-5k-fix
PiperOrigin-RevId: 904559722
2 parents 9b68f5d + f76ce50 commit 2eeb646

2 files changed

Lines changed: 31 additions & 0 deletions

File tree

perfkitbenchmarker/providers/aws/elastic_kubernetes_service.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -993,6 +993,29 @@ def _DefaultNodepoolInstanceTypes() -> list[str]:
993993
def _PostCreate(self):
994994
"""Performs post-creation steps for the cluster."""
995995
super()._PostCreate()
996+
if FLAGS.eks_tune_vpc_cni_for_scale:
997+
logging.info('Tuning aws-node (VPC CNI) for kubernetes_node_scale')
998+
kubectl.RunKubectlCommand([
999+
'set',
1000+
'env',
1001+
'daemonset/aws-node',
1002+
'-n',
1003+
'kube-system',
1004+
'WARM_ENI_TARGET=0',
1005+
'WARM_IP_TARGET=1',
1006+
'MINIMUM_IP_TARGET=1',
1007+
])
1008+
kubectl.RunRetryableKubectlCommand(
1009+
[
1010+
'rollout',
1011+
'status',
1012+
'daemonset/aws-node',
1013+
'-n',
1014+
'kube-system',
1015+
'--timeout=%ds' % vm_util.DEFAULT_TIMEOUT,
1016+
],
1017+
timeout=vm_util.DEFAULT_TIMEOUT,
1018+
)
9961019
# Karpenter controller resources: default 1/1Gi; scale up when
9971020
# node_scale target exceeds 1000 nodes.
9981021
num_nodes = getattr(FLAGS, 'kubernetes_scale_num_nodes', None)

perfkitbenchmarker/providers/aws/flags.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,14 @@
246246
'Comma-separated EC2 types for the Karpenter default NodePool (worker '
247247
'nodes only). Empty keeps instance-category/generation in the template.',
248248
)
249+
flags.DEFINE_boolean(
250+
'eks_tune_vpc_cni_for_scale',
251+
False,
252+
'Tune aws-node DaemonSet warm-pool settings (WARM_ENI_TARGET=0, '
253+
'WARM_IP_TARGET=1, MINIMUM_IP_TARGET=1) after cluster creation. '
254+
'Required when scaling to thousands of nodes to prevent subnet IP '
255+
'exhaustion. Enable when running kubernetes_node_scale at large scale.',
256+
)
249257
AWS_CAPACITY_BLOCK_RESERVATION_ID = flags.DEFINE_string(
250258
'aws_capacity_block_reservation_id',
251259
None,

0 commit comments

Comments
 (0)