Google Kubernates Engine(GKE)クラスターを利用して複数のノードで構成しました。新しいバージョンのアプリケーションをデプロイしたいと思います。ダウンタイムなしに、かつ新しいバージョンに不具合があった場合には素早く、元のバージョンに切り戻す必要があります。どのような方法でデプロイすれば良いでしょうか?

  1. メンテナンスの除外時間を指定して自動でアップグレートを行う。
  2. Blue/Greenアップグレードを用いて手動でアップグレートを行う。
  3. サージアップグレードを用いて手動でアップグレードを行う。
  4. ライフサイクル管理ルールを設定して自動でアップグレートを行う。
解答

正解は2番です。

GKEのノードのアップグレード方法は次の方法があります。

  • 自動アップグレート
  • 手動アップグレード(サージアップグレード)
  • 手動アップグレード(Blue/Greenアップブレード)

自動アップグレードはGoogle側で自動的にサージアップグレードをしてくれます。サージアップグレードとは古いノードをドレインする前に、新しいノードを作成します。そのノードに新しいPodが作成されます。こうして順番にローリングされならがら、全てのノードが新しいものにアップグレードされます。

こうすることで、作成されるリソースを最低限にしつつ、ダウンタイムを発生させることなく、新しくすることが可能です。メンテナンスの時間枠と、メンテナンスの除外を設定することで、平日の早朝などのアクセスが少ない時間帯に実行するなどの計画をすることが可能です。

一方、手動アップグレードはこのサージアップグレードを任意のタイミングで実行します。

Blue/Greenアップブレードは現在運用中のノード構成と同じノード構成を別途用意して、全てのpodを移行します。正常に動作することが確認できてから、古いノードを削除します。そのため、一時的にリソースは2倍になりますが、サージアップグレードに比べて、迅速にロールバックすることが可能です。

私もこのオンライン学習で学びました!

IT資格の人気オンラインコース