重要なアドオンPodに対するスケジューリングの保証

APIサーバー、スケジューラー、コントローラーマネージャーなどのKubernetesコアコンポーネントは、コントロールプレーンノード上で実行されます。 しかし、アドオンは通常のクラスターノード上で実行する必要があります。 これらのアドオンの中には、metrics-server、DNS、UIなど、クラスターが完全に機能するために重要なものがあります。 重要度の高いアドオンが退避させられ(手動で、またはアップグレードなどの他の操作の副作用として)、保留状態になった場合、クラスターは正常に動作しなくなる可能性があります(たとえば、クラスターの使用率が高く、退避させられた重要度の高いアドオンPodが空けたスペースに他の保留中のPodがスケジュールされる場合や、何らかの理由でノード上で利用可能なリソース量が変化した場合など)。

Podを重要度の高いものとして設定することは、退避を完全に防ぐことを意図しておらず、Podが永続的に利用不可能になることを防ぐだけであることに注意してください。 重要度の高いPodとして設定されたstatic Podは退避させられません。 ただし、重要度の高いPodとして設定された非static Podは常に再スケジュールされます。

重要度の高いPodとして設定する方法

Podを重要度の高いものとして設定するには、そのPodのpriorityClassNameをsystem-cluster-criticalまたはsystem-node-criticalに設定します。 system-node-criticalは、system-cluster-criticalの優先度よりもさらに高く、利用可能な優先度の中で最も高く設定されています。