Kubernetes Engine 用に Jenkins を構成

このページでは Jenkins を Google Kubernetes Engine で使用するための構成方法について説明します。Jenkins と Kubernetes Engine に記載されているおすすめの方法に関連した内容となっており、2 つの推奨プラグイン(Kubernetes プラグインGoogle Authenticated Source プラグイン)の構成方法についても説明しています。

認証情報の追加

Kubernetes Engine で使用する 2 つの認証情報のセットを追加します。

Google サービス アカウントの認証情報の追加

この認証情報により、Jenkins は Kubernetes Engine クラスタのサービス アカウントを利用して、クラウド リソースを作成、表示、削除できるようになります。

  1. Jenkins で、左のナビゲーションにある [認証情報] をクリックし、[システム] をクリックします。

  2. [グローバル認証情報(無制限)] をクリックします。

  3. 左のナビゲーションで [認証情報の追加] をクリックします。

  4. [種類] プルダウンから [メタデータからの Google サービス アカウント] を選択します。

  5. [OK] ボタンをクリックします。

Kubernetes 認証情報の追加

次の認証情報によって Kubernetes プラグインが Kubernetes サービス アカウントを使用して Kubernetes コンテキストにリソースを作成、表示、削除できるようになります。

Kubernetes 認証情報は次の 2 つの方法で追加できます。

  • チュートリアルのステップを実行するなどして Kubernetes Engine または Kubernetes クラスタ内で Jenkins を実行できるように設定してある場合は、サービス アカウントを設定できます。

  • Kubernetes Engine または Kubernetes クラスタ内で Jenkins を実行できるようにまだ設定していない場合は、HTTP 基本認証情報を追加して Kubernetes HTTP API で認証できるようにする必要があります。

サービス アカウントの使用

  1. Jenkins で、左のナビゲーションにある [認証情報] をクリックし、[システム] をクリックします。

  2. [グローバル認証情報(無制限)] をクリックします。

  3. 左のナビゲーションで [認証情報の追加] をクリックします。

  4. [種類] プルダウンから [Kubernetes サービス アカウント] を選択します。このオプションは、Jenkins が Kubernetes Engine または Kubernetes クラスタ内で実行されていない場合は表示されません。

  5. [説明] フィールドに「jenkins」などの説明を追加します。

  6. [OK] ボタンをクリックします。

HTTP 認証情報の使用

次の 2 つの方法のどちらかで Kubernetes 認証情報を取得します。

  • コマンドラインで次のコマンドを入力します。その際、[CLUSTER_NAME] はクラスタ名、[ZONE] は使用するゾーンにそれぞれ置き換えます。

    gcloud container clusters describe [CLUSTER_NAME] --zone [ZONE] | grep password
    
  • Google Cloud Platform Console で、メニューの [Kubernetes Engine] をクリックし、次にクラスタ名をクリックします。[認証情報を表示] をクリックすると認証情報をコピーできます。

続いて、次の手順に沿って HTTP 認証情報を設定します。

  1. Jenkins で、左のナビゲーションにある [認証情報] をクリックし、[システム] をクリックします。

  2. [グローバル認証情報(無制限)] をクリックします。

  3. 左のナビゲーションで [認証情報の追加] をクリックします。

  4. [種類] プルダウンから [ユーザー名とパスワード] を選択します。

  5. ユーザー名とパスワードを入力します。

  6. [OK] ボタンをクリックします。

ビルド エグゼキュータの構成

Jenkins ビルド エグゼキュータはビルドステップが実行される環境を定義します。Kubernetes Engine で Jenkins を実行すると、Kubernetes プラグインは、ビルドごとの既存の Docker イメージに基づいた軽量エグゼキュータを作成して削除します。Jenkins が提供するエグゼキュータのイメージは一般的なものです。エグゼキュータを調整すると、ビルドをより効率的に作成できます。

  1. Jenkins で、左のナビゲーションから [Jenkins の管理] をクリックします。次に [システムの構成] をクリックします。

  2. [# of executors] に「0」と入力します。この値を 0 に設定すると、すべてのビルドが Jenkins マスターではなく新たにプロビジョニングされたコンテナで実行されます。

  3. 画面の一番下までスクロールし、[Add a new cloud] プルダウンをクリックして [Kubernetes] を選択します。

  4. [Name] フィールドに「kubernetes」と入力します。

  5. [Kubernetes URL] フィールドで次の操作を行います。

    • Kubernetes Engine または Kubernetes クラスタ内で Jenkins を実行できるように設定してある場合は、次の値を入力します。

      https://kubernetes.default
      
    • Jenkins マスターを Kubernetes クラスタ外からプロビジョニングした場合、次の 2 つのオプションのいずれかを使用して Kubernetes URL を取得します。

      1. 以下のコマンドを実行します。

        kubectl cluster-info
        

        Kubernetes master の横にリストされた完全 URL を使用します。

      2. Google Cloud Platform Console で、メニューの [Kubernetes Engine] をクリックし、次にクラスタ名をクリックします。Kubernetes URL には次の文字列を使用します。[ENDPOINT]エンドポイントの値で置き換えてください。

        https://[ENDPOINT]
        
  6. このトピックで先に設定した認証方法を [Credentials] プルダウンから選択します。

  7. [Jenkins URL] フィールドで次の操作を行います。

    • Kubernetes Engine または Kubernetes クラスタ内で Jenkins を実行できるように設定してある場合は、次の値を入力します。

      http://jenkins-ui.jenkins.svc.cluster.local:8080
      
    • 設定していない場合は、次の形式で URL を入力します。[JENKINS_HOST] は実際の Jenkins の IP アドレスまたはホスト名で置き換えます。

      http://[JENKINS_HOST]:8080
      
  8. [Jenkins tunnel] フィールドで、次の操作を行います。

    • Kubernetes Engine または Kubernetes クラスタ内で Jenkins を実行できるように設定してある場合は、次の値を入力します。

      jenkins-discovery.jenkins.svc.cluster.local:50000
      
    • 設定していない場合は、次の形式で URL を入力します。[JENKINS_HOST] は実際の Jenkins の IP アドレスまたはホスト名で置き換えます。

      [JENKINS_HOST]:50000
      

      Kubernetes の構成

  9. [Add Pod Template] プルダウンから [Kubernetes Pod Template] をクリックします。ポッド テンプレートはビルドを実行するエグゼキュータのクラスを定義します。

  10. [Name] フィールドに名前を入力します。

  11. [Labels] フィールドにオプションの値を入力します。形式は文字列のスペース区切りリストです。Jenkins ジョブは、ラベルを追加することで、ジョブのユースケースに最も適合するエグゼキュータを使用できます。たとえば、次の値を入力できます。

    debian-9 docker-enabled gcloud-installed
    
  12. [Docker image] フィールドに Docker イメージのパスを入力します。Docker イメージはビルド スクリプトが実行される環境を定義します。独自のイメージパスを使用するか、次のパスを入力して Cloud SDK を含む既製のイメージを使用します。

    gcr.io/cloud-solutions-images/jenkins-k8s-slave
    

    Kubernetes ポッドの構成

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...