安裝 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 內部和外部)上的資源,並且每個工作的執行時間限制為 60 分鐘。
在某些情境下,您的 Delivery Pipeline 可能需要存取內部或內部部署資源。 在這些情況下,您可以連接及整合「Delivery Pipeline 專用工作者節點」,以在您自己的 Kubernetes 基礎架構上執行。
安裝在專用叢集上的專用工作者節點代理程式只會從 IBM管理的專用工作者節點服務要求資料。 資料流程是單向的,且僅源自代理程式。
必要條件
在安裝專用工作者節點之前,請務必要有 IBM Cloud® 帳戶,以便建立鑑別金鑰。 您需要在管理者的桌上型電腦上安裝最新的 kubectl 版本。 此外,您還必須擁有一個具備管理員權限的 Kubernetes 叢集 (版本為 1.15 或更高),才能安裝私有工作節點。
-
建議的 Kubernetes 叢集配置:
- IBM Cloud Kubernetes Service 需使用 1.21 或更高版本,方能在 IBM Cloud Public上以隔離模式執行工作負載。
- Red Hat® OpenShift® on IBM Cloud® 4.9 版或更新版本。
-
網路存取權:
-
入埠: 不需要。
-
外向網路存取使用
(TCP:443),其中區域與傳輸管道的位置相符,且為以下任一網址:au-syd(澳洲雪梨)、eu-de(德國法蘭克福)、eu-gb(英國倫敦)、jp-tok(日本東京)、us-south(美國達拉斯)、us-east(美國華盛頓特區)、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。
由於 private workers 與 Red Hat OpenShift Pipelines 不相容,因此建議您不要將其安裝在具有 Red Hat OpenShift pipelines 的群集上。
安裝 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(美國華盛頓特區)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(美國華盛頓特區)ca-tor(加州多倫多)br-sao(巴西聖保羅)
您必須擁有已 啟用 VRF 的 IBM Cloud 帳戶,才能使用此功能。
可以在其他 Kubernetes 集群上重複此過程,建立私人工作者池。 負載將由池中的所有工作人員分擔。
登錄 Delivery Pipeline 專用工作者節點
建立服務 ID
服務 ID 代表可一起運作的一個以上專用工作者節點組成的儲存區。 一開始可以登錄一個專用工作者節點安裝,然後藉由重複使用相同的服務 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 註冊私有 Worker 之前,您必須 部署私有 Worker 框架。 若要使用登錄指令,您必須(使用 kubectl)登入到先前安裝了專用工作者節點的 Kubernetes 叢集。
您必須向對應於要啟用之 Delivery Pipeline 位置的特定 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` (美國華盛頓特區)
* `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`
* 華盛頓哥倫比亞特區 `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"}}'
配置 Delivery Pipeline 專用工作者節點以使用 Satellite 鏈結端點
依預設,專用工作者節點會使用公用端點進行通訊。 叢集管理者可以更新專用工作者節點配置以使用 Satellite 鏈結端點,以便專用工作者節點與 Continuous Delivery 服務之間的通訊通過 Satellite 鏈結端點。
- 針對 IBM Cloud® Continuous Delivery 服務 建立雲端 Satellite 鏈結端點,並設定
FQDN和Service indication name以使用下列值:
private-worker-service.{REGION}.devops.cloud.ibm.com
其中,{REGION} 是工具鏈管線的位置。
- 在專用工作者節點名稱空間中建立 configmap,以將公用端點對映至 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)>
您可以新增端點到 configmap,例如這些 預設的 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
若要更新專用工作者節點安裝,請完成下列步驟:
您可以重複使用用於現有專用工作者節點的 apikey。
如需 Delivery Pipeline Private Workers 的詳細資訊,請參閱 Delivery Pipeline 私人工作者的疑難排解 和 管道私人工人常見問題。