はじめに
ここでは, Kubernetes 1.18 の CHANGELOG から SIG Scheduling に関係のあるものを抜粋しています.
Changes by Kind
Deprecation
kube-scheduler
- サマリメトリクス
scheduling_duration_seconds
が非推奨へ変更されます. (#86586, @xiaoanyunfei) - メトリクス
scheduling_algorithm_predicate_evaluation_seconds
とscheduling_algorithm_priority_evaluation_seconds
が非推奨となりframework_extension_point_duration_seconds[extension_point="Filter"]
とframework_extension_point_duration_seconds[extension_point="Score"]
へ置き換えられます. (#86584, @xiaoanyunfei) - scheduler policy API の AlwaysCheckAllPredicates が非推奨へ変更されます. (#86369, @Huang-Wei)
API Change
Configuration file changes
kube-scheduler
- kubescheduler.config.k8s.io/v1alpha2 が利用可能になり複数の scheduling profile がサポートされます. (#87628, @alculquicondor)
- HardPodAffinityWeight が ComponentConfig から PluginConfig へ移されます. (#88002, @alculquicondor)
- kube-scheduler が複数の scheduling profile を実行可能になります. Pod が与えれれた場合, scheduling profile は Pod の
.spec.schedulerName
を利用して選択されます. (#88285, @alculquicondor) - scheduler extender が v1alpha2 の ComponentConfig を利用して設定できるようになります. (#88768, @damemi)
- kubescheduler.config.k8s.io/v1alpha2 では scheduler framework の PostFilter プラグインが PreScore プラグインへ名称変更されます. (#87751, @skilxn-go)
- kube-controller-manager と kube-scheduler は kube-apiserver と同じように, デフォルトでプロファイル情報を公開するようになります. これを無効にする場合には --enable-profiling=false フラグを利用します.. (#88663, @deads2k)
kube-proxy
- kube-proxy に --detect-local-mode フラグがオプションとして追加されます. 有効な値は "ClusterCIDR" と "NodeCIDR" です. デフォルト値は "ClusterCIDR" でこれが指定された場合は以前と同じ振る舞いとなります. (#87748, @satyasm)
Features graduated to GA
- TaintBasedEvictions が GA となります. (#87487, @skilxn-go)
Feature
- scheduler の ComponentConfig で PodTopologySpread プラグインの DefaultConstraints を指定できるようになります. (#88671, @alculquicondor)
- PodTopologySpread プラグインが terminating 状態にある Pod を除外してスケジューリングの決定を行うようになります. (#87845, @Huang-Wei)
- scheduler framework の Permit プラグインが Reserve プラグインの後, つまりスケジューリングサイクルの最後に実行されるようになります. Permit の待機はバインディングサイクルの最初のままです. (#88199, @mateuszlitwin)
- デフォルトのバインディングが DefaultBinder としてプラグインになります. (#87430, @alculquicondor)
- Pod に TopologySpreadConstraints が設定されている場合にはデフォルトの spreading scoring plugin がスキップされるようになります. (#87566, @skilxn-go)
- PodTopologySpread が 1.18 ではベータとなりデフォルトで有効になります. (feature gate は EvenPodsSpread) (#88105, @Huang-Wei)
- レコードされていなかった二つのメトリクス pending_pods と schedule_attempts_total が修正されます. (#87692, @everpeace)
- Plugin/PluginConfig と Policy は同時に利用することができなくなります. (#88864, @alculquicondor)
- PreScore プラグインのインタフェースから FilteredNodesStatuses が削除されます. (#88189, @skilxn-go)
- 同じプラグインに PluginConfig を複数回指定すると scheduler の起動に失敗するようになります. (#88870, @alculquicondor)