From 921b0c0bed59032ee0b9b6fc3d8b32c101914cb0 Mon Sep 17 00:00:00 2001
From: Lihai Tu <92532497+tu1h@users.noreply.github.com>
Date: Fri, 21 Jun 2024 22:54:54 +0800
Subject: [PATCH] Add options to control images pulling of kubelet (#11094)

Signed-off-by: tu1h <lihai.tu@daocloud.io>
---
 docs/ansible/vars.md                                           | 2 ++
 roles/kubernetes/node/defaults/main.yml                        | 3 +++
 roles/kubernetes/node/templates/kubelet-config.v1beta1.yaml.j2 | 1 +
 3 files changed, 6 insertions(+)

diff --git a/docs/ansible/vars.md b/docs/ansible/vars.md
index c2cdaa099..7af04c9e7 100644
--- a/docs/ansible/vars.md
+++ b/docs/ansible/vars.md
@@ -216,6 +216,8 @@ Stack](https://github.com/kubernetes-sigs/kubespray/blob/master/docs/dns-stack.m
   The percent is calculated by dividing this field value by 100, so the field value must be between 0 and 100, inclusive.
   When specified, the value must be less than imageGCHighThresholdPercent. Default: 80
 
+* *kubelet_max_parallel_image_pulls* - Sets the maximum number of image pulls in parallel. The value is `1` by default which means the default is serial image pulling, set it to a integer great than `1` to enable image pulling in parallel.
+
 * *kubelet_make_iptables_util_chains* - If `true`, causes the kubelet ensures a set of `iptables` rules are present on host.
 
 * *kubelet_cpu_manager_policy* -  If set to `static`, allows pods with certain resource characteristics to be granted increased CPU affinity and exclusivity on the node. And it should be set with `kube_reserved` or `system-reserved`, enable this with the following guide:[Control CPU Management Policies on the Node](https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/)
diff --git a/roles/kubernetes/node/defaults/main.yml b/roles/kubernetes/node/defaults/main.yml
index eaf70ab40..35b52a676 100644
--- a/roles/kubernetes/node/defaults/main.yml
+++ b/roles/kubernetes/node/defaults/main.yml
@@ -268,3 +268,6 @@ conntrack_modules:
 kubelet_tracing: false
 kubelet_tracing_endpoint: 0.0.0.0:4317
 kubelet_tracing_sampling_rate_per_million: 100
+
+# The maximum number of image pulls in parallel. Set it to a integer great than 1 to enable image pulling in parallel.
+kubelet_max_parallel_image_pulls: 1
diff --git a/roles/kubernetes/node/templates/kubelet-config.v1beta1.yaml.j2 b/roles/kubernetes/node/templates/kubelet-config.v1beta1.yaml.j2
index d45ede272..705b1bfca 100644
--- a/roles/kubernetes/node/templates/kubelet-config.v1beta1.yaml.j2
+++ b/roles/kubernetes/node/templates/kubelet-config.v1beta1.yaml.j2
@@ -175,3 +175,4 @@ tracing:
   endpoint: {{ kubelet_tracing_endpoint }}
   samplingRatePerMillion: {{ kubelet_tracing_sampling_rate_per_million }}
 {% endif %}
+maxParallelImagePulls: {{ kubelet_max_parallel_image_pulls }}
-- 
GitLab