模擬問題集 › GCP-PCDOE › 練習問題 10

GCP-PCDOE 練習問題 10|CI/CD パイプライン(継続的テストを含む)の構築と実装

Professional Cloud DevOps Engineer・無料公開(全 200 問中 15 問を無料公開中)

問題
アプリケーションを Google Kubernetes Engine(GKE)にデプロイするための Cloud Deploy パイプラインを構成しています。アプリケーションは Deployment としてデプロイされます。開発環境では 2 つのレプリカ、本番環境では 5 つのレプリカになるように Deployment を構成する必要があります。他のすべての構成パラメータが環境間で一貫していることを保証しなければなりません。また、将来マニフェストを更新する際の開発オーバーヘッドを最小限に抑える必要があります。skaffold.yaml ファイルをどのように構成すればよいですか。

選択肢と解説

  • ✓
    複数のプロファイルを作成し、manifests.kustomize セクションを構成する。
  • 2
    単一のプロファイルを作成し、manifests.kustomize セクションを構成する。
  • 3
    複数のプロファイルを作成し、manifests.rawYaml セクションを構成する。
  • 4
    単一のプロファイルを作成し、manifests.rawYaml セクションを構成する。

解説

【正解】A

【0からの解説】
①前提知識:
・Cloud Deploy は、パイプラインに定義したターゲット(dev、prod など)へ順番にリリースを昇格させるマネージドな継続的デリバリー サービスで、レンダリングとデプロイには Skaffold を使います。
・Skaffold のプロファイル(profiles):skaffold.yaml の中で環境ごとに異なる設定を定義する仕組みです。Cloud Deploy では、パイプラインの各ターゲット(ステージ)にどのプロファイルを使うかを指定できます。
・Kustomize:共通のマニフェスト(base)と、環境ごとの差分だけを記述した overlay を組み合わせて最終的なマニフェストを生成するツールです。レプリカ数のような差分だけを overlay に書けば、それ以外の設定は base を共有します。
・rawYaml:プレーンな Kubernetes マニフェストをそのまま使う方式で、差分を表現する仕組みはありません。

②要件の整理:(a) dev は 2 レプリカ、prod は 5 レプリカと環境ごとに値を変える、(b) それ以外の設定は環境間で一貫させる、(c) 将来のマニフェスト更新時の開発オーバーヘッドを最小にする、の 3 点です。

③正解の理由:環境ごとに異なる設定を出し分けるには、環境ごとのプロファイル(dev 用・prod 用の複数)が必要です。各プロファイルの manifests.kustomize に環境ごとの overlay を指定すれば、共通設定は base の 1 か所だけで管理され、レプリカ数だけが overlay で上書きされます。共通部分の変更は base を 1 回直すだけで全環境に反映されるため、一貫性の確保と更新時のオーバーヘッド最小化の両方を満たします。

【誤りの選択肢】
B:プロファイルが 1 つしかないと、ターゲットごとに異なる構成(overlay)を選び分けられず、dev と prod でレプリカ数を変えることができません。
C:複数プロファイルで環境を分けることはできますが、rawYaml では環境ごとに完全なマニフェストを別々に用意する必要があります。共通設定が重複するため、変更のたびに複数ファイルを同じように直す必要があり、設定のずれ(不一致)も起こりやすく、要件 (b)(c) に反します。
D:単一プロファイルかつ rawYaml では、環境ごとにレプリカ数を変えること自体ができません。

【参考】
Cloud Deploy でマニフェストを管理する
Cloud Deploy で Skaffold を使用する
← 練習問題 9練習問題 11 →
GCP-PCDOE の模擬問題集は全 200 問

本番形式の練習テスト 4 回を、試験モード/演習モードで受験できます。 全問に解説付き、ドメイン別の弱点分析にも対応。模試プラン(月額 ¥980)からご利用いただけます。

GCP-PCDOE の模試を受ける料金プランを見る

GCP-PCDOE の無料公開問題

問題 1問題 2問題 3問題 4問題 5問題 6問題 7問題 8問題 9問題 10問題 11問題 12問題 13問題 14問題 15