ACEクラウドソリューションの正常な運用の確保MEDIUM単一選択

GKE クラスターのノードをアップグレードする前に、現在のノードにスケジュールされている Pod を安全に退避させるコマンドはどれですか?

  1. A. kubectl delete node <NODE_NAME>
  2. B. kubectl cordon <NODE_NAME>
  3. C. kubectl taint node <NODE_NAME> NoSchedule
  4. D. kubectl drain <NODE_NAME> --ignore-daemonsets --delete-emptydir-data
解答と解説を見る

正解: D

kubectl drain <NODE_NAME> は指定ノードを cordoned(新規 Pod のスケジューリング不可)にした上で、実行中の Pod を安全に他のノードに退避させます。--ignore-daemonsets は DaemonSet Pod を無視し(DaemonSet は全ノードに存在するため)、--delete-emptydir-data は emptyDir ボリュームを持つ Pod も退避できます。kubectl delete node はノード自体を削除してしまいます。kubectl taint でも NoSchedule を追加できますが、既存 Pod の退避は行いません。kubectl cordon はノードを新規スケジューリング不可にしますが、既存 Pod の退避は行いません(drain は cordon + evict をセットで行います)。

▸ この試験を本気で演習する(全150問・無料)