Skip to content

Commit 055c5fe

Browse files
committed
Set containerd LimitNOFILE at runtime to ensure ulimit consistency
1 parent f341d89 commit 055c5fe

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

pkg/minikube/cruntime/containerd.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,14 @@ func generateContainerdConfig(cr CommandRunner, imageRepository string, kv semve
224224
return nil
225225
}
226226

227+
// setContainerdUlimit sets LimitNOFILE for containerd to match docker's default ulimit
228+
func setContainerdUlimit(cr CommandRunner) error {
229+
// Create systemd drop-in override to set LimitNOFILE=1048576
230+
cmd := exec.Command("sh", "-c", `sudo mkdir -p /etc/systemd/system/containerd.service.d && printf '[Service]\nLimitNOFILE=1048576\n' | sudo tee /etc/systemd/system/containerd.service.d/override.conf > /dev/null && sudo systemctl daemon-reload`)
231+
_, err := cr.RunCmd(cmd)
232+
return err
233+
}
234+
227235
// Enable idempotently enables containerd on a host
228236
// It is also called by docker.Enable() - if bound to containerd, to enforce proper containerd configuration completed by service restart.
229237
func (r *Containerd) Enable(disOthers bool, cgroupDriver string, inUserNamespace bool) error {
@@ -249,6 +257,13 @@ func (r *Containerd) Enable(disOthers bool, cgroupDriver string, inUserNamespace
249257
if err := generateContainerdConfig(r.Runner, r.ImageRepository, r.KubernetesVersion, cgroupDriver, r.InsecureRegistry, inUserNamespace); err != nil {
250258
return err
251259
}
260+
261+
// Set LimitNOFILE for containerd to match docker's default ulimit (1048576)
262+
// This ensures consistent file descriptor limits across container runtimes
263+
if err := setContainerdUlimit(r.Runner); err != nil {
264+
klog.Warningf("failed to set containerd ulimit: %v", err)
265+
}
266+
252267
if err := enableIPForwarding(r.Runner); err != nil {
253268
return err
254269
}

0 commit comments

Comments
 (0)