使用 Delivery Pipeline 專用工作者節點

DevOps Insights 將於 2026 年 8 月 31 日結束服務並停止運作。Continuous Delivery 將於 2027 年 2 月 12 日在以下地區停止運作:au-sydca-torus-east。 Code Risk Analyzer 也將於該日於所有地區停止提供服務。 若某個區域未實際使用這些功能,該區域中的功能可能會提前停用,並停止接受新的實例。 了解更多

Delivery Pipeline 會使用公用及專用工作者節點來執行管線工作。 依預設,管線工作是藉由在 IBM 管理的公用共用基礎架構上,使用公用工作者節點來執行。

在某些情境下,您的 Delivery Pipeline 可能需要存取內部或內部部署資源。 在這些情況下,您可以連接及整合「Delivery Pipeline 專用工作者節點」,以在您自己的 Kubernetes 基礎架構上執行。

必要條件

在設定專用工作者節點之前,請確定您具備下列資源:

  • Kubernetes 叢集。 您必須具有叢集,才能安裝專用工作者節點。 您可以提供自己的叢集,或者透過 IBM Cloud Kubernetes Service建立叢集

  • 選用。 具有管線的工具鏈,且該管線至少包含一個階段。 您可以使用 Delivery Pipeline 專用工作者節點工具整合來建立工具鏈。 也可以使用開發 Kubernetes 應用程式工具鏈範本來建立工具鏈:

    1. 登入 IBM Cloud
    2. 前往 https://cloud.ibm.com/devops/create 並選取「開發 Kubernetes 應用程式」工具鏈範本。
    3. 填寫 Delivery Pipeline 的欄位。
    4. 按一下建立以建立 Kubernetes 應用程式工具鏈。

設定 Delivery Pipeline 專用工作者節點

工具鏈提供一組整合式工具來建置、部署及管理應用程式。 工具整合是工具鏈的構成要素。 包含在具有一個或多個私有 Worker 整合的工具鏈中的管道,有額外的選項可用。 對於「標準」管線,這些選項在「階段配置」頁面的 工作者節點 標籤上可用。 對於 Tekton 管線,這些選項在 工作者節點 頁面上指定的設定內可用。

對於 Tekton 管線,您也可以為每個觸發程式指定一個工作者節點,這會置換在 工作者節點 頁面上的管線層次所配置的工作者節點。

請完成下列步驟來設定專用工作者節點:

  1. 為您的工具鏈配置「Delivery Pipeline 專用工作者節點」工具整合。
  2. 配置具有專用工作者節點的 Kubernetes 叢集。
  3. 在您的管線中使用專用工作者節點。

使用主控台來配置 Delivery Pipeline Private Worker 工具整合

請完成下列步驟,為您的工具鏈配置「Delivery Pipeline 專用工作者節點」工具整合:

  1. 從 IBM Cloud 控制台點擊選單圖示(漢堡圖示 )> 平台自動化 > 工具鏈。 在「工具鏈」頁面中,點選某個工具鏈以開啟其「概覽」頁面。

    a. 點擊「新增工具」。

    b. 在「工具整合」區段中,按一下 Delivery Pipeline 專用工作者節點

  2. 鍵入工具整合的名稱。 此名稱會在管線階段的工作者節點標籤中,識別專用工作者節點的儲存區。

  3. 鍵入服務 ID API 金鑰,以鑑別對工作佇列的存取權,有一個以上的專用工作者節點可以在此佇列中尋找工作。 如果您沒有服務 ID API 金鑰,請按一下建立為此專用工作者節點產生服務 ID API 金鑰。

  4. 按一下建立整合

  5. 從工具鏈的「概觀」頁面中,在 Delivery Pipeline 卡上,按一下 Delivery Pipeline 專用工作者。 即會顯示使用與此服務 ID 相關聯的 API 金鑰登錄的所有工作者的清單。

首次使用 Delivery Pipeline 專用工作者節點之前,工作者節點的清單是空的。

如需有關 Delivery Pipeline 私有 Worker 工具整合的更多資訊,請參閱《 設定 Delivery Pipeline 私有 Worker 》。

配置 Delivery Pipeline Private Worker 工具與 API 的整合

  1. 取得 IAM 持有人記號

  2. 判定您要新增 Delivery Pipeline 工具整合的工具鏈 的地區及 ID。

  3. 將 Delivery Pipeline「專用工作者」工具整合新增至工具鏈。

    curl -X POST \
      https://api.{region}.devops.cloud.ibm.com/toolchain/v2/toolchains/{toolchain_id}/tools \
      -H 'Authorization: Bearer {token}' \
      -H 'Accept: application/json` \
      -H 'Content-Type: application/json' \
        -d '{
        "tool_type_id": "private_worker",
        "parameters": {
          "name":"{tool_integration_name}", "workerQueueCredentials":"{sid_apikey}"
          }
      }'
    

下表列出並說明前一個步驟中使用的每一個變數。

用於新增Delivery Pipeline Private Worker 工具與 API 整合的變量
變數 說明
{region} 工具鏈所在的地區,例如 us-south
{tool_integration_name} 工具整合的名稱,例如 dev-worker
{toolchain_id} 要新增工具整合的工具鏈 ID。
{token} 一個有效的 IAM 承載者憑證。
{sid_apikey} 由專用工作者節點用來向工作佇列進行鑑別的服務 ID API 金鑰。

配置 Delivery Pipeline 專用工作者節點工具與 Terraform 的整合

  1. 若要安裝 Terraform CLI 並配置適用於 Terraform 的 IBM Cloud 提供者外掛程式,請遵循 開始使用 Terraform on IBM Cloud® 的指導教學。

  2. 建立一個名為 main.tf`` 的 Terraform 配置檔案。 在此檔案中,新增配置以使用 HashiCorp 配置語言來建立管線。 如需使用此配置語言的相關資訊,請參閱 Terraform 文件

    專用工作者節點必須屬於工具鏈。 您也可以 使用 Terraform 來建立工具鏈。

    下列範例會使用指定的 Terraform 資源來建立工具鏈及專用工作者節點。

    data "ibm_resource_group" "group" {
      name = "default"
    }
    resource "ibm_cd_toolchain" "my_toolchain" {
      name              = "terraform_toolchain"
      resource_group_id = data.ibm_resource_group.group.id
    }
    resource "ibm_cd_toolchain_tool_privateworker" "my_private_worker" {
      parameters {
         name = "terraform-private-worker"
         worker_queue_credentials = "{my_sid_apikey}"
      }
      toolchain_id = ibm_cd_toolchain.my_toolchain.id
    }
    

    如需 ibm_cd_toolchain_tool_privateworker 的相關資訊,請參閱 Terraform 登錄文件中的引數參照詳細資料。

  3. 必要的話,起始設定 Terraform CLI。

    terraform init
    
  4. 建立 Terraform 執行計劃。 此計劃彙總所有必須執行的動作,以建立具有專用工作者節點的工具鏈。

    terraform plan
    
  5. 套用 Terraform 執行計畫。 Terraform 會採取所有必要動作來建立工具鏈及專用工作者節點。

    terraform apply
    

配置您的 Kubernetes 叢集

配置具有專用工作者節點的 Kubernetes 叢集:

  1. 在 IBM Cloud 控制台中,點擊選單圖示(漢堡圖示),然後選擇 DevOps。 在「工具鏈」頁面中,點選某個工具鏈以開啟其「概覽」頁面。
  2. Delivery Pipeline 卡上,按一下您要配置的 Delivery Pipeline 專用工作者 工具整合。
  3. 按一下開始使用,然後遵循步驟,在 Kubernetes 叢集上安裝及登錄專用工作者節點。

在您的管線中使用 Delivery Pipeline 專用工作者節點

請完成下列步驟,以在您的管線中使用專用工作者節點:

  1. 從 IBM Cloud 控制台點擊選單圖示(漢堡圖示 )> 平台自動化 > 工具鏈。 在「工具鏈」頁面中,點選某個工具鏈以開啟其「概覽」頁面。

  2. 在「交付管道」卡片上,點選您要與私有工作器搭配使用的管道。

  3. 如果您使用標準管線,請在「管線」頁面上的階段上,按一下 階段配置 圖示。 然後,按一下 配置階段,並按一下 工作者節點 標籤。

  4. 如果您使用 Tekton 管線,請從您要指定工作者節點的觸發程式中選取「工作者」頁面。

  5. 選取您要在管線中使用的專用工作者節點。

    預設情況下,管線工作與管線執行會透過由 IBM 管理的共用工作執行個體池來執行,該池位於管線所定義的區域中。

  6. 按一下儲存

  7. 您可以手動執行「典型」管線階段或 Tekton 管線,也可以等待觸發程式開始管線執行。 使用相關聯 Kubernetes 叢集上指定的專用工作者節點來完成管線執行。 您可以檢視工作的日誌檔輸出或 Tekton 管線中的「執行詳細資料」頁面,以判定使用的工作者節點。

驗證 Delivery Pipeline 專用工作者節點輸出

如果您獲得指派工具鏈的「編輯者」角色,則可以在管線的「階段歷程」頁面中檢視管線執行日誌。

若您被指派了「工具鏈管理員」角色,或擁有工作節點叢集的存取權限,您也可以透過 kubectl CLI 驗證安裝中的 Kubernetes 資源。

私人工人產出
動作 指令
檢視叢集裡的名稱空間清單 $ kubectl get ns(管線執行中時)。 在管線工作執行期間,至少會傳回一個名稱空間,字首為 pw-。 例如,pw-f0fb3cdb-5173-4785-ae92-bb05268e041e
檢視正在執行管線工作的 Pod $ kubectl get pods -n pw-f0fb3cdb-5173-4785-ae92-bb05268e041e
在名為 pw-f0fb3cdb-5173-4785-ae92-bb05268e041e 的 Pod 中啟動 Bash 階段作業 kubectl -n pw-f0fb3cdb-5173-4785-ae92-bb05268e041e exec -it job-pod-e56e78 bash

修改 Delivery Pipeline 專用工作者節點工具整合認證

在設定專用工作者節點之後,您可以更新用於工具整合的認證。 如果這些認證遭到刪除、已過期或遭盜用,建議您變更這些認證。 您可以藉由建立新的服務 ID 或更新 API 金鑰來更新認證。

建立服務 ID

服務 ID 識別服務或應用程式的方式,與使用者 ID 識別使用者的方式相同。 您可以使用服務 ID 以讓在 IBM Cloud® 外面的應用程式能存取 IBM Cloud® 服務。 如需服務 ID 的相關資訊,請參閱建立及使用服務 ID

若要建立服務 ID,請完成下列步驟:

  1. 從 IBM Cloud 控制台點擊選單圖示(漢堡圖示 )> 平台自動化 > 工具鏈。 在「工具鏈」頁面中,點選某個工具鏈以開啟其「概覽」頁面。
  2. 在「交付管道」卡片上,點選您要修改的私有工作器工具整合項目,點選選單,然後點選「設定」以存取設定選項。
  3. 按一下建立
  4. 輸入服務 ID 的名稱及說明。
  5. 按一下儲存整合
  6. 在 DevOps 儀表板的工具鏈頁面上,按一下工具鏈來開啟其「概觀」頁面。
  7. 在「交付管道」卡片上,點選您要為其指定新使用者憑證的「Delivery Pipeline Private Worker」工具整合項目。
  8. 按一下開始使用,並完成步驟 2 及 3,以在您的叢集上登錄及驗證專用工作者節點。

更新 API 金鑰

API 金鑰是唯一的代碼,它會傳遞給 API 以識別呼叫 API 的應用程式或使用者。 為了避免 API 的惡意使用,您可以使用 API 金鑰來追蹤及控制 API 的使用方式。 如需 API 金鑰的相關資訊,請參閱瞭解 API 金鑰

請完成下列步驟來更新 API 金鑰,以便與「Delivery Pipeline 專用工作者節點」工具整合搭配使用:

  1. 從 IBM Cloud 控制台點擊選單圖示(漢堡圖示 )> 平台自動化 > 工具鏈。 在「工具鏈」頁面中,點選某個工具鏈以開啟其「概覽」頁面。
  2. 在「交付管道」卡片上,前往您要修改的「Delivery Pipeline」私有工作器,點擊選單,然後點擊 「設定」 以存取設定選項。
  3. 指定新的 API 金鑰。 建議您不要直接使用 API 金鑰。 請改為使用 Secrets Manager 來儲存 API 金鑰,並將該儲存金鑰的參照新增至專用工作者節點配置中。
  4. 按一下儲存整合

可以藉由刪除對應的 API 金鑰,來撤銷對專用工作者節點的存取權。 由於快取原則和失效作業,API 金鑰刪除之後可能需要最長 60 分鐘才能阻止工作執行。 如需刪除 API 金鑰的相關資訊,請參閱刪除服務 ID 的 API 金鑰

刪除 Delivery Pipeline 專用工作者節點

請完成下列步驟來刪除專用工作者節點:

  1. 從工作者節點的儲存區刪除專用工作者節點。
  2. 從您的 Kubernetes 叢集刪除專用工作者節點。

從工作者節點的儲存區刪除 Delivery Pipeline 專用工作者節點

請完成下列步驟,以從工作者節點的儲存區刪除專用工作者節點:

  1. 從 IBM Cloud 控制台點擊選單圖示(漢堡圖示 )> 平台自動化 > 工具鏈。 在「工具鏈」頁面中,點選某個工具鏈以開啟其「概覽」頁面。
  2. Delivery Pipeline 卡上,按一下您要配置的 Delivery Pipeline「專用工作者節點」工具整合。
  3. 按一下概觀
  4. 按一下您要刪除之專用工作者節點的功能表,以存取配置選項。
  5. 按一下移除,然後按一下確認

若您從工作執行者池中刪除所有私有工作執行者,後續的 Classic 管線階段執行將會失敗,且「No workers currently registered」訊息會顯示在「階段歷史紀錄」中。 對於 Tekton 管線,後續階段執行要求會放入佇列中,且在選取的工作者節點儲存區中有可用的工作者節點之前不會開始執行。

雖然從工具鏈刪除專用工作者節點工具整合,會阻止該工具鏈使用工作者節點儲存區,但其他工具鏈仍可能使用該工作者節點儲存區。 可以藉由刪除與「Delivery Pipeline 專用工作者節點」工具整合相關聯的服務 ID,從所有工具鏈刪除工作者節點儲存區。

從您的 Kubernetes 叢集刪除 Delivery Pipeline 專用工作者節點

若要在主控台刪除叢集裡的專用工作者節點,請完成下列步驟:

  1. 點選您要設定的「Delivery Pipeline Private Worker」工具整合項目。
  2. 按一下開始使用,並遵循步驟從您的叢集刪除專用工作者節點。

若要使用 CLI 刪除叢集裡的專用工作者節點,請執行下列指令:

kubectl delete --filename "https://private-worker-service.{REGION}.devops.cloud.ibm.com/install/worker?serviceId={SERVICE_ID}&apikey={APIKEY}&name={WORKER_NAME}"

使用主控台刪除 Delivery Pipeline Private Worker 工具整合

如果您從工具鏈刪除「Delivery Pipeline 專用工作者節點」工具整合,便無法復原刪除作業。

請完成下列步驟,以刪除「Delivery Pipeline 專用工作者節點」工具整合:

  1. 從 IBM Cloud 控制台點擊選單圖示(漢堡圖示 )> 平台自動化 > 工具鏈。 在「工具鏈」頁面中,點選某個工具鏈以開啟其「概覽」頁面。
  2. 在「交付管道」卡片上,點選您要刪除的「Delivery Pipeline Private Worker」工具整合項目,然後點選選單以存取設定選項。
  3. 若要從工具鏈刪除工具整合,請按一下刪除
  4. 按一下刪除來進行確認。 「Delivery Pipeline 專用工作者節點」工具整合即會從工具鏈移除,而且在 Delivery Pipeline「階段配置」頁面的工作者節點標籤中,不再提供此工具整合。

如果您從工具鏈刪除「Delivery Pipeline 專用工作者節點」工具整合,且專用工作者節點是針對管線階段而配置,則它仍會列在「階段配置」頁面的工作者節點標籤中。 不過,專用工作者節點會停用並標示為 REMOVED。 您必須選取不同的專用工作者節點(如果存在的話),或改用公用工作者節點。

刪除 Delivery Pipeline「專用工作者」工具與 API 的整合

  1. 取得 IAM 持有人記號

  2. 判定您要新增 Delivery Pipeline 工具整合的工具鏈 的地區及 ID。

  3. 從工具鏈中移除 Delivery Pipeline「專用工作者」工具整合。

    curl -X DELETE \
      https://api.{region}.devops.cloud.ibm.com/toolchain/v2/toolchains/{toolchain_id}/tools/{worker_id} \
      -H 'Authorization: Bearer {token}'
    

下表列出並說明前一個步驟中使用的每一個變數。

用於刪除Delivery Pipeline Private Worker 工具與 API 整合的變量
變數 說明
{region} 工具鏈所在的地區,例如 us-south
{worker_id} 要刪除之專用工作者節點工具的 ID。
{toolchain_id} 要新增工具整合的工具鏈 ID。
{token} 一個有效的 IAM 承載者憑證。

刪除 Delivery Pipeline 專用工作者節點工具與 Terraform 整合

  1. 找出包含現有管線之 resource 區塊的 Terraform 檔案 (例如,main.tf)。

    下列範例中的 resource 說明現有管線。

    data "ibm_resource_group" "group" {
      name = "default"
    }
    resource "ibm_cd_toolchain" "my_toolchain" {
      name              = "terraform_toolchain"
      resource_group_id = data.ibm_resource_group.group.id
    }
    resource "ibm_cd_toolchain_tool_privateworker" "my_private_worker" {
      parameters {
         name = "terraform-private-worker"
         worker_queue_credentials = "{my_sid_apikey}"
      }
      toolchain_id = ibm_cd_toolchain.my_toolchain.id
    }
    
  2. 從 Terraform 檔案中移除 ibm_cd_toolchain_privateworker resource 區塊。

  3. 必要的話,起始設定 Terraform CLI。

    terraform init
    
  4. 建立 Terraform 執行計劃。 此計劃彙總所有必須執行的動作,以建立具有專用工作者節點的工具鏈。

    terraform plan
    
  5. 套用 Terraform 執行計畫。 Terraform 會採取所有必要動作,以從工具鏈中移除專用工作者節點。

    terraform apply
    

因為專用工作者代理程式可以在其他工具鏈中使用,所以它會保留在叢集上,直到您刪除它為止。

檢視 Delivery Pipeline 專用工作者節點狀態

您可以檢視叢集上的專用工作者節點狀態,以驗證專用工作者節點是否已登錄,以及它是否使用有效的 API 金鑰。 在起始專用工作者節點登錄期間,會設定專用工作者節點登錄及 API 金鑰指派。 這些設定可讓專用工作者節點與 IBM Cloud® Continuous Delivery 架構進行通訊,並視為「作用中」。

請完成下列步驟,以檢視其安裝所在叢集上的專用工作者節點狀態:

  1. 以授權使用者身分登入管理工作者節點的叢集。

  2. 執行下列指令,以列出在叢集上登錄的所有代理程式:

    kubectl get workeragents
    

    以下是針對每位代理人的相關資訊:

    • 名稱: 為此工作者登錄的名稱。
    • ServiceID:該工作人員的 serviceId
    • 代理程式: 指定 OK 或顯示錯誤訊息,以指出工作者代理程式在叢集上是否正常運作。
    • 已登錄: 工作者的登錄狀態,例如 SucceededUnregistered
    • 版本: 此工作者的版本,適用於架構所使用的現行版本,例如 OKOutdatedUnsupported
    • 鑑別: 工作者所使用 API 金鑰的有效性,例如 OKError
    • 受限: 指出是否存在任何叢集問題,透過指定 OK 或顯示錯誤訊息來影響工作者節點。
    • 已暫停: 指出代理程式是否主動透過指定 truefalse 來搜尋新作業。

若要驗證已登錄專用工作者節點儲存區的整體狀態,請從使用它的工具鏈中檢查 Delivery Pipeline 專用工作者節點的「概觀」頁面。

  1. 從 IBM Cloud 控制台點擊選單圖示(漢堡圖示 )> 平台自動化 > 工具鏈。 在「工具鏈」頁面中,點選某個工具鏈以開啟其「概覽」頁面。

  2. Delivery Pipeline 卡上,按一下您要檢視其所有已登錄工作者節點清單的專用工作者節點工具整合。 此工作者節點儲存區包含一個以上安裝在不同叢集上但共用 ServiceId 的專用工作者節點。 將工作指派給專用工作者節點儲存區時,儲存區中列出的任何專用工作者節點都有資格執行工作量。

    針對在此儲存區中登錄的每一個工作者節點提供下列資訊:

    • 名稱: 已登錄工作者的名稱。
    • 狀態:工作者的當前狀態。
    • 版本: 工作者的現行版本。 如果現行版本已過期,則會顯示通知。
    • Tekton 版本: Tekton 發行版本。
    • 叢集: 工作者節點登錄所在的叢集名稱 (如果有的話)。
    • 前次作用中: 代理程式前次報告的時間。

    私營部門的員工可能具有以下其中一種身分:

    • active: 專用工作者節點正常運作。
    • inactive: 專用工作者節點已離線。 請檢查叢集。 您可能需要重新登錄專用工作者節點。
    • unsupported: 不再支援使用中的專用工作者節點版本。 專用工作者節點無法執行,您必須更新至最新版本。

更新 Delivery Pipeline 專用工作者節點

完成下列步驟,以將專用工作者節點更新為使用最新版本:

  1. 以授權使用者身分登入管理工作者節點的叢集。
  2. 執行下列指令:
kubectl apply --filename "https://private-worker-service.{REGION}.devops.cloud.ibm.com/update"

Delivery Pipeline 專用工作者節點映像檔

專用工作者安裝 Script 會從廣域 IBM Cloud® Container Registry取回必要的映像檔。 它會取回管線專用工作者及個別 Tekton 架構映像檔的最新映像檔,其中包括任何找到的漏洞的修正程式。

管道私有工作節點的 URL 圖像為 icr.io/continuous-delivery/pipeline/pipeline-private-worker:<agent version>

專用工作者節點安裝也會將下列支援開放程式碼映像檔取回至叢集:

icr.io/continuous-delivery/pipeline/tekton/controller
icr.io/continuous-delivery/pipeline/tekton/entrypoint
icr.io/continuous-delivery/pipeline/tekton/nop
icr.io/continuous-delivery/pipeline/tekton/sidecarlogresults
icr.io/continuous-delivery/pipeline/tekton/events
icr.io/continuous-delivery/pipeline/tekton/workingdirinit
icr.io/continuous-delivery/pipeline/tekton/powershell
icr.io/continuous-delivery/pipeline/tekton/resolvers
icr.io/continuous-delivery/pipeline/tekton/webhook

專用工作者代理程式也會使用下列內部映像檔:

icr.io/continuous-delivery/pipeline/pipeline-private-worker-util
icr.io/continuous-delivery/pipeline/tekton/kubectl-jq
icr.io/continuous-delivery/pipeline/tekton/ubi
icr.io/continuous-delivery/pipeline/tekton/base

支援先前的 Delivery Pipeline Private Worker 映像檔

若要利用現行特性及修正程式,並維護完整相符性,建議您將專用工作者節點映像檔保持最新。

對於專用工作者節點映像檔的每一個後續版本,都會更新版本號碼。

  • 代理程式變更會導致次要版本增量,例如 14.11版的 14.10 版變更。
  • 新的 Tekton 架構變更會導致主要版本增量,例如 14.11 版變更為 15.0版。

IBM Cloud® Continuous Delivery 支援現行專用工作者節點映像檔的 n-1 主要版本。 例如,如果現行映像檔是 14.x版,則也容許執行舊版 13.x 映像檔。 管線工作者映像檔的主要版本增加至 15.x之後,容許 14.x 版映像檔,但任何 13.x 版或更早版本的映像檔都視為過時。