From ff74405bd396012b9da0ba122ad2ecd7d1a5ae44 Mon Sep 17 00:00:00 2001 From: carlory Date: Tue, 19 Dec 2023 15:53:52 +0800 Subject: [PATCH] kubelet: remove --register-schedulable flag --- cluster/gce/util.sh | 1 - cmd/kubelet/app/options/options.go | 7 ------- cmd/kubelet/app/server.go | 1 - pkg/kubelet/kubelet.go | 4 ---- pkg/kubelet/kubelet_node_status.go | 3 --- pkg/kubelet/kubelet_node_status_test.go | 14 +++++++------- pkg/kubelet/kubelet_test.go | 1 - pkg/kubemark/hollow_kubelet.go | 1 - 8 files changed, 7 insertions(+), 25 deletions(-) diff --git a/cluster/gce/util.sh b/cluster/gce/util.sh index 83aaae7e4e4..8ea4923df22 100755 --- a/cluster/gce/util.sh +++ b/cluster/gce/util.sh @@ -794,7 +794,6 @@ function construct-linux-kubelet-flags { #flags+=" --kubeconfig=/var/lib/kubelet/kubeconfig" flags+=" --register-with-taints=node-role.kubernetes.io/control-plane=:NoSchedule" flags+=" --kubeconfig=/var/lib/kubelet/bootstrap-kubeconfig" - flags+=" --register-schedulable=false" fi if [[ "${MASTER_OS_DISTRIBUTION}" == "ubuntu" ]]; then # Configure the file path for host dns configuration diff --git a/cmd/kubelet/app/options/options.go b/cmd/kubelet/app/options/options.go index a6efdadb7a9..52074c22a43 100644 --- a/cmd/kubelet/app/options/options.go +++ b/cmd/kubelet/app/options/options.go @@ -127,10 +127,6 @@ type KubeletFlags struct { // maxContainerCount is the maximum number of old instances of containers // to retain globally. Each container takes up some disk space. MaxContainerCount int32 - // registerSchedulable tells the kubelet to register the node as - // schedulable. Won't have any effect if register-node is false. - // DEPRECATED: use registerWithTaints instead - RegisterSchedulable bool // SeccompDefault enables the use of `RuntimeDefault` as the default seccomp profile for all workloads on the node. SeccompDefault bool } @@ -144,7 +140,6 @@ func NewKubeletFlags() *KubeletFlags { MaxContainerCount: -1, MaxPerPodContainerCount: 1, MinimumGCAge: metav1.Duration{Duration: 0}, - RegisterSchedulable: true, NodeLabels: make(map[string]string), } } @@ -316,8 +311,6 @@ func (f *KubeletFlags) AddFlags(mainfs *pflag.FlagSet) { fs.MarkDeprecated("maximum-dead-containers-per-container", "Use --eviction-hard or --eviction-soft instead. Will be removed in a future version.") fs.Int32Var(&f.MaxContainerCount, "maximum-dead-containers", f.MaxContainerCount, "Maximum number of old instances of containers to retain globally. Each container takes up some disk space. To disable, set to a negative number.") fs.MarkDeprecated("maximum-dead-containers", "Use --eviction-hard or --eviction-soft instead. Will be removed in a future version.") - fs.BoolVar(&f.RegisterSchedulable, "register-schedulable", f.RegisterSchedulable, "Register the node as schedulable. Won't have any effect if register-node is false.") - fs.MarkDeprecated("register-schedulable", "will be removed in a future version") fs.StringVar(&f.ExperimentalMounterPath, "experimental-mounter-path", f.ExperimentalMounterPath, "[Experimental] Path of mounter binary. Leave empty to use the default mount.") fs.MarkDeprecated("experimental-mounter-path", "will be removed in 1.25 or later. in favor of using CSI.") fs.StringVar(&f.CloudConfigFile, "cloud-config", f.CloudConfigFile, "The path to the cloud provider configuration file. Empty string for no configuration file.") diff --git a/cmd/kubelet/app/server.go b/cmd/kubelet/app/server.go index 9cff6743de5..af6f7fe2a5b 100644 --- a/cmd/kubelet/app/server.go +++ b/cmd/kubelet/app/server.go @@ -1345,7 +1345,6 @@ func createAndInitKubelet(kubeServer *options.KubeletServer, kubeServer.MinimumGCAge, kubeServer.MaxPerPodContainerCount, kubeServer.MaxContainerCount, - kubeServer.RegisterSchedulable, kubeServer.NodeLabels, kubeServer.NodeStatusMaxImages, kubeServer.KubeletFlags.SeccompDefault || kubeServer.KubeletConfiguration.SeccompDefault) diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index 01a723987f8..9412397ce49 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -368,7 +368,6 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, minimumGCAge metav1.Duration, maxPerPodContainerCount int32, maxContainerCount int32, - registerSchedulable bool, nodeLabels map[string]string, nodeStatusMaxImages int32, seccompDefault bool, @@ -540,7 +539,6 @@ func NewMainKubelet(kubeCfg *kubeletconfiginternal.KubeletConfiguration, sourcesReady: config.NewSourcesReady(kubeDeps.PodConfig.SeenAllSources), registerNode: registerNode, registerWithTaints: registerWithTaints, - registerSchedulable: registerSchedulable, dnsConfigurer: dns.NewConfigurer(kubeDeps.Recorder, nodeRef, nodeIPs, clusterDNS, kubeCfg.ClusterDomain, kubeCfg.ResolverConfig), serviceLister: serviceLister, serviceHasSynced: serviceHasSynced, @@ -1093,8 +1091,6 @@ type Kubelet struct { registerNode bool // List of taints to add to a node object when the kubelet registers itself. registerWithTaints []v1.Taint - // Set to true to have the node register itself as schedulable. - registerSchedulable bool // for internal book keeping; access only from within registerWithApiserver registrationCompleted bool diff --git a/pkg/kubelet/kubelet_node_status.go b/pkg/kubelet/kubelet_node_status.go index ebe36617f05..09ed928d7fc 100644 --- a/pkg/kubelet/kubelet_node_status.go +++ b/pkg/kubelet/kubelet_node_status.go @@ -311,9 +311,6 @@ func (kl *Kubelet) initialNode(ctx context.Context) (*v1.Node, error) { kubeletapis.LabelArch: goruntime.GOARCH, }, }, - Spec: v1.NodeSpec{ - Unschedulable: !kl.registerSchedulable, - }, } osLabels, err := getOSSpecificLabels() if err != nil { diff --git a/pkg/kubelet/kubelet_node_status_test.go b/pkg/kubelet/kubelet_node_status_test.go index 64eca034457..278a17b01fc 100644 --- a/pkg/kubelet/kubelet_node_status_test.go +++ b/pkg/kubelet/kubelet_node_status_test.go @@ -2758,8 +2758,12 @@ func TestRegisterWithApiServerWithTaint(t *testing.T) { addNotImplatedReaction(kubeClient) - // Make node to be unschedulable. - kubelet.registerSchedulable = false + unschedulableTaint := v1.Taint{ + Key: v1.TaintNodeUnschedulable, + Effect: v1.TaintEffectNoSchedule, + } + // Mark node with unschedulable taints + kubelet.registerWithTaints = []v1.Taint{unschedulableTaint} // Reset kubelet status for each test. kubelet.registrationCompleted = false @@ -2769,13 +2773,9 @@ func TestRegisterWithApiServerWithTaint(t *testing.T) { // Check the unschedulable taint. got := gotNode.(*v1.Node) - unschedulableTaint := &v1.Taint{ - Key: v1.TaintNodeUnschedulable, - Effect: v1.TaintEffectNoSchedule, - } require.True(t, - taintutil.TaintExists(got.Spec.Taints, unschedulableTaint), + taintutil.TaintExists(got.Spec.Taints, &unschedulableTaint), "test unschedulable taint for TaintNodesByCondition") } diff --git a/pkg/kubelet/kubelet_test.go b/pkg/kubelet/kubelet_test.go index 27c47ed9015..71ff4053374 100644 --- a/pkg/kubelet/kubelet_test.go +++ b/pkg/kubelet/kubelet_test.go @@ -3111,7 +3111,6 @@ func TestNewMainKubeletStandAlone(t *testing.T) { metav1.Duration{Duration: time.Minute}, 1024, 110, - true, map[string]string{}, 1024, false, diff --git a/pkg/kubemark/hollow_kubelet.go b/pkg/kubemark/hollow_kubelet.go index 71808848a05..1868bd67d80 100644 --- a/pkg/kubemark/hollow_kubelet.go +++ b/pkg/kubemark/hollow_kubelet.go @@ -160,7 +160,6 @@ func GetHollowKubeletConfig(opt *HollowKubeletOptions) (*options.KubeletFlags, * f.MaxContainerCount = 100 f.MaxPerPodContainerCount = 2 f.NodeLabels = opt.NodeLabels - f.RegisterSchedulable = true // Config struct c, err := options.NewKubeletConfiguration()