diff --git a/cmd/kubeadm/app/phases/kubelet/flags.go b/cmd/kubeadm/app/phases/kubelet/flags.go index 6288d498ba0..9f714c86c28 100644 --- a/cmd/kubeadm/app/phases/kubelet/flags.go +++ b/cmd/kubeadm/app/phases/kubelet/flags.go @@ -79,14 +79,17 @@ func buildKubeletArgMapCommon(opts kubeletFlagsOpts) map[string]string { if opts.nodeRegOpts.CRISocket == constants.DefaultDockerCRISocket { // These flags should only be set when running docker kubeletFlags["network-plugin"] = "cni" - if opts.pauseImage != "" { - kubeletFlags["pod-infra-container-image"] = opts.pauseImage - } } else { kubeletFlags["container-runtime"] = "remote" kubeletFlags["container-runtime-endpoint"] = opts.nodeRegOpts.CRISocket } + // This flag passes the pod infra container image (e.g. "pause" image) to the kubelet + // and prevents its garbage collection + if opts.pauseImage != "" { + kubeletFlags["pod-infra-container-image"] = opts.pauseImage + } + if opts.registerTaintsUsingFlags && opts.nodeRegOpts.Taints != nil && len(opts.nodeRegOpts.Taints) > 0 { taintStrs := []string{} for _, taint := range opts.nodeRegOpts.Taints {