ノードドレイン(のーどどれいん)
最終更新:2026/4/25
ノードドレインは、Kubernetesなどのコンテナオーケストレーションシステムにおいて、計画的なノードのメンテナンスやアップグレードのために、ノードからPodを安全に退避させるプロセスである。
別名・同義語 ノードの退避Podの移動
ポイント
ノードドレインは、アプリケーションのダウンタイムを最小限に抑えながら、インフラストラクチャの変更を可能にする重要な機能である。Podの再配置先となる別のノードが利用可能であることが前提となる。
ノードドレインの概要
ノードドレインは、Kubernetesクラスターにおけるノードのメンテナンス、カーネルアップデート、ハードウェア交換などの操作を行う前に、そのノード上で実行中のPodを別の利用可能なノードに移動させるための仕組みです。これにより、アプリケーションの可用性を維持しつつ、インフラストラクチャの変更を安全に行うことができます。
ノードドレインのプロセス
- ノードのラベル付け: メンテナンス対象のノードに、ドレイン処理を行うことを示すラベルを付与します。
- Podの退避: Kubernetesは、ラベル付けされたノード上で実行中のPodを、他の利用可能なノードに再配置します。この際、Podの定義に基づいて、適切なノードが選択されます。
- Podの削除: すべてのPodが正常に再配置された後、Kubernetesは元のノードからPodを削除します。
- ノードのメンテナンス: Podが削除されたノードに対して、メンテナンス作業を実行します。
ノードドレインのオプション
kubectl drainコマンドを使用する際に、いくつかのオプションを指定できます。
--ignore-daemonsets: DaemonSetによって管理されているPodを無視します。--force: 強制的にPodを削除します(推奨されません)。--delete-local-data: ローカルストレージを使用しているPodを削除します(データ損失の可能性があります)。--grace-period: Podの終了猶予期間(秒単位)を指定します。