arrow_back

Kubernetes Engine での Jenkins の設定

参加 ログイン
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Kubernetes Engine での Jenkins の設定

Lab 1時間 universal_currency_alt クレジット: 5 show_chart 中級
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP117

Google Cloud セルフペース ラボ

このハンズオンラボでは、ソフトウェア デリバリー パイプラインをオーケストレートできるように Google Kubernetes Engine で Jenkins を設定する方法について学習します。

目標

  • Kubernetes Engineを使用して Kubernetes クラスタを作成する。
  • Jenkins のデプロイメントとサービスを作成する。
  • Jenkins に接続する。

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、Google Cloud のリソースを利用できる時間を示しています。

このハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。
  • ラボを完了するために十分な時間を確保してください。ラボをいったん開始すると一時停止することはできません。
注: すでに個人の Google Cloud アカウントやプロジェクトをお持ちの場合でも、このラボでは使用しないでください。アカウントへの追加料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。

    • [Google コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google コンソールを開く] をクリックします。 ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、[ラボの詳細] パネルから [ユーザー名] をコピーして [ログイン] ダイアログに貼り付けます。[次へ] をクリックします。

  4. [ラボの詳細] パネルから [パスワード] をコピーして [ようこそ] ダイアログに貼り付けます。[次へ] をクリックします。

    重要: 認証情報は左側のパネルに表示されたものを使用してください。Google Cloud Skills Boost の認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  5. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後このタブで Cloud Console が開きます。

注: 左上にある [ナビゲーション メニュー] をクリックすると、Google Cloud のプロダクトやサービスのリストが含まれるメニューが表示されます。 ナビゲーション メニュー アイコン

Cloud Shell をアクティブにする

Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。

  1. Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン 「Cloud Shell をアクティブにする」アイコン をクリックします。

接続した時点で認証が完了しており、プロジェクトに各自の PROJECT_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。

  1. (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list
  1. [承認] をクリックします。

  2. 出力は次のようになります。

出力:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
gcloud config list project

出力:

[core] project = <project_ID>

出力例:

[core] project = qwiklabs-gcp-44776a13dea667a6 注: Google Cloud における gcloud ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。

タスク 1. 環境を準備する

まず、デプロイ環境を準備してサンプル アプリケーションをダウンロードします。

  1. デフォルトの Compute Engine ゾーンを に設定します。
gcloud config set compute/zone {{{project_0.default_zone}}}
  1. サンプルコードのクローンを作成します。
git clone https://github.com/GoogleCloudPlatform/continuous-deployment-on-kubernetes.git
  1. サンプルコードのディレクトリに移動します。
cd continuous-deployment-on-kubernetes

Kubernetes クラスタを作成する

Kubernetes Engine を使用して、Kubernetes クラスタを作成および管理します。

  1. 次に、Kubernetes Engine を使用して Kubernetes クラスタをプロビジョニングします。この手順は完了するまでに数分かかることがあります。
gcloud container clusters create jenkins-cd \ --num-nodes 2 \ --scopes "https://www.googleapis.com/auth/projecthosting,cloud-platform"

追加のスコープで、Jenkins が Cloud Source Repositories と Google Container Registry にアクセスできるようになります。

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが提供されます。

Kubernetes クラスタを作成する(ゾーン:
  1. クラスタが実行されていることを確認します。
gcloud container clusters list

出力例:

STATUS 列の RUNNING を確認します。

NAME LOCATION MASTER_VERSION MASTER_IP MACHINE_TYPE NODE_VERSION NUM_NODES STATUS jenkins-cd {{{project_0.default_zone}}} 1.9.7-gke.3 35.237.126.84 e2-medium 1.9.7-gke.3 2 RUNNING
  1. クラスタの認証情報を取得します。Kubernetes Engine はこれらの認証情報を使用して、新たにプロビジョニングされたクラスタにアクセスします。
gcloud container clusters get-credentials jenkins-cd
  1. クラスタに接続できることを確認します。
kubectl cluster-info

出力例: クラスタが実行されている場合は、Kubernetes コンポーネントにアクセスできる URL が表示されます。

Kubernetes master is running at https://130.211.178.38 GLBCDefaultBackend is running at https://130.211.178.38/api/v1/proxy/namespaces/kube-system/services/default-http-backend Heapster is running at https://130.211.178.38/api/v1/proxy/namespaces/kube-system/services/heapster KubeDNS is running at https://130.211.178.38/api/v1/proxy/namespaces/kube-system/services/kube-dns kubernetes-dashboard is running at https://130.211.178.38/api/v1/proxy/namespaces/kube-system/services/kubernetes-dashboard

タスク 2. Helm を構成する

このラボでは、Helm を使用してチャート リポジトリから Jenkins をインストールします。Helm は、Kubernetes アプリケーションの構成とデプロイを容易にするパッケージ管理システムです。Cloud Shell には、Helm の最新の安定版がプリインストールされています。

興味がある場合は、Cloud Shell で helm version を実行すると、Helm がインストールされていることと、そのバージョンを確認できます。

  1. Helm の jenkins チャート リポジトリを追加します。
helm repo add jenkins https://charts.jenkins.io
  1. リポジトリを更新して、チャートのリストを最新の状態にします。
helm repo update

タスク 3. Jenkins を構成、インストールする

サービス アカウントの認証情報で Cloud Source Repositories にアクセスするために必要な Google Cloud 固有のプラグインを、カスタムの値ファイルを使って追加します。

  1. Helm CLI を使用して、構成セットとともにチャートをデプロイします。
helm upgrade --install -f jenkins/values.yaml myjenkins jenkins/jenkins

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが提供されます。

Jenkins を構成、インストールする
  1. コマンドが完了したら、Jenkins Pod が Running 状態になり、コンテナが READY 状態になっていることを確認します。これには 2 分ほどかかります。
kubectl get pods

出力例:

NAME READY STATUS RESTARTS AGE myjenkins-0 2/2 Running 0 1m
  1. 次のコマンドを実行して、Cloud Shell から Jenkins UI へのポート転送を設定します。
echo http://127.0.0.1:8080 kubectl --namespace default port-forward svc/myjenkins 8080:8080 >> /dev/null &
  1. Jenkins サービスが適切に作成されたことを確認します。
kubectl get svc

出力例:

NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE myjenkins 10.35.249.67 8080/TCP 3h myjenkins-agent 10.35.248.1 50000/TCP 3h kubernetes 10.35.240.1 443/TCP 9h

Jenkins マスターが要求したときに、必要に応じて自動的にビルダーノードが起動されるように、Kubernetes プラグインを使用します。処理が完了するとノードは自動的に終了し、リソースはクラスタのリソースプールに戻されます。

このサービスでは、selector に一致するすべての Pod にポート 808050000 が公開されることに注意してください。ここでは、Kubernetes クラスタ内の Jenkins ウェブ UI ポートとビルダー / エージェント登録ポートが公開されます。

また、jenkins-ui サービスは ClusterIP を使用して公開されるため、クラスタ外からはアクセスできません。

タスク 4. Jenkins に接続する

  1. Jenkins チャートによって管理者パスワードが自動的に作成されます。このパスワードを取得するには、以下を実行します。
kubectl exec --namespace default -it svc/myjenkins -c jenkins -- /bin/cat /run/secrets/additional/chart-admin-password && echo
  1. Jenkins ユーザー インターフェースを表示するには、Cloud Shell でウェブでプレビュー アイコンをクリックし、[ポート 8080 でプレビュー] をクリックします。

展開された [ウェブでプレビュー] プルダウン メニューでハイライト表示されている [ポート 8080 でプレビュー]

  1. ユーザー名 admin と自動生成されたパスワードでログインできます。
自動ログインされる場合もあります。

これで、Kubernetes クラスタに Jenkins が設定されました。

理解度チェック

今回のラボで学習した内容の理解を深めていただくため、以下の選択式問題を用意しました。正解を目指して頑張ってください。

お疲れさまでした

クエストを完了する

このセルフペース ラボは、Google Cloud Skills Boost の「Google Cloud Solutions I: Scaling Your Infrastructure」クエストの一部です。クエストとは学習プログラムを構成する一連のラボのことで、完了すると成果が認められて上のようなバッジが贈られます。バッジは公開して、オンライン レジュメやソーシャル メディア アカウントにリンクできます。このラボの修了後、こちらのクエストに登録すれば、すぐにクレジットを受け取ることができます。受講可能なすべてのクエストについては、Google Cloud Skills Boost カタログをご覧ください。

次のラボを受講する

Spinnaker と Kubernetes Engine を使用した継続的デリバリー パイプラインに進んでクエストを続けるか、以下のおすすめのラボをご確認ください。

次のステップと詳細情報

フォローアップ情報として以下をご確認ください。

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2022 年 8 月 15 日

ラボの最終テスト日: 2022 年 8 月 15 日

Copyright 2024 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。