始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Create a Kubernetes cluster
/ 20
Configure and Install Jenkins
/ 20
Create the production and canary deployments
/ 30
Build for the 'new-feature' branch
/ 10
Deploying a canary release
/ 10
Deploying to production
/ 10
Create a Kubernetes cluster
/ 20
Configure and Install Jenkins
/ 20
Create the production and canary deployments
/ 30
Build for the 'new-feature' branch
/ 10
Deploying a canary release
/ 10
Deploying to production
/ 10
Kubernetes クラスタを作成し、Jenkins が Google Cloud サービスと Google Artifact Registry にアクセスできるようにします。
この手順が完了するまでに数分かかる場合があります。追加のスコープにより、Jenkins は Google Cloud サービスと Google Artifact Registry にアクセスできるようになります。
この手順の完了には数分かかることがあります。追加されたスコープにより、Jenkins は Google Cloud サービスと Google Artifact Registry にアクセスできるようになります。
[進行状況を確認] をクリックして、実行したタスクを確認します。Kubernetes クラスタが正常に作成されている場合は、評価スコアが表示されます。
Helm は、Kubernetes アプリケーションの構成とデプロイを容易にするパッケージ管理システムです。Jenkins をインストールしたら、CI / CD パイプラインを設定できます。
このタスクでは、Helm を使用してチャート リポジトリから Jenkins をインストールします。
Jenkins をインストールする際には、設定に必要な値を提供するテンプレートとして
values ファイルを使用できます。
ここでは、カスタムの values ファイルを使用して Kubernetes
クラウドを自動的に構成し、以下の必要なプラグインを追加します。
これにより、Jenkins がクラスタと Google Cloud プロジェクトに接続できるようになります。
このコマンドは完了までに数分かかる場合があります。
[進行状況を確認] をクリックして、実行したタスクを確認します。Jenkins チャートが正常に構成されている場合は、評価スコアが表示されます。
Running 状態になり、コンテナが READY
状態になっていることを確認します。
出力例:
次の出力が表示されます。
出力例:
Kubernetes プラグインにより、Jenkins マスターからのリクエストに応じてビルダーノードが自動的に起動されます。処理が完了すると、ビルダーノードは自動的に終了し、リソースがクラスタのリソースプールに戻されます。
このサービスでは、selector に一致するすべての Pod のポート
8080 と
50000 が公開されることに注意してください。これにより、Kubernetes
クラスタ内の Jenkins ウェブ UI ポートとビルダー /
エージェント登録ポートが公開されます。また、jenkins-ui サービスは
ClusterIP を使用して公開されるため、クラスタ外からはアクセスできません。
管理者パスワードを取得して、Jenkins インターフェースにログインします。
Jenkins ユーザー インターフェースを表示するには、Cloud Shell
のアクションバーでウェブでプレビュー アイコン()> [ポート 8080 でプレビュー]
の順にクリックします。
ユーザー名「admin」と自動生成されたパスワードでログインします。
これで、Kubernetes クラスタに Jenkins が設定されました。次のセクションでは、自動化した CI / CD パイプラインを Jenkins で実行します。
このタスクでは、継続的デプロイ パイプラインにサンプル アプリケーション
gceme をデプロイします。このアプリケーションは Go
言語で記述されており、リポジトリの sample-app
ディレクトリに保存されています。Compute Engine インスタンスで gceme
バイナリを実行すると、アプリの情報カードにインスタンスのメタデータが表示されます。
このアプリケーションはマイクロサービスの挙動を模倣しており、2 つのオペレーション モードに対応します。
アプリケーションを以下の 2 つの異なる環境にデプロイします。
kubectl apply コマンドを使用して、本番デプロイメント、カナリア
デプロイメント、サービスを作成します。
[進行状況を確認] をクリックして、実行したタスクを確認します。デプロイメントが正常に作成されている場合は、評価スコアが表示されます。
デフォルトでは、フロントエンドのレプリカが 1 つだけデプロイされます。kubectl scale
コマンドを使用して、少なくとも 4 つのレプリカが常時実行されるようにします。
出力例:
外部 IP をブラウザに貼り付けると、以下のような情報カードが表示されます。
ブラウザでフロントエンドの外部 IP アドレスを開き、両方のサービスが正常に動作していることを確認します。
次のコマンドを実行して、サービスのバージョン出力を確認します(「1.0.0」と表示されるはずです)。
これで、サンプル アプリケーションが正常にデプロイされました。次に、変更を継続的かつ確実にデプロイするためのパイプラインを設定します。
このタスクでは、専用の Git サーバー上に Git リポジトリを設定し、Jenkins パイプラインを作成します。
sample-app ディレクトリを Git リポジトリとして初期化します。
master ブランチに push します。
Jenkins がクラスタにアクセスしてリソースをデプロイできるように認証情報を構成します。
Jenkins ユーザー インターフェースの左側のパネルで [Manage Jenkins] をクリックし、[Security] の下の [Credentials] をクリックします。
[Stores scoped to Jenkins] で [System] をクリックします。
[Global credentials (unrestricted)] をクリックします。
[Add Credentials] をクリックします。
[Kind] で [Google Service Account from metadata] を選択して [Next] をクリックします。
[ID] フィールドにプロジェクト ID(
グローバル認証情報が追加されました。
http://cd-jenkins:8080」と入力します。
cd-jenkins-agent:50000」と入力します。
Jenkins ユーザー インターフェースに移動し、次の手順に沿ってマルチブランチ パイプライン ジョブを構成します。
左側のパネルで [Jenkins] > [New Item] をクリックします。
項目名に「sample-app」と入力し、[Multibranch Pipeline] オプションを選択して [OK] をクリックします。
次のページの [Branch Sources] セクションで、[Add source] プルダウンから [Git] を選択します。
[Project Repository] フィールドにリポジトリのクローン URL を入力します。
[GIT_SERVER_IP] を Git サーバーの IP に置き換えて http://[GIT_SERVER_IP]:3000/giteaadmin/sample-app.git と入力します。
[Credentials] は [- none -] のままにします。
[Scan Multibranch Pipeline Triggers] セクションで、[Periodically if not otherwise run] チェックボックスをオンにし、[Interval] の値を [1 minute] に設定します。
他のオプションはすべてデフォルト値のままにして、[Save] をクリックします。
これらの手順を完了すると、Branch indexing
というジョブが実行されます。このメタジョブは、リポジトリ内のブランチを特定し、既存のブランチに変更が発生していないことを確認します。ナビゲーションで
[sample-app] をクリックすると、master
ジョブが表示されます。
これで Jenkins パイプラインが正常に作成されました。次に、継続的インテグレーション用の開発環境を作成します。
開発ブランチは、デベロッパーがコードの変更を公開サイトに統合する前にテストを行うための一連の環境です。これは実際の環境をスケールダウンしたものですが、ライブ環境と同じ方法でデプロイする必要があります。
機能ブランチから開発環境を作成する場合は、ブランチを Git サーバーに push すると、Jenkins によって環境がデプロイされます。
パイプラインを定義する Jenkinsfile は
Jenkins Pipeline Groovy 構文で記述されます。Jenkinsfile を使用すると、ビルド
パイプライン全体を 1
つのファイルで表し、ソースコードと一緒に公開できます。パイプラインは並列化などの強力な機能をサポートしていますが、ユーザーによる承認が必要です。
パイプラインを想定どおりに機能させるには、Jenkinsfile
ファイルを変更してプロジェクト ID を設定する必要があります。
vi などのターミナル エディタで Jenkinsfile を開きます。
REPLACE_WITH_YOUR_PROJECT_ID 値を実際の
PROJECT_ID に置き換えます(PROJECT_ID は、ラボの
[接続の詳細] セクションにあるご自分のプロジェクト ID
です。また、gcloud config get-value project
を実行して確認することもできます)。
CLUSTER_ZONE の値を
gcloud config get compute/zone
を実行します。
Jenkinsfile ファイルを保存します(vi では Esc
キーを押し、以下のコマンドを入力します)。
アプリケーションの変更のデモとして、gceme カードを青からオレンジに変更します。
html.go を開きます。<div class="card blue"> を次のように変更します。
html.go ファイルを保存します(Esc
キーを押し、以下のコマンドを入力します)。
main.go を開きます。以下のように更新します。
このタスクでは、開発環境をデプロイします。
これにより、開発環境のビルドが開始されます。
変更が Git リポジトリに push されたら、Jenkins のユーザー
インターフェースに移動し、new-feature
ブランチのビルドが開始されていることを確認します。変更が反映されるまでに最長で
1 分ほどかかります。
kubectl --namespace=new-feature apply...」メッセージが表示されるのを待ちます。表示されたら、new-feature
ブランチがクラスタにデプロイされたことを意味します。
Build Executor に何も表示されなくても問題はありません。Jenkins
のホーム画面 > sample-app に移動して、new-feature
パイプラインが作成されていることを確認できます。
localhost
にリクエストを送信して
kubectl
プロキシからサービスに転送させ、アプリケーションがアクセス可能であることを確認します。
現在実行中のバージョンである 2.0.0 が返されます。
次のようなエラーが表示された場合:
curl
コマンドを試してください。以下の出力が表示されたら次に進みます。
これで、開発環境の設定が完了しました。次に、前のモジュールで学んだことを踏まえ、カナリア リリースをデプロイして新しい機能をテストします。
[進行状況を確認] をクリックして、実行したタスクを確認します。new-feature ブランチのビルドが正常に開始された場合は、評価スコアが表示されます。
new-feature ブランチをビルドする
開発環境のアプリで最新のコードが実行されていることが確認できたので、今度はそのコードをカナリア環境にデプロイしてみましょう。
2.0.0 が表示されます(出現順はランダム)。
これで、カナリア リリースのデプロイが完了しました。次に、新しいバージョンを本番環境にデプロイします。
[進行状況を確認] をクリックして、実行したタスクを確認します。カナリア リリースが正常にデプロイされている場合は、評価スコアが表示されます。
カナリア リリースが成功し、ユーザーからの問題報告もないと想定して、本番環境へのデプロイを開始します。
マスター パイプラインが開始されたことが Jenkins に表示されます。
[進行状況を確認] をクリックして、実行したタスクを確認します。マスター パイプラインが正常に開始されている場合は、評価スコアが表示されます。
1.0.0
が表示される場合は、上記のコマンドを再度実行してください。このコマンドを停止するには、Ctrl+C
キーを押します。
出力例:
gceme アプリケーションの情報カードが表示されるサイトにアクセスして確認することもできます。カードの色は青からオレンジに変わっています。
出力例:
今回のラボで学習した内容の理解を深めていただけるよう、以下の選択式問題を用意しました。正解を目指して頑張ってください。
これで完了です
本番環境にアプリケーションが正常にデプロイされました。
これで、Kubernetes Engine 上で Jenkins を使用して継続的デリバリー / 継続的デプロイ パイプラインを構築し、運用するハンズオンラボは終了です。このラボでは、Kubernetes Engine 上に主要な DevOps ツールをデプロイし、本番環境用に構成しました。また、kubectl コマンドライン ツールを使用し、YAML ファイルのデプロイ構成を処理し、さらに、開発プロセスとデプロイ プロセス用に Jenkins パイプラインを設定する方法について学びました。今後は、これらのツールを実際の DevOps 環境で自信を持って活用していただけるでしょう。
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2026 年 5 月 20 日
ラボの最終テスト日: 2026 年 2 月 26 日
Copyright 2026 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください