mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-24 20:24:09 +00:00
optimize DefaultTolerationSeconds admission controller
This commit is contained in:
parent
9d33926d5c
commit
82225fd952
@ -25,7 +25,6 @@ go_library(
|
|||||||
importpath = "k8s.io/kubernetes/plugin/pkg/admission/defaulttolerationseconds",
|
importpath = "k8s.io/kubernetes/plugin/pkg/admission/defaulttolerationseconds",
|
||||||
deps = [
|
deps = [
|
||||||
"//pkg/apis/core:go_default_library",
|
"//pkg/apis/core:go_default_library",
|
||||||
"//pkg/apis/core/helper:go_default_library",
|
|
||||||
"//pkg/scheduler/algorithm:go_default_library",
|
"//pkg/scheduler/algorithm:go_default_library",
|
||||||
"//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library",
|
"//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library",
|
||||||
"//vendor/k8s.io/apiserver/pkg/admission:go_default_library",
|
"//vendor/k8s.io/apiserver/pkg/admission:go_default_library",
|
||||||
|
@ -24,7 +24,6 @@ import (
|
|||||||
"k8s.io/apimachinery/pkg/api/errors"
|
"k8s.io/apimachinery/pkg/api/errors"
|
||||||
"k8s.io/apiserver/pkg/admission"
|
"k8s.io/apiserver/pkg/admission"
|
||||||
api "k8s.io/kubernetes/pkg/apis/core"
|
api "k8s.io/kubernetes/pkg/apis/core"
|
||||||
"k8s.io/kubernetes/pkg/apis/core/helper"
|
|
||||||
"k8s.io/kubernetes/pkg/scheduler/algorithm"
|
"k8s.io/kubernetes/pkg/scheduler/algorithm"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -39,6 +38,20 @@ var (
|
|||||||
defaultUnreachableTolerationSeconds = flag.Int64("default-unreachable-toleration-seconds", 300,
|
defaultUnreachableTolerationSeconds = flag.Int64("default-unreachable-toleration-seconds", 300,
|
||||||
"Indicates the tolerationSeconds of the toleration for unreachable:NoExecute"+
|
"Indicates the tolerationSeconds of the toleration for unreachable:NoExecute"+
|
||||||
" that is added by default to every pod that does not already have such a toleration.")
|
" that is added by default to every pod that does not already have such a toleration.")
|
||||||
|
|
||||||
|
notReadyToleration = api.Toleration{
|
||||||
|
Key: algorithm.TaintNodeNotReady,
|
||||||
|
Operator: api.TolerationOpExists,
|
||||||
|
Effect: api.TaintEffectNoExecute,
|
||||||
|
TolerationSeconds: defaultNotReadyTolerationSeconds,
|
||||||
|
}
|
||||||
|
|
||||||
|
unreachableToleration = api.Toleration{
|
||||||
|
Key: algorithm.TaintNodeUnreachable,
|
||||||
|
Operator: api.TolerationOpExists,
|
||||||
|
Effect: api.TaintEffectNoExecute,
|
||||||
|
TolerationSeconds: defaultUnreachableTolerationSeconds,
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
// Register registers a plugin
|
// Register registers a plugin
|
||||||
@ -99,27 +112,13 @@ func (p *Plugin) Admit(attributes admission.Attributes) (err error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// no change is required, return immediately
|
|
||||||
if toleratesNodeNotReady && toleratesNodeUnreachable {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
if !toleratesNodeNotReady {
|
if !toleratesNodeNotReady {
|
||||||
helper.AddOrUpdateTolerationInPod(pod, &api.Toleration{
|
pod.Spec.Tolerations = append(pod.Spec.Tolerations, notReadyToleration)
|
||||||
Key: algorithm.TaintNodeNotReady,
|
|
||||||
Operator: api.TolerationOpExists,
|
|
||||||
Effect: api.TaintEffectNoExecute,
|
|
||||||
TolerationSeconds: defaultNotReadyTolerationSeconds,
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if !toleratesNodeUnreachable {
|
if !toleratesNodeUnreachable {
|
||||||
helper.AddOrUpdateTolerationInPod(pod, &api.Toleration{
|
pod.Spec.Tolerations = append(pod.Spec.Tolerations, unreachableToleration)
|
||||||
Key: algorithm.TaintNodeUnreachable,
|
|
||||||
Operator: api.TolerationOpExists,
|
|
||||||
Effect: api.TaintEffectNoExecute,
|
|
||||||
TolerationSeconds: defaultUnreachableTolerationSeconds,
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user