ノードアフィニティ
Kubernetesの機能で、ノードのラベルに基づいてPodをどのノードに配置するかを制御する。requiredDuringSchedulingIgnoredDuringExecutionは必須ルール、preferredは努力目標である。
用途は、MLワークロードをGPUノード(nvidia.com/gpu.product=H100)に載せる、大容量メモリのPodをr5.xlargeインスタンスに置く、eu-westなど地理的な配置を指定する、といったものである。新しい仕組みとしてTopology Spread Constraintsがあり、Podをゾーンやノードに均等に分散して可用性を高める。アンチアフィニティは同じデプロイメントのPodを同一ノードに置かないための設定で、障害への耐性を上げる。典型的な落とし穴は、満たせない必須アフィニティを書いてしまい、Podが永久にPendingのまま止まることだ。柔らかい要件にはpreferredを使い、requiredは本当に必要なときだけにしたい。