Delivery Pipeline プライベート・ワーカーのインストール

DevOps Insights 2026年8月31 日にサービス終了となり、提供が中止されます。 Continuous Delivery は、2027年2月12日に以下のリージョンで提供が中止されます: au-sydca-torus-east。 また、同日をもって、Code Risk Analyzerもすべての地域で提供を終了いたします。 あるリージョンでこれらの機能が実際に利用されていない場合、そのリージョンの機能は早期に提供が終了し、新しいインスタンスの受け入れが停止される可能性があります。 詳細はこちら

Delivery Pipeline プライベート・ワーカーをインストールして登録すると、IBM Cloud® Continuous Delivery の開発チームがツールチェーン構成でプライベート・ワーカーを使用できるようになります。 開発者は、インバウンド・ネットワーク接続を使用せずに、プライベート・ワーカーのインストール環境のネットワーク範囲でワークロードを実行できます。

Delivery Pipeline は、パブリック・ワーカーとプライベート・ワーカーを使用してパイプライン・ジョブを実行します。 デフォルトでは、IBM 管理対象のパブリック共有インフラストラクチャー上ではパブリック・ワーカーを使用してパイプライン・ジョブが実行されます。 パイプライン・ジョブは、(IBM 内外の) パブリック・ネットワーク上のリソースにしかアクセスできず、ジョブ 1 つあたりの実行時間は 60 分に制限されます。

特定のシナリオでは、Delivery Pipeline が内部リソースまたはオンプレミス・リソースへのアクセス権を必要とする場合があります。 このような状況の場合、Delivery Pipeline プライベート・ワーカーに接続して統合し、独自の Kubernetes インフラストラクチャー上で実行できます。

プライベート・クラスターにインストールされているプライベート・ワーカー・エージェントは、IBM がホストするプライベート・ワーカー・サービスに対してのみデータを要求します。 データ・フローは片方向であり、エージェントからのみ発生します。

前提条件

プライベート・ワーカーをインストールする前に、認証鍵を作成する IBM Cloud® アカウントがあることを確認してください。 管理者のデスクトップ・コンピューターにインストールされている最新の kubectl バージョンが必要です。 また、プライベートワーカーをインストールするには、管理者権限を持つ Kubernetes クラスター (バージョン 1.15 以降)も必要です。

  • Kubernetes クラスターの推奨構成:

    • IBM Cloud Kubernetes Service IBM Cloud Public上でワークロードを隔離して実行するには、 以降のバージョンが必要です。 1.21
    • Red Hat® OpenShift® on IBM Cloud® バージョン 4.9 以降。
  • ネットワーク・アクセス:

    • インバウンド: 必須ではありません。

    • アウトバウンドのネットワークアクセスには、 (TCP:443) が使用されます。ここで、リージョンはデリバリーパイプラインの所在地と一致し、 au-syd (オーストラリア・シドニー)、 eu-de (ドイツ・フランクフルト)、 eu-gb (イギリス・ロンドン)、 jp-tok (日本、東京)、 us-south (米国、ダラス)、 us-east (米国、 Washington DC )、 br-sao (サンパウロ)、または ca-tor (カナダ、トロント)のいずれかです。 例えば、フランクフルト・リージョンでは https://private-worker-service.eu-de.devops.cloud.ibm.com (TCP:443) を指定します。 API キーの検証のためにグローバル・エンドポイントにネットワーク・アクセスを行う場合は、https://iam.cloud.ibm.com (TCP:443) を使用します。

  • icr.io からイメージをプルする権限。 プライベート・ワーカーは tekton-pipelines インフラストラクチャーを必要とするので、プライベート・ワーカーをインストールするには、icr.io から tekton-releases イメージをプルできなければなりません。

    icr.io コンテナ・レジストリからイメージを引き出すには、 特定の Kubernetes ClusterImagePolicy を定義する 必要があるかもしれない。

プライベートワーカーは Red Hat OpenShift パイプラインと互換性がないため、 Red Hat OpenShift パイプラインが稼働しているクラスターには、これらをインストールしないことをお勧めします。

Delivery Pipeline プライベート・ワーカーのインストール

プライベート・ワーカーをインストールするには、クラスターに対する管理者レベルのアクセス権限が必要です。 プライベート・ワーカーのインストールは、グラフィカル・ユーザー・インターフェースが使用できないため、コマンド・ラインを使用してのみ実行できます。

CLI を使用した Delivery Pipeline プライベート・ワーカーのインストール

以下の手順は、複数の人またはチームのために環境およびプライベート・ワーカーを準備する管理者を対象としています。 自分専用のプライベート・ワーカーをインストールする場合は、Delivery Pipeline プライベート・ワーカーのセットアップを参照してください。

クラスタへの直接インストール

フレームワークをクラスターに直接インストールするには、クラスターに対する管理者権限が必要です。 IBM Cloud CLI から、次のコマンドを入力します。

kubectl apply --filename "https://private-worker-service.{REGION}.devops.cloud.ibm.com/install"

{REGION} はツールチェーンのパイプラインの場所です。 {REGION} には、以下のいずれかの値を指定できます:

  • au-syd (オーストラリア、シドニー)
  • eu-de (ドイツ・フランクフルト)
  • eu-gb (ロンドン、イギリス)
  • jp-tok (日本・東京)
  • us-south (米国・ダラス)
  • us-east (米国 Washington DC )
  • ca-tor (カナダ・トロント)
  • br-sao (ブラジル、サンパウロ)

ファイアウォールで保護されたクラスタに直接インストールする

フレームワークをクラスターに直接インストールするには、クラスターに対する管理者権限が必要です。 IBM Cloud CLI から、次のコマンドを入力します。

kubectl apply --filename "https://private-worker-service.{REGION}.devops.cloud.ibm.com/install?private=true"

{REGION} はツールチェーンのパイプラインの場所です。 {REGION} には、以下のいずれかの値を指定できます:

  • au-syd (オーストラリア、シドニー)
  • eu-de (ドイツ・フランクフルト)
  • eu-gb (ロンドン、イギリス)
  • jp-tok (日本・東京)
  • us-south (米国・ダラス)
  • us-east (米国 Washington DC )
  • ca-tor (カナダ・トロント)
  • br-sao (ブラジル、サンパウロ)

この機能を使用するには、VRF が有効な IBM Cloud アカウントが必要です。

Kubernetes クラスターを追加してこのプロセスを繰り返すことで、プライベートワーカーのプールを構築することができる。 負荷はプール内のすべてのワーカーで共有される。

Delivery Pipeline プライベート・ワーカーの登録

サービス ID の作成

サービス ID は、一緒に動作するプライベート・ワーカーが 1 つ以上含まれたプールを表します。 最初は 1 つのプライベート・ワーカー・インストール環境を登録し、その後で同じサービス ID を再利用して同じグループにプライベート・ワーカーを追加登録することができます。 同じグループに複数のプライベート・ワーカーを登録すると、プライベート・ワーカーのキャパシティーの可用性と水平方向の拡張性が向上します。 サービス IDについて詳しくは、サービス ID の作成および処理を参照してください。

コンソールでのサービス ID の作成

  1. IBM Cloud にログインします。
  2. https://cloud.ibm.com/iam/serviceidsに進みます。
  3. 「作成」 をクリックします。
  4. サービス ID の名前と説明を入力します。 プライベート・ワーカーのプールのサービス ID を作成する場合は、プライベート・ワーカー・プールの名前 (Acme 用のパイプライン・プライベート・ワーカーなど) を指定します。
  5. 「作成」 をクリックします。
  6. 後で使用できるようにサービス ID を保存します。 Delivery Pipeline プライベート・ワーカーのインストール環境でターゲットにする Kubernetes クラスターに、このサービス ID が必要になります。

CLI を使用したサービス ID の作成

IBM Cloud CLI から、次のコマンドを入力します。

$ ibmcloud iam service-id-create {worker-pool-name} -d "{worker-pool-description}"
Creating service ID {worker-pool-name} bound to current account as username@domain.com...OK
Service ID {worker-pool-name} is created successfully
Name           {worker-pool-name}
Description    {worker-pool-description}
CRN            crn:v1:bluemix:public:iam-identity::a/8d63fb1cc5e99e86dd7229dddff75fef::serviceid:ServiceId-38ffff31-3ea3-4ecc-9732-190f7a993097
Bound To       crn:v1:bluemix:public:::a/8d63fb1cc5e99e86dd7229dddff75fef:::
Version        1-6df15bde97b6e87f583a557f8731888f
Locked         false
UUID         ServiceId-38ffff31-3ea3-4ecc-9732-190f7a993097

API キーの作成

API キーは、API を呼び出しているアプリケーションまたはユーザーを識別するために API に渡される固有のコードです。 API の悪用を防ぐために、API キーを使用して、API の使用を追跡および制御できます。 API キーについて詳しくは、『API キーの処理』を参照してください。

コンソールでの API キーの作成

  1. IBM Cloud にログインします。
  2. https://cloud.ibm.com/iam/serviceidsに進みます。
  3. API を作成するサービス ID を選択します。
  4. **「API キー」タブで、「作成」**をクリックします。
  5. プライベート・ワーカー・インストール環境を示す API キーの名前と説明 (IBM Cloud Private のパイプライン・プライベート・ワーカーなど) を入力します。
  6. 「作成」 をクリックします。
  7. API キーをコピーまたはダウンロードします。 作成後に API キーをもう一度取得することはできません。

CLI を使用した API キーの作成

IBM Cloud CLI から、次のコマンドを入力します。

$ ibmcloud iam service-api-key-create {worker-api-key-name} (SERVICE\_ID\_NAME|SERVICE\_ID\_UUID) \[-d, --description DESCRIPTION\] \[--file OUT_FILE\]
Creating API key  {worker-api-key-name} of service
SERVICE\_ID\_NAME as username@domain.com...
OK
Service API key {worker-api-key-name} is created
Successfully saved API key information to FILE
Please preserve the API key! It cannot be retrieved after it's created.
Name           {worker-api-key-name}
Description    Description
Bound To       crn:v1:bluemix:public:iam-identity::a/2cac145ae78048679b129009cfe8c7f9::serviceid:ServiceId-9a6a14e5-5811-4c2c-9131-0e1d4bb7dfe1
Created At     2019-07-04T10:51+0000
API Key        doJX9kORc4q5PRkH19H3lePDwYRAKNWk4XlIuEBrriOD
Locked         false
UUID           ApiKey-c1ee0fb5-90f2-476e-a260-a796e6d7f5f7

プライベート・ワーカーの IBM Cloud への登録

プライベートワーカーを IBM Cloud に登録する前に、 プライベートワーカーフレームワークをデプロイする 必要があります。 登録コマンドを使用するには、プライベート・ワーカーを既にインストールした Kubernetes クラスターに (kubectl を使用して) ログインする必要があります。

プライベート・ワーカーは、有効にするデリバリー・パイプラインの場所に対応する特定の IBM Cloud リージョンに登録する必要があります。

  1. プライベート・ワーカーにわかりやすい名前を指定します。 この名前は、先頭と末尾が小文字の英数字でなければならず、また、_ 文字または . 文字を含めることができます。
  2. 前に作成したサービス ID と API キー、プライベート・ワーカー名、およびツールチェーンのパイプラインのロケーションである {REGION} を使用して、以下のコマンドを実行します。
$ kubectl create secret generic {WORKER_NAME}-auth -n default --from-literal=apikey={API_KEY} && kubectl apply --filename "https://private-worker-service.{REGION}.devops.cloud.ibm.com/install/worker?serviceId={SERVICE_ID}&name={WORKER_NAME}"
workeragent.devops.cloud.ibm.com/worker-name created
secret/worker-name-auth created
`{REGION}` には、以下のいずれかの値を指定できます:

  * `au-syd` (オーストラリア、シドニー)
  * `eu-de` (ドイツ・フランクフルト)
  * `eu-gb` (ロンドン、イギリス)
  * `jp-tok` (日本・東京)
  * `us-south` (米国・ダラス)
  * `us-east` (米国 Washington DC )
  * `ca-tor` (カナダ・トロント)
  * `br-sao` (ブラジル、サンパウロ)

  1. プライベートエンドポイントを使用するエージェントを登録するには、オプションの private クエリパラメータを以下のように使用する:
   $ kubectl create secret generic {WORKER_NAME}-auth -n default --from-literal=apikey={API_KEY} && kubectl apply --filename "https://private-worker-service.{REGION}.devops.cloud.ibm.com/install/worker?serviceId={SERVICE_ID}&name={WORKER_NAME}&private=true"

{REGION} には、以下の値のいずれかを指定する必要があります:

  * フランクフルト `eu-de`
  * ロンドン `eu-gb`
  * ダラス `us-south`
  * ワシントン DC `us-east`

注:ホストクラスタがファイアウォールで保護された環境にある場合、エージェントの登録時に「 private 」クエリパラメータの使用が必須となります。

  1. エージェントが正しく登録されたことを確認するために、以下のコマンドを入力します。
$ kubectl get workeragents
NAME           SERVICEID     AGENT   REGISTERED   VERSION   AUTH   CONSTRAINED   PAUSED
<worker_name>  <ServiceId>   OK      Succeeded    OK        OK     false         false

プライベート・ワーカーは、 default 名前空間にインストールされます。 これらを tekton-pipelines 名前空間にインストールしてはなりません。 この名前空間は、Tekton フレームワークおよびエージェント・デプロイメント用に予約されています。 default 名前空間とは異なる名前空間にワーカー・エージェントをインストールすると、予期しない副次作用が発生する可能性があります。

プライベート・エンドポイントを使用するための Delivery Pipeline プライベート・ワーカーの構成

デフォルトでは、プライベート・ワーカーは通信にパブリック・エンドポイントを使用します。 クラスター管理者は、プライベート・ワーカーと IBM Cloud® Continuous Delivery サービスの間の通信でパブリック・インターネットが使用されないように、プライベート・ワーカーの構成を更新してプライベート・エンドポイントを使用させることができます。

  1. クラスターにインストールされているエージェントの名前を取得します。
kubectl get workeragents -n default
  1. そのエージェントの apiUrl を変更します。
kubectl patch workeragent {WORKER_NAME} --type='merge' -p '{"spec": {"apiUrl":"https://private-worker-service.private.{REGION}.devops.cloud.ibm.com"}}'

{REGION} はツールチェーンのパイプラインの場所です。 プライベート・エンドポイントは、以下のリージョンで使用できます。

* ダラス `us-south`
* ワシントン `us-east`
* フランクフルト `eu-de`
* ロンドン `eu-gb`

この機能を使用するには、VRF が有効な IBM Cloud アカウントが必要です。

  1. オプション。 エージェントにパブリック・エンドポイントを使用するように戻すには、以下のコマンドを入力します。
kubectl patch workeragent {WORKER_NAME} -n default --type='merge' -p '{"spec": {"apiUrl":"https://private-worker-service.{REGION}.devops.cloud.ibm.com"}}'

Satellite リンク・エンドポイントを使用するための Delivery Pipeline プライベート・ワーカーの構成

デフォルトでは、プライベート・ワーカーは通信にパブリック・エンドポイントを使用します。 クラスター管理者は、プライベート・ワーカーと Continuous Delivery サービスの間の通信が Satellite リンク・エンドポイントを経由するように、 Satellite リンク・エンドポイントを使用するようにプライベート・ワーカー構成を更新できます。

  1. IBM Cloud® Continuous Delivery サービスのクラウド Satellite リンク・エンドポイントを作成 し、以下の値を使用するように FQDN および Service indication name を設定します。
private-worker-service.{REGION}.devops.cloud.ibm.com

{REGION} はツールチェーンのパイプラインの場所です。

  1. パブリック・エンドポイントを Satellite リンク・エンドポイントにマップする構成マップを、プライベート・ワーカーの名前空間に作成します。
apiVersion: v1
kind: ConfigMap
metadata:
   name: pipelineworker-url-map
data:
   iam.cloud.ibm.com: <default IAM satellite link endpoint for your satellite location>
   private-worker-service.{REGION}.devops.cloud.ibm.com: <satellite link endpoint created in step 1)>

コンフィグマップにエンドポイントを追加することができる。例えば、 デフォルトの Satellite リンクエンドポイントである

Delivery Pipeline プライベート・ワーカーのインストール環境の更新

プライベート・ワーカーが非アクティブと報告される場合は、インストールを更新する必要があります。

プライベートワーカーのバージョンを確認するには、次のいずれかのコマンドを入力してください:

  • IBM Cloud Kubernetes Service: kubectl -n tekton-pipelines describe deploy private-worker-agent | grep Image
  • Red Hat® OpenShift® on IBM Cloud®: kubectl -n openshift-operators describe deploy private-worker-agent-controller-manager | grep Image

プライベート・ワーカーのインストール環境を更新するには、以下の手順を実行します。

  1. もう一度インストール・コマンドを実行します。
  2. もう一度 Kubernetes クラスターのプライベート・ワーカーを登録します。

既存のプライベート・ワーカーに使用した apikey を再利用できます。

Delivery Pipeline Private Workersの詳細については、 Delivery Pipeline Private Workersのトラブルシューティング および Pipeline Private WorkersのFAQを 参照してください。