Kubernetes 1.16: SIG Scheduling の変更内容

## はじめに

ここでは, Kubernetes 1.16 の CHANGELOG から SIG Scheduling に関係のあるものを抜粋しています.

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.16.md

## 主な変更点 (1.16 What's New)

該当なし

## 注目機能 (Notable Features)

### Beta

該当なし

### Alpha

- pod overhead という機能がスケジューラに導入されました.  この機能は v1.16 ではアルファレベルとなり feature gate によって有効化されたサーバでのみ有効となります. ([#78319](https://github.com/kubernetes/kubernetes/pull/78319), [egernst](https://github.com/egernst))

:memo: [pod overhead](https://kubernetes.io/docs/concepts/configuration/pod-overhead/) というのは pod 自身の持つリソースのオーバヘッドを表すもので, PodSpec に ResourceList として追加されます.  このフィールドは RuntimeClass admission controller によって RuntimeClass に応じて適切な値が設定されます.  設定された値は pod のスケジューリングに際して利用されます.

:memo: 動機としては sandbox pod などのオーバヘッドの大きい (~ O(100mb)) ランタイムでのスケジューリングを適切に行いたいというものがあるようです.

## その他の変更 (Other Notable Changes)

- リーダーロックを失ったスケジューラは終了するようになります. ([#81306](https://github.com/kubernetes/kubernetes/pull/81306), [ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))
- scheduler extender のフィルタが not found の node を返すクラッシュする問題が修正されます. ([#79641](https://github.com/kubernetes/kubernetes/pull/79641), [yqwang-ms](https://github.com/yqwang-ms))
- scheduler extender の bind が IsInterested 関数の結果を考慮するように修正されます. ([#79804](https://github.com/kubernetes/kubernetes/pull/79804), [yqwang-ms](https://github.com/yqwang-ms))
- PodTolerationRestriction admission controller が toleration のマージとホワイトリストの確認を行う際の問題が修正されます. ([#81732](https://github.com/kubernetes/kubernetes/pull/81732), [tallclair](https://github.com/tallclair))
- scheduler plugin の引数をデコードするためのヘルパー関数が追加されます. ([#80696](https://github.com/kubernetes/kubernetes/pull/80696), [hex108](https://github.com/hex108))
- preemption の最中に filter plugin が呼び出されないように修正されます. ([#81876](https://github.com/kubernetes/kubernetes/pull/81876), [wgliang](https://github.com/wgliang))
- 複数の PluginConfig ある場合に正しい PluginConfig.Args が PluginFactory に渡されない問題が修正されます. ([#82483](https://github.com/kubernetes/kubernetes/pull/82483), [everpeace](https://github.com/everpeace))
- context が関数の第一引数となるよう修正されます. ([#82119](https://github.com/kubernetes/kubernetes/pull/82119), [wgliang](https://github.com/wgliang))
- scheduling framework に post-filter extension point が追加されます. ([#78097](https://github.com/kubernetes/kubernetes/pull/78097), [draveness](https://github.com/draveness))
- scheduling framework に bind extension point が追加されます. ([#78513](https://github.com/kubernetes/kubernetes/pull/78513), [chenchun](https://github.com/chenchun))
- scheduling framework に filter extension point が追加されます. ([#78477](https://github.com/kubernetes/kubernetes/pull/78477), [YoubingLi](https://github.com/YoubingLi))
- スコアが範囲外の場合に scoring plugin がエラーを返すようになります. ([#81015](https://github.com/kubernetes/kubernetes/pull/81015), [draveness](https://github.com/draveness))
- normalizing-scoring フェーズでスコアの配列の代わりに名前付き配列を使うようになります. ([#80901](https://github.com/kubernetes/kubernetes/pull/80901), [draveness](https://github.com/draveness))
- requestedToCapacityRatioArguments にパラメータを追加し, 利用者がリソース毎に node のスコアの重みを指定できるようになります. ([#77688](https://github.com/kubernetes/kubernetes/pull/77688), [sudeshsh](https://github.com/sudeshsh))
- scheduling framework にステータスコード UnschedulableAndUnresolvable が追加されます. ([#82034](https://github.com/kubernetes/kubernetes/pull/82034), [alculquicondor](https://github.com/alculquicondor))
- scheduling framework に normalizing-scoring extension point が追加されます. ([#80383](https://github.com/kubernetes/kubernetes/pull/80383), [liu-cong](https://github.com/liu-cong))
- scheduling framework に bind extension point が追加されます. ([#79313](https://github.com/kubernetes/kubernetes/pull/79313), [chenchun](https://github.com/chenchun))
- scheduling framework に scoring extension point が追加されます. ([#79109](https://github.com/kubernetes/kubernetes/pull/79109), [ahg-g](https://github.com/ahg-g))
- scheduling framework に pre-filter extension point が追加されます. ([#78005](https://github.com/kubernetes/kubernetes/pull/78005), [ahg-g](https://github.com/ahg-g))
- out-of-tree の custom scheduler plugin のサポートが追加されます. ([#78162](https://github.com/kubernetes/kubernetes/pull/78162), [hex108](https://github.com/hex108))

:memo: SIG Scheduling に関するその他の変更の多くは 1.15 でアルファとなった [scheduling framework](https://github.com/kubernetes/enhancements/issues/624) の実装となっています. それ以外には細かな変更や不具合修正となっているようです.