Skip to content

Commit fd5c406

Browse files
authored
Merge pull request kubernetes#120933 from mengjiao-liu/contextual-logging-scheduler-remaining-part
kube-scheduler: convert the remaining part to use contextual logging
2 parents c8125c4 + 2cea512 commit fd5c406

File tree

15 files changed

+109
-92
lines changed

15 files changed

+109
-92
lines changed

hack/logcheck.conf

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,12 @@ structured k8s.io/apiserver/pkg/server/options/encryptionconfig/.*
2626
# The following packages have been migrated to contextual logging.
2727
# Packages matched here do not have to be listed above because
2828
# "contextual" implies "structured".
29-
# TODO next: contextual k8s.io/kubernetes/pkg/scheduler/.*
30-
# A few files involved in startup migrated already to contextual
31-
# We can't enable contextual logcheck until all are migrated
3229
contextual k8s.io/client-go/tools/events/.*
3330
contextual k8s.io/client-go/tools/record/.*
3431
contextual k8s.io/dynamic-resource-allocation/.*
3532
contextual k8s.io/kubernetes/cmd/kube-scheduler/.*
3633
contextual k8s.io/kubernetes/pkg/controller/.*
34+
contextual k8s.io/kubernetes/pkg/scheduler/.*
3735
contextual k8s.io/kubernetes/test/e2e/dra/.*
3836

3937
# As long as contextual logging is alpha or beta, all WithName, WithValues,

pkg/scheduler/framework/plugins/defaultpreemption/default_preemption.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ func (pl *DefaultPreemption) SelectVictimsOnNode(
146146
logger := klog.FromContext(ctx)
147147
var potentialVictims []*framework.PodInfo
148148
removePod := func(rpi *framework.PodInfo) error {
149-
if err := nodeInfo.RemovePod(rpi.Pod); err != nil {
149+
if err := nodeInfo.RemovePod(logger, rpi.Pod); err != nil {
150150
return err
151151
}
152152
status := pl.fh.RunPreFilterExtensionRemovePod(ctx, state, pod, rpi, nodeInfo)

pkg/scheduler/framework/preemption/preemption.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ func (ev *Evaluator) prepareCandidate(ctx context.Context, c Candidate, pod *v1.
353353
// Otherwise we should delete the victim.
354354
if waitingPod := fh.GetWaitingPod(victim.UID); waitingPod != nil {
355355
waitingPod.Reject(pluginName, "preempted")
356-
klog.V(2).InfoS("Preemptor pod rejected a waiting pod", "preemptor", klog.KObj(pod), "waitingPod", klog.KObj(victim), "node", c.Name())
356+
logger.V(2).Info("Preemptor pod rejected a waiting pod", "preemptor", klog.KObj(pod), "waitingPod", klog.KObj(victim), "node", c.Name())
357357
} else {
358358
if feature.DefaultFeatureGate.Enabled(features.PodDisruptionConditions) {
359359
condition := &v1.PodCondition{
@@ -377,7 +377,7 @@ func (ev *Evaluator) prepareCandidate(ctx context.Context, c Candidate, pod *v1.
377377
errCh.SendErrorWithCancel(err, cancel)
378378
return
379379
}
380-
klog.V(2).InfoS("Preemptor Pod preempted victim Pod", "preemptor", klog.KObj(pod), "victim", klog.KObj(victim), "node", c.Name())
380+
logger.V(2).Info("Preemptor Pod preempted victim Pod", "preemptor", klog.KObj(pod), "victim", klog.KObj(victim), "node", c.Name())
381381
}
382382

383383
fh.EventRecorder().Eventf(victim, pod, v1.EventTypeNormal, "Preempted", "Preempting", "Preempted by pod %v on node %v", pod.UID, c.Name())

pkg/scheduler/framework/types.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -748,12 +748,12 @@ func podWithRequiredAntiAffinity(p *v1.Pod) bool {
748748
len(affinity.PodAntiAffinity.RequiredDuringSchedulingIgnoredDuringExecution) != 0
749749
}
750750

751-
func removeFromSlice(s []*PodInfo, k string) ([]*PodInfo, bool) {
751+
func removeFromSlice(logger klog.Logger, s []*PodInfo, k string) ([]*PodInfo, bool) {
752752
var removed bool
753753
for i := range s {
754754
tmpKey, err := GetPodKey(s[i].Pod)
755755
if err != nil {
756-
klog.ErrorS(err, "Cannot get pod key", "pod", klog.KObj(s[i].Pod))
756+
logger.Error(err, "Cannot get pod key", "pod", klog.KObj(s[i].Pod))
757757
continue
758758
}
759759
if k == tmpKey {
@@ -772,20 +772,20 @@ func removeFromSlice(s []*PodInfo, k string) ([]*PodInfo, bool) {
772772
}
773773

774774
// RemovePod subtracts pod information from this NodeInfo.
775-
func (n *NodeInfo) RemovePod(pod *v1.Pod) error {
775+
func (n *NodeInfo) RemovePod(logger klog.Logger, pod *v1.Pod) error {
776776
k, err := GetPodKey(pod)
777777
if err != nil {
778778
return err
779779
}
780780
if podWithAffinity(pod) {
781-
n.PodsWithAffinity, _ = removeFromSlice(n.PodsWithAffinity, k)
781+
n.PodsWithAffinity, _ = removeFromSlice(logger, n.PodsWithAffinity, k)
782782
}
783783
if podWithRequiredAntiAffinity(pod) {
784-
n.PodsWithRequiredAntiAffinity, _ = removeFromSlice(n.PodsWithRequiredAntiAffinity, k)
784+
n.PodsWithRequiredAntiAffinity, _ = removeFromSlice(logger, n.PodsWithRequiredAntiAffinity, k)
785785
}
786786

787787
var removed bool
788-
if n.Pods, removed = removeFromSlice(n.Pods, k); removed {
788+
if n.Pods, removed = removeFromSlice(logger, n.Pods, k); removed {
789789
n.update(pod, -1)
790790
return nil
791791
}

pkg/scheduler/framework/types_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import (
3131
featuregatetesting "k8s.io/component-base/featuregate/testing"
3232
"k8s.io/kubernetes/pkg/features"
3333
st "k8s.io/kubernetes/pkg/scheduler/testing"
34+
"k8s.io/kubernetes/test/utils/ktesting"
3435
)
3536

3637
func TestNewResource(t *testing.T) {
@@ -1083,10 +1084,11 @@ func TestNodeInfoRemovePod(t *testing.T) {
10831084

10841085
for i, test := range tests {
10851086
t.Run(fmt.Sprintf("case_%d", i), func(t *testing.T) {
1087+
logger, _ := ktesting.NewTestContext(t)
10861088
ni := fakeNodeInfo(pods...)
10871089

10881090
gen := ni.Generation
1089-
err := ni.RemovePod(test.pod)
1091+
err := ni.RemovePod(logger, test.pod)
10901092
if err != nil {
10911093
if test.errExpected {
10921094
expectedErrorMsg := fmt.Errorf("no corresponding pod %s in pods of node %s", test.pod.Name, ni.Node().Name)

pkg/scheduler/internal/cache/cache.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -466,7 +466,7 @@ func (cache *cacheImpl) removePod(logger klog.Logger, pod *v1.Pod) error {
466466
if !ok {
467467
logger.Error(nil, "Node not found when trying to remove pod", "node", klog.KRef("", pod.Spec.NodeName), "podKey", key, "pod", klog.KObj(pod))
468468
} else {
469-
if err := n.info.RemovePod(pod); err != nil {
469+
if err := n.info.RemovePod(logger, pod); err != nil {
470470
return err
471471
}
472472
if len(n.info.Pods) == 0 && n.info.Node() == nil {

pkg/scheduler/internal/queue/scheduling_queue.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ type SchedulingQueue interface {
104104
SchedulingCycle() int64
105105
// Pop removes the head of the queue and returns it. It blocks if the
106106
// queue is empty and waits until a new item is added to the queue.
107-
Pop() (*framework.QueuedPodInfo, error)
107+
Pop(logger klog.Logger) (*framework.QueuedPodInfo, error)
108108
// Done must be called for pod returned by Pop. This allows the queue to
109109
// keep track of which pods are currently being processed.
110110
Done(types.UID)
@@ -859,15 +859,15 @@ func (p *PriorityQueue) flushUnschedulablePodsLeftover(logger klog.Logger) {
859859
// Pop removes the head of the active queue and returns it. It blocks if the
860860
// activeQ is empty and waits until a new item is added to the queue. It
861861
// increments scheduling cycle when a pod is popped.
862-
func (p *PriorityQueue) Pop() (*framework.QueuedPodInfo, error) {
862+
func (p *PriorityQueue) Pop(logger klog.Logger) (*framework.QueuedPodInfo, error) {
863863
p.lock.Lock()
864864
defer p.lock.Unlock()
865865
for p.activeQ.Len() == 0 {
866866
// When the queue is empty, invocation of Pop() is blocked until new item is enqueued.
867867
// When Close() is called, the p.closed is set and the condition is broadcast,
868868
// which causes this loop to continue and return from the Pop().
869869
if p.closed {
870-
klog.V(2).InfoS("Scheduling queue is closed")
870+
logger.V(2).Info("Scheduling queue is closed")
871871
return nil, nil
872872
}
873873
p.cond.Wait()

0 commit comments

Comments
 (0)