Delivery Pipeline プライベート・ワーカーのインストール
DevOps Insights 2026年8月31 日にサービス終了となり、提供が中止されます。 Continuous Delivery は、2027年2月12日に以下のリージョンで提供が中止されます: au-syd、 ca-tor、 us-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 の作成
- IBM Cloud にログインします。
- https://cloud.ibm.com/iam/serviceidsに進みます。
- 「作成」 をクリックします。
- サービス ID の名前と説明を入力します。 プライベート・ワーカーのプールのサービス ID を作成する場合は、プライベート・ワーカー・プールの名前 (Acme 用のパイプライン・プライベート・ワーカーなど) を指定します。
- 「作成」 をクリックします。
- 後で使用できるようにサービス 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 キーの作成
- IBM Cloud にログインします。
- https://cloud.ibm.com/iam/serviceidsに進みます。
- API を作成するサービス ID を選択します。
- **「API キー」タブで、「作成」**をクリックします。
- プライベート・ワーカー・インストール環境を示す API キーの名前と説明 (IBM Cloud Private のパイプライン・プライベート・ワーカーなど) を入力します。
- 「作成」 をクリックします。
- 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 リージョンに登録する必要があります。
- プライベート・ワーカーにわかりやすい名前を指定します。 この名前は、先頭と末尾が小文字の英数字でなければならず、また、
_文字または.文字を含めることができます。 - 前に作成したサービス 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` (ブラジル、サンパウロ)
- プライベートエンドポイントを使用するエージェントを登録するには、オプションの
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 」クエリパラメータの使用が必須となります。
- エージェントが正しく登録されたことを確認するために、以下のコマンドを入力します。
$ 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 サービスの間の通信でパブリック・インターネットが使用されないように、プライベート・ワーカーの構成を更新してプライベート・エンドポイントを使用させることができます。
- クラスターにインストールされているエージェントの名前を取得します。
kubectl get workeragents -n default
- そのエージェントの
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 アカウントが必要です。
- オプション。 エージェントにパブリック・エンドポイントを使用するように戻すには、以下のコマンドを入力します。
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 リンク・エンドポイントを使用するようにプライベート・ワーカー構成を更新できます。
- IBM Cloud® Continuous Delivery サービスのクラウド Satellite リンク・エンドポイントを作成 し、以下の値を使用するように
FQDNおよびService indication nameを設定します。
private-worker-service.{REGION}.devops.cloud.ibm.com
{REGION} はツールチェーンのパイプラインの場所です。
- パブリック・エンドポイントを 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
プライベート・ワーカーのインストール環境を更新するには、以下の手順を実行します。
- もう一度インストール・コマンドを実行します。
- もう一度 Kubernetes クラスターのプライベート・ワーカーを登録します。
既存のプライベート・ワーカーに使用した apikey を再利用できます。
Delivery Pipeline Private Workersの詳細については、 Delivery Pipeline Private Workersのトラブルシューティング および Pipeline Private WorkersのFAQを 参照してください。