KubernetesのAffinity
前提
k8sのスケジューリング時の話
Kubernetesは、Podを適切なNodeに自動で配置(スケジーリング)する
しかし、すべてを自動任せにしたくないケースも多い
e.g.
「このノードに置きたい」
「このノードは避けたい」
「他のPodと同じノードに置きたい/置きたくない」
そのために使うのが、Affinity周りの諸概念である
視点や用途別にいくつか種類がある
Pod視点で、どのNodeに配置されるかを指定
Node視点で、どのPodを弊Nodeに配置していいかを指定
Pod AとPod Bと同じNodeに置きたい
Pod AとPod Bを異なるNodeに置きたい
2種類のAffinityのレベル
ハードAffinity
絶対に、その条件を満たしたい
満たさないなら保留になる
ソフトAffinity
可能であれば、その条件を満たしたい