Installazione dei nodi di lavoro privati Delivery Pipeline

DevOps Insights Il servizio giungerà al termine e verrà interrotto il 31 agosto 2026. Il servizio " Continuous Delivery " verrà interrotto nelle seguenti regioni il 12 febbraio 2027: au-syd, ca-tor, us-east. A partire da tale data, anche Code Risk Analyzer verrà ritirato dal mercato in tutte le regioni. Se in una regione non si riscontra un utilizzo attivo di queste funzionalità, queste potrebbero essere dismesse in anticipo e non accettare più nuove istanze. Per saperne di più

Installa e registra un nodo di lavoro privato Delivery Pipeline in modo che i team di sviluppo IBM Cloud® Continuous Delivery possano utilizzare il nodo di lavoro privato nella loro configurazione della toolchain. Gli sviluppatori possono eseguire i carichi di lavoro all'interno dell'ambito di rete dell'installazione del nodo di lavoro privato senza alcuna connettività di rete in entrata.

La Delivery Pipeline utilizza i nodi di lavoro pubblici e privati per eseguire i lavori di pipeline. Per impostazione predefinita, i lavori di pipeline vengono eseguiti utilizzando i nodi di lavoro pubblici sull'infrastruttura condivisa pubblica gestita da IBM. I lavori di pipeline possono accedere alle risorse solo sulla rete pubblica (sia all'interno che all'esterno di IBM) e sono limitati a 60 minuti di runtime per ogni lavoro.

In alcuni scenari, la tua Delivery Pipeline potrebbe richiedere 'accesso a risorse interne o in loco. In queste situazioni, puoi connetterti a, e integrare, un nodo di lavoro privato Delivery Pipeline per l'esecuzione sulla tua infrastruttura Kubernetes.

Gli agent di nodi di lavoro privati installati sui cluster privati richiedono dati solo dal servizio di nodo di lavoro privato ospitato da IBM. Il flusso di dati è unidirezionale e ha origine solo dall'agent.

Prerequisiti

Prima di installare un nodo di lavoro privato, assicurati di avere un account IBM Cloud® per creare le chiavi di autenticazione. È necessaria l'ultima versione di kubectl installata sul computer desktop dell'amministratore. Inoltre, per installare un worker privato è necessario disporre di un cluster Kubernetes (versione 1.15 o successiva) con diritti di amministratore.

  • Configurazioni del cluster Kubernetes suggerite:

    • IBM Cloud Kubernetes Service versione 1.21 o superiore per eseguire carichi di lavoro in modo isolato su IBM Cloud Public.
    • Red Hat® OpenShift® on IBM Cloud® versione 4.9 o successiva.
  • Accesso alla rete:

    • In entrata: non richiesto.

    • L'accesso alla rete in uscita utilizza (TCP:443), dove la regione corrisponde alla posizione della pipeline di distribuzione ed è una delle seguenti: au-syd (Sydney, Australia), eu-de (Francoforte, Germania), eu-gb (Londra, Regno Unito), jp-tok (Tokyo, Giappone), us-south (Dallas, Stati Uniti), us-east (Washington DC, Stati Uniti), br-sao (San Paolo) o ca-tor (Toronto, Canada). Ad esempio, per la regione Francoforte, specifica https://private-worker-service.eu-de.devops.cloud.ibm.com (TCP:443). Per l'accesso alla rete all'endpoint globale per la convalida della chiave API, utilizza https://iam.cloud.ibm.com (TCP:443).

  • Autorizzazioni per eseguire il pull delle immagini da icr.io. I worker privati richiedono l'infrastruttura tekton-pipelines e devono poter scaricare le immagini tekton-releases da icr.io per completare l'installazione dei worker privati.

    Per estrarre le immagini dal registro dei contenitori icr.io, potrebbe essere necessario definire uno specifico Kubernetes ClusterImagePolicy.

Poiché i lavoratori privati non sono compatibili con le pipeline di Red Hat OpenShift, si consiglia di non installarli su un cluster con le pipeline di Red Hat OpenShift.

Installazione di un nodo di lavoro privato Delivery Pipeline

Per installare un nodo di lavoro privato, devi avere accesso a un cluster a livello di amministratore. L'installazione del nodo di lavoro privato può essere completata solo tramite la riga di comando poiché non è disponibile alcuna interfaccia utente grafica.

Installazione di un nodo di lavoro privato Delivery Pipeline tramite la CLI

La seguente procedura è destinata agli amministratori che stanno preparando gli ambienti e i nodi di lavoro privati per più persone o team. Per installare i nodi di lavoro privati per il tuo utilizzo, vedi Configurazione di un nodo di lavoro privato Delivery Pipeline.

Installazione diretta su un cluster

Per installare il framework direttamente su un cluster, è necessario disporre dell'accesso admin al cluster. Dalla CLI IBM Cloud, immetti questo comando:

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

Dove {REGION} è l'ubicazione della pipeline della toolchain. È possibile specificare uno qualsiasi dei seguenti valori per il parametro " {REGION}":

  • au-syd (Sydney, Australia)
  • eu-de (Francoforte, Germania)
  • eu-gb (Londra, Regno Unito)
  • jp-tok (Tokyo, Giappone)
  • us-south (Dallas, Stati Uniti)
  • us-east (Washington DC, Stati Uniti)
  • ca-tor (Toronto, Canada)
  • br-sao (San Paolo, Brasile)

Installazione diretta su un cluster firewalled

Per installare il framework direttamente su un cluster, è necessario disporre dell'accesso admin al cluster. Dalla CLI IBM Cloud, immetti questo comando:

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

Dove {REGION} è l'ubicazione della pipeline della toolchain. È possibile specificare uno qualsiasi dei seguenti valori per il parametro " {REGION}":

  • au-syd (Sydney, Australia)
  • eu-de (Francoforte, Germania)
  • eu-gb (Londra, Regno Unito)
  • jp-tok (Tokyo, Giappone)
  • us-south (Dallas, Stati Uniti)
  • us-east (Washington DC, Stati Uniti)
  • ca-tor (Toronto, Canada)
  • br-sao (San Paolo, Brasile)

Per utilizzare questa funzione è necessario disporre di un account IBM Cloud abilitato al VRF.

È possibile creare un pool di lavoratori privati ripetendo questo processo su altri cluster Kubernetes. Il carico sarà condiviso tra tutti i lavoratori del pool.

Registrazione di un nodo di lavoro privato Delivery Pipeline

Creazione di un ID servizio

Un ID servizio rappresenta un pool di uno o più nodi di lavoro privati che agiscono insieme. Puoi registrare inizialmente un'installazione di nodo di lavoro privato e registrare quindi in modo incrementale più nodi di lavoro privati nello stesso gruppo riutilizzando lo stesso ID servizio. La registrazione di più nodi di lavoro privati nello stesso gruppo supporta una maggiore disponibilità e il ridimensionamento orizzontale della tua capacità di nodo di lavoro privato. Per ulteriori informazioni sugli ID servizio, consulta Creazione e gestione degli ID servizio.

Creazione di un ID servizio nella console

  1. Accedi a IBM Cloud.
  2. Andare all'indirizzo https://cloud.ibm.com/iam/serviceids.
  3. Fai clic su Crea.
  4. Immetti un nome e una descrizione per l'ID servizio. Se stai creando un ID servizio per un pool di nodi di lavoro privati, specifica il nome del pool di nodi di lavoro privati, ad esempio: Pipeline Private Workers for Acme.
  5. Fai clic su Crea.
  6. Salva il tuo ID servizio per un utilizzo successivo. L'ID servizio è richiesto sul cluster Kubernetes indicato come destinazione per l'installazione del nodo di lavoro privato Delivery Pipeline.

Creazione di un ID servizio utilizzando la CLI

Dalla CLI IBM Cloud, immetti questo comando:

$ 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

Creazione di una chiave API

Una chiave API è un codice univoco passato a un'API per identificare l'applicazione o l'utente che ne sta eseguendo il richiamo. Per evitare un utilizzo malintenzionato di un'API, puoi utilizzare le chiavi API per tracciare e controllare la modalità di utilizzo dell'API. Per ulteriori informazioni sulle chiavi API, vedi Descrizione delle chiavi API.

Creazione di una chiave API nella console

  1. Accedi a IBM Cloud.
  2. Andare all'indirizzo https://cloud.ibm.com/iam/serviceids.
  3. Seleziona l'ID servizio per cui vuoi creare un'API.
  4. Nella scheda API keys , fai clic su Create.
  5. Immetti un nome e una descrizione per la chiave API per specificare l'installazione del nodo di lavoro privato, come ad esempio Pipeline Private Worker in IBM Cloud Private.
  6. Fai clic su Crea.
  7. Copia o scarica la tua chiave API. Non puoi richiamare nuovamente la tua chiave API dopo che l'hai creata.

Creazione di una chiave API utilizzando la CLI

Dalla CLI IBM Cloud, immetti questo comando:

$ 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

Registrazione del nodo di lavoro privato con IBM Cloud

Prima di poter registrare il lavoratore privato su IBM Cloud, è necessario distribuire il framework del lavoratore privato. Per utilizzare i comandi di registrazione, devi essere collegato al cluster Kubernetes (con kubectl) in cui hai precedentemente installato un nodo di lavoro privato.

Devi registrare un nodo di lavoro privato con la specifica regione IBM Cloud che corrisponde all'ubicazione delle delivery pipeline che vuoi abilitare.

  1. Specifica un nome descrittivo per il tuo nodo di lavoro privato. Questo nome deve iniziare e terminare con caratteri alfanumerici minuscoli e può contenere anche caratteri _ o ..
  2. Esegui il seguente comando con l'ID servizio e la chiave API che hai creato in precedenza, il nome del nodo di lavoro privato e il {REGION} che è l'ubicazione della pipeline della toolchain.
$ 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

È possibile specificare uno qualsiasi dei seguenti valori per il parametro " {REGION}":

  * `au-syd` (Sydney, Australia)
  * `eu-de` (Francoforte, Germania)
  * `eu-gb` (Londra, Regno Unito)
  * `jp-tok` (Tokyo, Giappone)
  * `us-south` (Dallas, Stati Uniti)
  * `us-east` (Washington DC, Stati Uniti)
  * `ca-tor` (Toronto, Canada)
  * `br-sao` (San Paolo, Brasile)

  1. Per registrare un agente per utilizzare endpoint privati, utilizzare il parametro opzionale private come segue:
   $ 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"

È necessario specificare uno dei seguenti valori per il parametro " {REGION}":

  * Francoforte `eu-de`
  * Londra `eu-gb`
  * Dallas `us-south`
  * Washington DC `us-east`

Nota: l'uso del parametro di query private durante la registrazione di un agente è obbligatorio se il cluster host si trova in un ambiente protetto da firewall

  1. Per verificare che l'agent sia registrato correttamente, immetti il seguente comando:
$ kubectl get workeragents
NAME           SERVICEID     AGENT   REGISTERED   VERSION   AUTH   CONSTRAINED   PAUSED
<worker_name>  <ServiceId>   OK      Succeeded    OK        OK     false         false

I nodi di lavoro privati devono essere installati nello spazio dei nomi default. Non devono mai essere installati nel namespace tekton-pipelines. Questo namespace è riservato per il framework Tekton e la distribuzione dell'agente. L'installazione dell'agent di lavoro in uno spazio dei nomi differente rispetto allo spazio dei nomi default può causare alcuni effetti collaterali imprevisti.

Configurazione del nodo di lavoro privato Delivery Pipeline per utilizzare gli endpoint privati

Per impostazione predefinita, i nodi di lavoro privati utilizzano endpoint pubblici per la comunicazione. Un amministratore del cluster può aggiornare la configurazione del nodo di lavoro privato per utilizzare gli endpoint privati in modo che la comunicazione tra il nodo di lavoro privato e il servizio IBM Cloud® Continuous Delivery non utilizzi l'internet pubblico.

  1. Ottenere il nome dell'agente che è installato sul cluster:
kubectl get workeragents -n default
  1. Modificare apiUrl per tale agente:
kubectl patch workeragent {WORKER_NAME} --type='merge' -p '{"spec": {"apiUrl":"https://private-worker-service.private.{REGION}.devops.cloud.ibm.com"}}'

Dove {REGION} è l'ubicazione della pipeline della toolchain. Gli endpoint privati sono disponibili nelle seguenti regioni:

* Dallas `us-south`
* Washington `us-east`
* Francoforte `eu-de`
* Londra `eu-gb`

Per utilizzare questa funzione è necessario disporre di un account IBM Cloud abilitato al VRF.

  1. Facoltativo. Per tornare all'utilizzo degli endpoint pubblici per l'agente, immettere il comando seguente:
kubectl patch workeragent {WORKER_NAME} -n default --type='merge' -p '{"spec": {"apiUrl":"https://private-worker-service.{REGION}.devops.cloud.ibm.com"}}'

Configurazione del nodo di lavoro privato Delivery Pipeline per utilizzare gli endpoint del link Satellite

Per impostazione predefinita, i nodi di lavoro privati utilizzano endpoint pubblici per la comunicazione. Un amministratore del cluster può aggiornare la configurazione del nodo di lavoro privato per utilizzare gli endpoint di collegamento Satellite in modo che le comunicazioni tra il nodo di lavoro privato e il servizio Continuous Delivery passino attraverso gli endpoint di link Satellite.

  1. Crea un endpoint di collegamento Satellite cloud per il servizio IBM Cloud® Continuous Delivery e imposta FQDN e Service indication name per utilizzare il seguente valore:
private-worker-service.{REGION}.devops.cloud.ibm.com

Dove {REGION} è l'ubicazione della pipeline della toolchain.

  1. Creare una configmap nello spazio dei nomi del nodo di lavoro privato che associa gli endpoint pubblici agli endpoint del link 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)>

È possibile aggiungere endpoint alla configmap, ad esempio questi endpoint predefiniti del collegamento Satellite.

Aggiornamento dell'installazione del nodo di lavoro privato Delivery Pipeline

Se il nodo di lavoro privato viene segnalato come inattivo, devi aggiornare l'installazione.

Per visualizzare la versione del tuo nodo di lavoro privato, immetti uno dei seguenti comandi:

  • 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

Per aggiornare la tua installazione del nodo di lavoro privato, completa la seguente procedura:

  1. Esegui nuovamente il comando di installazione,
  2. Registra il nodo di lavoro privato sul tuo cluster Kubernetes nuovamente.

Puoi riutilizzare il apikey che hai usato per il nodo di lavoro privato esistente.

Per ulteriori informazioni sui lavoratori privati di Delivery Pipeline, vedere Risoluzione dei problemi per i lavoratori privati di Delivery Pipeline e Domande frequenti per i lavoratori privati delle condutture.