mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 11:50:44 +00:00
merge packages of scheduler/core and scheduler
Signed-off-by: Jerry Ge <jerry.ge@arm.com>
This commit is contained in:
parent
39e951a08d
commit
570365178a
@ -188,7 +188,7 @@ func (c *Configurator) create() (*Scheduler, error) {
|
||||
)
|
||||
debugger.ListenForSignal(c.StopEverything)
|
||||
|
||||
algo := core.NewGenericScheduler(
|
||||
algo := NewGenericScheduler(
|
||||
c.schedulerCache,
|
||||
c.nodeInfoSnapshot,
|
||||
c.percentageOfNodesToScore,
|
||||
@ -374,7 +374,7 @@ func dedupPluginConfigs(pc []schedulerapi.PluginConfig) ([]schedulerapi.PluginCo
|
||||
func MakeDefaultErrorFunc(client clientset.Interface, podLister corelisters.PodLister, podQueue internalqueue.SchedulingQueue, schedulerCache internalcache.Cache) func(*framework.QueuedPodInfo, error) {
|
||||
return func(podInfo *framework.QueuedPodInfo, err error) {
|
||||
pod := podInfo.Pod
|
||||
if err == core.ErrNoNodesAvailable {
|
||||
if err == ErrNoNodesAvailable {
|
||||
klog.V(2).InfoS("Unable to schedule pod; no nodes are registered to the cluster; waiting", "pod", klog.KObj(pod))
|
||||
} else if fitError, ok := err.(*framework.FitError); ok {
|
||||
// Inject UnschedulablePlugins to PodInfo, which will be used later for moving Pods between queues efficiently.
|
||||
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package core
|
||||
package scheduler
|
||||
|
||||
import (
|
||||
"context"
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package core
|
||||
package scheduler
|
||||
|
||||
import (
|
||||
"context"
|
@ -45,7 +45,6 @@ import (
|
||||
"k8s.io/kubernetes/pkg/scheduler/apis/config"
|
||||
schedulerapi "k8s.io/kubernetes/pkg/scheduler/apis/config"
|
||||
"k8s.io/kubernetes/pkg/scheduler/apis/config/scheme"
|
||||
"k8s.io/kubernetes/pkg/scheduler/core"
|
||||
"k8s.io/kubernetes/pkg/scheduler/framework"
|
||||
frameworkplugins "k8s.io/kubernetes/pkg/scheduler/framework/plugins"
|
||||
frameworkruntime "k8s.io/kubernetes/pkg/scheduler/framework/runtime"
|
||||
@ -71,7 +70,7 @@ type Scheduler struct {
|
||||
// by NodeLister and Algorithm.
|
||||
SchedulerCache internalcache.Cache
|
||||
|
||||
Algorithm core.ScheduleAlgorithm
|
||||
Algorithm ScheduleAlgorithm
|
||||
|
||||
Extenders []framework.Extender
|
||||
|
||||
@ -548,7 +547,7 @@ func (sched *Scheduler) scheduleOne(ctx context.Context) {
|
||||
// succeeds, the pod should get counted as a success the next time we try to
|
||||
// schedule it. (hopefully)
|
||||
metrics.PodUnschedulable(fwk.ProfileName(), metrics.SinceInSeconds(start))
|
||||
} else if err == core.ErrNoNodesAvailable {
|
||||
} else if err == ErrNoNodesAvailable {
|
||||
// No nodes available is counted as unschedulable rather than an error.
|
||||
metrics.PodUnschedulable(fwk.ProfileName(), metrics.SinceInSeconds(start))
|
||||
} else {
|
||||
|
@ -49,7 +49,6 @@ import (
|
||||
"k8s.io/client-go/tools/events"
|
||||
"k8s.io/kubernetes/pkg/controller/volume/scheduling"
|
||||
schedulerapi "k8s.io/kubernetes/pkg/scheduler/apis/config"
|
||||
"k8s.io/kubernetes/pkg/scheduler/core"
|
||||
"k8s.io/kubernetes/pkg/scheduler/framework"
|
||||
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/defaultbinder"
|
||||
"k8s.io/kubernetes/pkg/scheduler/framework/plugins/feature"
|
||||
@ -110,11 +109,11 @@ func podWithResources(id, desiredHost string, limits v1.ResourceList, requests v
|
||||
}
|
||||
|
||||
type mockScheduler struct {
|
||||
result core.ScheduleResult
|
||||
result ScheduleResult
|
||||
err error
|
||||
}
|
||||
|
||||
func (es mockScheduler) Schedule(ctx context.Context, extenders []framework.Extender, fwk framework.Framework, state *framework.CycleState, pod *v1.Pod) (core.ScheduleResult, error) {
|
||||
func (es mockScheduler) Schedule(ctx context.Context, extenders []framework.Extender, fwk framework.Framework, state *framework.CycleState, pod *v1.Pod) (ScheduleResult, error) {
|
||||
return es.result, es.err
|
||||
}
|
||||
|
||||
@ -311,7 +310,7 @@ func TestSchedulerScheduleOne(t *testing.T) {
|
||||
name string
|
||||
injectBindError error
|
||||
sendPod *v1.Pod
|
||||
algo core.ScheduleAlgorithm
|
||||
algo ScheduleAlgorithm
|
||||
registerPluginFuncs []st.RegisterPluginFunc
|
||||
expectErrorPod *v1.Pod
|
||||
expectForgetPod *v1.Pod
|
||||
@ -323,7 +322,7 @@ func TestSchedulerScheduleOne(t *testing.T) {
|
||||
{
|
||||
name: "error reserve pod",
|
||||
sendPod: podWithID("foo", ""),
|
||||
algo: mockScheduler{core.ScheduleResult{SuggestedHost: testNode.Name, EvaluatedNodes: 1, FeasibleNodes: 1}, nil},
|
||||
algo: mockScheduler{ScheduleResult{SuggestedHost: testNode.Name, EvaluatedNodes: 1, FeasibleNodes: 1}, nil},
|
||||
registerPluginFuncs: []st.RegisterPluginFunc{
|
||||
st.RegisterReservePlugin("FakeReserve", st.NewFakeReservePlugin(framework.NewStatus(framework.Error, "reserve error"))),
|
||||
},
|
||||
@ -336,7 +335,7 @@ func TestSchedulerScheduleOne(t *testing.T) {
|
||||
{
|
||||
name: "error permit pod",
|
||||
sendPod: podWithID("foo", ""),
|
||||
algo: mockScheduler{core.ScheduleResult{SuggestedHost: testNode.Name, EvaluatedNodes: 1, FeasibleNodes: 1}, nil},
|
||||
algo: mockScheduler{ScheduleResult{SuggestedHost: testNode.Name, EvaluatedNodes: 1, FeasibleNodes: 1}, nil},
|
||||
registerPluginFuncs: []st.RegisterPluginFunc{
|
||||
st.RegisterPermitPlugin("FakePermit", st.NewFakePermitPlugin(framework.NewStatus(framework.Error, "permit error"), time.Minute)),
|
||||
},
|
||||
@ -349,7 +348,7 @@ func TestSchedulerScheduleOne(t *testing.T) {
|
||||
{
|
||||
name: "error prebind pod",
|
||||
sendPod: podWithID("foo", ""),
|
||||
algo: mockScheduler{core.ScheduleResult{SuggestedHost: testNode.Name, EvaluatedNodes: 1, FeasibleNodes: 1}, nil},
|
||||
algo: mockScheduler{ScheduleResult{SuggestedHost: testNode.Name, EvaluatedNodes: 1, FeasibleNodes: 1}, nil},
|
||||
registerPluginFuncs: []st.RegisterPluginFunc{
|
||||
st.RegisterPreBindPlugin("FakePreBind", st.NewFakePreBindPlugin(framework.AsStatus(preBindErr))),
|
||||
},
|
||||
@ -362,7 +361,7 @@ func TestSchedulerScheduleOne(t *testing.T) {
|
||||
{
|
||||
name: "bind assumed pod scheduled",
|
||||
sendPod: podWithID("foo", ""),
|
||||
algo: mockScheduler{core.ScheduleResult{SuggestedHost: testNode.Name, EvaluatedNodes: 1, FeasibleNodes: 1}, nil},
|
||||
algo: mockScheduler{ScheduleResult{SuggestedHost: testNode.Name, EvaluatedNodes: 1, FeasibleNodes: 1}, nil},
|
||||
expectBind: &v1.Binding{ObjectMeta: metav1.ObjectMeta{Name: "foo", UID: types.UID("foo")}, Target: v1.ObjectReference{Kind: "Node", Name: testNode.Name}},
|
||||
expectAssumedPod: podWithID("foo", testNode.Name),
|
||||
eventReason: "Scheduled",
|
||||
@ -370,7 +369,7 @@ func TestSchedulerScheduleOne(t *testing.T) {
|
||||
{
|
||||
name: "error pod failed scheduling",
|
||||
sendPod: podWithID("foo", ""),
|
||||
algo: mockScheduler{core.ScheduleResult{SuggestedHost: testNode.Name, EvaluatedNodes: 1, FeasibleNodes: 1}, errS},
|
||||
algo: mockScheduler{ScheduleResult{SuggestedHost: testNode.Name, EvaluatedNodes: 1, FeasibleNodes: 1}, errS},
|
||||
expectError: errS,
|
||||
expectErrorPod: podWithID("foo", ""),
|
||||
eventReason: "FailedScheduling",
|
||||
@ -378,7 +377,7 @@ func TestSchedulerScheduleOne(t *testing.T) {
|
||||
{
|
||||
name: "error bind forget pod failed scheduling",
|
||||
sendPod: podWithID("foo", ""),
|
||||
algo: mockScheduler{core.ScheduleResult{SuggestedHost: testNode.Name, EvaluatedNodes: 1, FeasibleNodes: 1}, nil},
|
||||
algo: mockScheduler{ScheduleResult{SuggestedHost: testNode.Name, EvaluatedNodes: 1, FeasibleNodes: 1}, nil},
|
||||
expectBind: &v1.Binding{ObjectMeta: metav1.ObjectMeta{Name: "foo", UID: types.UID("foo")}, Target: v1.ObjectReference{Kind: "Node", Name: testNode.Name}},
|
||||
expectAssumedPod: podWithID("foo", testNode.Name),
|
||||
injectBindError: errB,
|
||||
@ -390,7 +389,7 @@ func TestSchedulerScheduleOne(t *testing.T) {
|
||||
{
|
||||
name: "deleting pod",
|
||||
sendPod: deletingPod("foo"),
|
||||
algo: mockScheduler{core.ScheduleResult{}, nil},
|
||||
algo: mockScheduler{ScheduleResult{}, nil},
|
||||
eventReason: "FailedScheduling",
|
||||
},
|
||||
}
|
||||
@ -928,7 +927,7 @@ func setupTestScheduler(queuedPodStore *clientcache.FIFO, scache internalcache.C
|
||||
frameworkruntime.WithPodNominator(internalqueue.NewPodNominator(informerFactory.Core().V1().Pods().Lister())),
|
||||
)
|
||||
|
||||
algo := core.NewGenericScheduler(
|
||||
algo := NewGenericScheduler(
|
||||
scache,
|
||||
internalcache.NewEmptySnapshot(),
|
||||
schedulerapi.DefaultPercentageOfNodesToScore,
|
||||
@ -1274,7 +1273,7 @@ func TestSchedulerBinding(t *testing.T) {
|
||||
stop := make(chan struct{})
|
||||
defer close(stop)
|
||||
scache := internalcache.New(100*time.Millisecond, stop)
|
||||
algo := core.NewGenericScheduler(
|
||||
algo := NewGenericScheduler(
|
||||
scache,
|
||||
nil,
|
||||
0,
|
||||
|
Loading…
Reference in New Issue
Block a user