GKE クラスターのコントロールプレーンとノードのバージョンが乖離してきたため、ノードをアップグレードしたいと考えています。ノードプールのアップグレードを最もダウンタイムを短くして行う方法はどれですか?
- A. GKE マスター(コントロールプレーン)だけをアップグレードしてノードはそのままにする
- B. ノードプールを削除して新しいバージョンで再作成する
- C. kubectl drain で全ノードを手動で退避させてからアップグレードする
- D. gcloud container clusters upgrade コマンドでノードプールのサージアップグレードを使用する
解答と解説を見る
正解: D
gcloud container clusters upgrade <CLUSTER> --node-pool=<POOL> コマンドを使い、サージアップグレード設定(max-surge=1 などで同時にアップグレードする追加ノード数を指定)を適用することで、ローリング方式でノードを 1 台ずつ(または数台ずつ)アップグレードしてダウンタイムを最小化できます。ノードプールの削除・再作成は全 Pod が一時的に他ノードに移動するため影響が大きいです。手動 drain は手順が多くヒューマンエラーのリスクがあります。コントロールプレーンのみのアップグレードはバージョン乖離が継続してサポート外になる可能性があります。