Review comments

Signed-off-by: Aldo Culquicondor <acondor@google.com>
This commit is contained in:
Aldo Culquicondor
2020-07-06 17:15:43 -04:00
parent 72090c98af
commit 34c3537a72
+27 -25
View File
@@ -6,8 +6,8 @@ weight: 20
{{< feature-state for_k8s_version="v1.19" state="beta" >}} {{< feature-state for_k8s_version="v1.19" state="beta" >}}
The `KubeSchedulerConfiguration` is a configuration API for `kube-scheduler` You can customize the behavior of the `kube-scheduler` by writing a configuration
that can be provided as a file via `--config` command line flag. file and passing its path as a command line argument.
<!-- overview --> <!-- overview -->
@@ -24,22 +24,6 @@ clientConnection:
kubeconfig: /etc/srv/kubernetes/kube-scheduler/kubeconfig kubeconfig: /etc/srv/kubernetes/kube-scheduler/kubeconfig
``` ```
## Upgrading from `v1alpha2` to `v1beta1` {#beta-changes}
When migrating from `kubescheduler.config.k8s.io/v1alpha2` to `kubescheduler.config.k8s.io/v1beta1`,
beware of the following changes, if applicable:
- `.bindTimeoutSeconds` was moved as part of plugin args for `VolumeBinding`,
which can be configured separately per [profile](#profiles).
- `.extenders` are updated to satisfy API standards. In particular:
- `.extenders` decoding is case sensitive. All fields are affected.
- `.extenders[*].httpTimeout` is of type `metav1.Duration`.
- `.extenders[*].enableHttps` is renamed to `.extenders[*].enableHTTPS`.
- `RequestedToCapacityRatio` args decoding is case sensitive. All fields are affected.
- `DefaultPodTopologySpread` [plugin](#scheduling-plugins) is renamed to `SelectorSpread`.
- `Unreserve` extension point is removed from Profile definition. All `Reserve`
plugins implement an `Unreserve` call.
## Profiles ## Profiles
A scheduling Profile allows you to configure the different stages of scheduling A scheduling Profile allows you to configure the different stages of scheduling
@@ -48,7 +32,7 @@ Each stage is exposed in a [extension point](#extension-points).
[Plugins](#scheduling-plugins) provide scheduling behaviors by implementing one [Plugins](#scheduling-plugins) provide scheduling behaviors by implementing one
or more of these extension points. or more of these extension points.
A single instance of `kube-scheduler` can be configured to run You can configure a single instance of `kube-scheduler` to run
[multiple profiles](#multiple-profiles) [multiple profiles](#multiple-profiles)
### Extension points ### Extension points
@@ -60,10 +44,12 @@ extension points:
sort pending Pods in the scheduling queue. Exactly one queue sort plugin sort pending Pods in the scheduling queue. Exactly one queue sort plugin
may be enabled at a time. may be enabled at a time.
1. `PreFilter`: These plugins are used to pre-process or check information 1. `PreFilter`: These plugins are used to pre-process or check information
about a Pod or the cluster before filtering. about a Pod or the cluster before filtering. They can mark a pod as
unschedulable.
1. `Filter`: These plugins are the equivalent of Predicates in a scheduling 1. `Filter`: These plugins are the equivalent of Predicates in a scheduling
Policy and are used to filter out nodes that can not run the Pod. Filters Policy and are used to filter out nodes that can not run the Pod. Filters
are called in the configured order. are called in the configured order. A pod is marked as unschedulable if no
nodes pass all the filters.
1. `PreScore`: This is an informational extension point that can be used 1. `PreScore`: This is an informational extension point that can be used
for doing pre-scoring work. for doing pre-scoring work.
1. `Score`: These plugins provide a score to each node that has passed the 1. `Score`: These plugins provide a score to each node that has passed the
@@ -198,10 +184,9 @@ that are not enabled by default:
### Multiple profiles ### Multiple profiles
`kube-scheduler` can be configured to You can configure `kube-scheduler` to run more than one profile.
run more than one profile. Each profile has an associated scheduler name. Each Each profile has an associated scheduler name and can have a different set of
profile can have a different set of plugins configured in its plugins configured in its [extension points](#extension-points). For example:
[extension points](#extension-points).
```yaml ```yaml
apiVersion: kubescheduler.config.k8s.io/v1beta1 apiVersion: kubescheduler.config.k8s.io/v1beta1
@@ -238,7 +223,24 @@ the same configuration parameters (if applicable). This is because the scheduler
only has one pending pods queue. only has one pending pods queue.
{{< /note >}} {{< /note >}}
## Upgrading from `v1alpha2` to `v1beta1` {#beta-changes}
When migrating from `kubescheduler.config.k8s.io/v1alpha2` to `kubescheduler.config.k8s.io/v1beta1`,
beware of the following changes, if applicable:
- `.bindTimeoutSeconds` was moved as part of plugin args for `VolumeBinding`,
which can be configured separately per [profile](#profiles).
- `.extenders` are updated to satisfy API standards. In particular:
- `.extenders` decoding is case sensitive. All fields are affected.
- `.extenders[*].httpTimeout` is of type `metav1.Duration`.
- `.extenders[*].enableHttps` is renamed to `.extenders[*].enableHTTPS`.
- `RequestedToCapacityRatio` args decoding is case sensitive. All fields are affected.
- `DefaultPodTopologySpread` [plugin](#scheduling-plugins) is renamed to `SelectorSpread`.
- `Unreserve` extension point is removed from Profile definition. All `Reserve`
plugins implement an `Unreserve` call.
## {{% heading "whatsnext" %}} ## {{% heading "whatsnext" %}}
* Read the [kube-scheduler reference](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-scheduler/)
* Learn about [scheduling](/docs/concepts/scheduling-eviction/kube-scheduler/) * Learn about [scheduling](/docs/concepts/scheduling-eviction/kube-scheduler/)