この記事は、Kubernetesが本質的に高可用性を提供するという誤解を扱っています。Kubernetesのスケジューラは、デフォルトでは回復力よりもリソース割り当てを優先するため、すべてのPodレプリカが同じアベイラビリティゾーンに配置される可能性があります。このため、そのゾーンが故障した場合、サービス停止につながる可能性があります。その後、この記事では、Podのスケジューリングを制御し、回復力を強化するためのいくつかのツールについて概説しています。これらには、ゾーンとノード全体にPodを適切に分散させるための`nodeSelector`、`nodeAffinity`、`podAntiAffinity`、`taints`と`tolerations`、そして`TopologySpreadConstraints`が含まれます。`nodeSelector`はシンプルですが制限があり、`nodeAffinity`は優先配置と必須配置でより柔軟な対応が可能です。`podAntiAffinity`は、複数のレプリカが同じノードまたはゾーンに存在するのを防ぎます。`taints`と`tolerations`は、特定のワークロードのために特定のノードを予約するために使用されます。`TopologySpreadConstraints`は、ゾーン全体に均一な分散を保証します。最後に、クラスタ内のネットワークトラフィックを最適化するための実験的な技術として`Topology Aware Routing`についても言及しています。
dev.to
Evita la trampa del Scheduling en Kubernetes: Por qué todos tus Pods pueden caer juntos (y cómo evitarlo)
