Add ctx logging involved in KS startup (#115588)
* ctx logging involved in startup as per https://github.com/kubernetes/kubernetes/pull/111155#pullrequestreview-1283257121 * use klog.Background().Error in flag handling * revert scheduler_perf changes * refence issue in code comment * enable ctx logcheck for cmd/kube-scheduler
This commit is contained in:
committed by
GitHub
parent
8d25cc3193
commit
6b34fafdaf
@@ -83,24 +83,24 @@ func applyFeatureGates(config *v1.Plugins) {
|
||||
}
|
||||
|
||||
// mergePlugins merges the custom set into the given default one, handling disabled sets.
|
||||
func mergePlugins(defaultPlugins, customPlugins *v1.Plugins) *v1.Plugins {
|
||||
func mergePlugins(logger klog.Logger, defaultPlugins, customPlugins *v1.Plugins) *v1.Plugins {
|
||||
if customPlugins == nil {
|
||||
return defaultPlugins
|
||||
}
|
||||
|
||||
defaultPlugins.MultiPoint = mergePluginSet(defaultPlugins.MultiPoint, customPlugins.MultiPoint)
|
||||
defaultPlugins.PreEnqueue = mergePluginSet(defaultPlugins.PreEnqueue, customPlugins.PreEnqueue)
|
||||
defaultPlugins.QueueSort = mergePluginSet(defaultPlugins.QueueSort, customPlugins.QueueSort)
|
||||
defaultPlugins.PreFilter = mergePluginSet(defaultPlugins.PreFilter, customPlugins.PreFilter)
|
||||
defaultPlugins.Filter = mergePluginSet(defaultPlugins.Filter, customPlugins.Filter)
|
||||
defaultPlugins.PostFilter = mergePluginSet(defaultPlugins.PostFilter, customPlugins.PostFilter)
|
||||
defaultPlugins.PreScore = mergePluginSet(defaultPlugins.PreScore, customPlugins.PreScore)
|
||||
defaultPlugins.Score = mergePluginSet(defaultPlugins.Score, customPlugins.Score)
|
||||
defaultPlugins.Reserve = mergePluginSet(defaultPlugins.Reserve, customPlugins.Reserve)
|
||||
defaultPlugins.Permit = mergePluginSet(defaultPlugins.Permit, customPlugins.Permit)
|
||||
defaultPlugins.PreBind = mergePluginSet(defaultPlugins.PreBind, customPlugins.PreBind)
|
||||
defaultPlugins.Bind = mergePluginSet(defaultPlugins.Bind, customPlugins.Bind)
|
||||
defaultPlugins.PostBind = mergePluginSet(defaultPlugins.PostBind, customPlugins.PostBind)
|
||||
defaultPlugins.MultiPoint = mergePluginSet(logger, defaultPlugins.MultiPoint, customPlugins.MultiPoint)
|
||||
defaultPlugins.PreEnqueue = mergePluginSet(logger, defaultPlugins.PreEnqueue, customPlugins.PreEnqueue)
|
||||
defaultPlugins.QueueSort = mergePluginSet(logger, defaultPlugins.QueueSort, customPlugins.QueueSort)
|
||||
defaultPlugins.PreFilter = mergePluginSet(logger, defaultPlugins.PreFilter, customPlugins.PreFilter)
|
||||
defaultPlugins.Filter = mergePluginSet(logger, defaultPlugins.Filter, customPlugins.Filter)
|
||||
defaultPlugins.PostFilter = mergePluginSet(logger, defaultPlugins.PostFilter, customPlugins.PostFilter)
|
||||
defaultPlugins.PreScore = mergePluginSet(logger, defaultPlugins.PreScore, customPlugins.PreScore)
|
||||
defaultPlugins.Score = mergePluginSet(logger, defaultPlugins.Score, customPlugins.Score)
|
||||
defaultPlugins.Reserve = mergePluginSet(logger, defaultPlugins.Reserve, customPlugins.Reserve)
|
||||
defaultPlugins.Permit = mergePluginSet(logger, defaultPlugins.Permit, customPlugins.Permit)
|
||||
defaultPlugins.PreBind = mergePluginSet(logger, defaultPlugins.PreBind, customPlugins.PreBind)
|
||||
defaultPlugins.Bind = mergePluginSet(logger, defaultPlugins.Bind, customPlugins.Bind)
|
||||
defaultPlugins.PostBind = mergePluginSet(logger, defaultPlugins.PostBind, customPlugins.PostBind)
|
||||
return defaultPlugins
|
||||
}
|
||||
|
||||
@@ -109,7 +109,7 @@ type pluginIndex struct {
|
||||
plugin v1.Plugin
|
||||
}
|
||||
|
||||
func mergePluginSet(defaultPluginSet, customPluginSet v1.PluginSet) v1.PluginSet {
|
||||
func mergePluginSet(logger klog.Logger, defaultPluginSet, customPluginSet v1.PluginSet) v1.PluginSet {
|
||||
disabledPlugins := sets.NewString()
|
||||
enabledCustomPlugins := make(map[string]pluginIndex)
|
||||
// replacedPluginIndex is a set of index of plugins, which have replaced the default plugins.
|
||||
@@ -141,7 +141,7 @@ func mergePluginSet(defaultPluginSet, customPluginSet v1.PluginSet) v1.PluginSet
|
||||
}
|
||||
// The default plugin is explicitly re-configured, update the default plugin accordingly.
|
||||
if customPlugin, ok := enabledCustomPlugins[defaultEnabledPlugin.Name]; ok {
|
||||
klog.InfoS("Default plugin is explicitly re-configured; overriding", "plugin", defaultEnabledPlugin.Name)
|
||||
logger.Info("Default plugin is explicitly re-configured; overriding", "plugin", defaultEnabledPlugin.Name)
|
||||
// Update the default plugin in place to preserve order.
|
||||
defaultEnabledPlugin = customPlugin.plugin
|
||||
replacedPluginIndex.Insert(customPlugin.index)
|
||||
|
||||
@@ -23,6 +23,7 @@ import (
|
||||
"k8s.io/apiserver/pkg/util/feature"
|
||||
"k8s.io/component-base/featuregate"
|
||||
featuregatetesting "k8s.io/component-base/featuregate/testing"
|
||||
"k8s.io/klog/v2/ktesting"
|
||||
v1 "k8s.io/kube-scheduler/config/v1"
|
||||
"k8s.io/kubernetes/pkg/features"
|
||||
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/names"
|
||||
@@ -581,7 +582,8 @@ func TestMergePlugins(t *testing.T) {
|
||||
|
||||
for _, test := range tests {
|
||||
t.Run(test.name, func(t *testing.T) {
|
||||
gotPlugins := mergePlugins(test.defaultPlugins, test.customPlugins)
|
||||
logger, _ := ktesting.NewTestContext(t)
|
||||
gotPlugins := mergePlugins(logger, test.defaultPlugins, test.customPlugins)
|
||||
if d := cmp.Diff(test.expectedPlugins, gotPlugins); d != "" {
|
||||
t.Fatalf("plugins mismatch (-want +got):\n%s", d)
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@ import (
|
||||
"k8s.io/apimachinery/pkg/util/sets"
|
||||
"k8s.io/apiserver/pkg/util/feature"
|
||||
componentbaseconfigv1alpha1 "k8s.io/component-base/config/v1alpha1"
|
||||
"k8s.io/klog/v2"
|
||||
configv1 "k8s.io/kube-scheduler/config/v1"
|
||||
"k8s.io/kubernetes/pkg/features"
|
||||
"k8s.io/kubernetes/pkg/scheduler/apis/config"
|
||||
@@ -65,9 +66,9 @@ func pluginsNames(p *configv1.Plugins) []string {
|
||||
return n.List()
|
||||
}
|
||||
|
||||
func setDefaults_KubeSchedulerProfile(prof *configv1.KubeSchedulerProfile) {
|
||||
func setDefaults_KubeSchedulerProfile(logger klog.Logger, prof *configv1.KubeSchedulerProfile) {
|
||||
// Set default plugins.
|
||||
prof.Plugins = mergePlugins(getDefaultPlugins(), prof.Plugins)
|
||||
prof.Plugins = mergePlugins(logger, getDefaultPlugins(), prof.Plugins)
|
||||
// Set default plugin configs.
|
||||
scheme := GetPluginArgConversionScheme()
|
||||
existingConfigs := sets.NewString()
|
||||
@@ -102,6 +103,7 @@ func setDefaults_KubeSchedulerProfile(prof *configv1.KubeSchedulerProfile) {
|
||||
|
||||
// SetDefaults_KubeSchedulerConfiguration sets additional defaults
|
||||
func SetDefaults_KubeSchedulerConfiguration(obj *configv1.KubeSchedulerConfiguration) {
|
||||
logger := klog.TODO() // called by generated code that doesn't pass a logger. See #115724
|
||||
if obj.Parallelism == nil {
|
||||
obj.Parallelism = pointer.Int32(16)
|
||||
}
|
||||
@@ -118,7 +120,7 @@ func SetDefaults_KubeSchedulerConfiguration(obj *configv1.KubeSchedulerConfigura
|
||||
// Add the default set of plugins and apply the configuration.
|
||||
for i := range obj.Profiles {
|
||||
prof := &obj.Profiles[i]
|
||||
setDefaults_KubeSchedulerProfile(prof)
|
||||
setDefaults_KubeSchedulerProfile(logger, prof)
|
||||
}
|
||||
|
||||
if obj.PercentageOfNodesToScore == nil {
|
||||
|
||||
@@ -59,7 +59,7 @@ func GetPodStartTime(pod *v1.Pod) *metav1.Time {
|
||||
func GetEarliestPodStartTime(victims *extenderv1.Victims) *metav1.Time {
|
||||
if len(victims.Pods) == 0 {
|
||||
// should not reach here.
|
||||
klog.ErrorS(fmt.Errorf("victims.Pods is empty. Should not reach here"), "")
|
||||
klog.Background().Error(nil, "victims.Pods is empty. Should not reach here")
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user