Risoluzione dei problemi per i nodi di lavoro privati della pipeline
I problemi generali legati all'utilizzo di Pipeline Private Workers possono includere problemi Kubernetes relativi alla versione di cluster e kubectl. In molti casi, puoi risolvere questi problemi seguendo pochi semplici passi.
Perché il mio nodo di lavoro privato Delivery Pipeline è inattivo?
I nodi di lavoro privati all'interno di un pool di nodi di lavoro possono essere in uno dei seguenti stati:
- Attivo con la versione corrente e supportata dei nodi di lavoro privati
- Inattivo con una versione non supportata di nodi di lavoro privati
- Inattivo e non registrato
Il tuo nodo di lavoro privato è inattivo. I nodi di lavoro privati inattivi non possono gestire le richieste di esecuzione in entrata. Le fasi della pipeline che utilizzano un nodo di lavoro privato inattivo non possono essere completate.
Un agente può diventare inattivo
- se si verifica un problema con il cluster Kubernetes e il lavoratore non riesce a comunicare con i servizi del piano di controllo regionale
- se la versione del worker privato che stai utilizzando non è più supportata
- se l'agente sul cluster è diventato Non registrato
Se l'agente segnala Unregistered dopo aver funzionato in precedenza, è possibile tentare di correggere la registrazione eseguendo il seguente comando
kubectl patch worke${AGENT_NAME} --subresource=status --type=merge -p '{"status": {"registrationStatus": {"state": "Succeeded"}}}'
Se il comando precedente non funziona o se il tuo Delivery Pipeline lavoratore privato è registrato ma è ancora inattivo, puoi installare nuovamente il lavoratore privato. Registrare nuovamente il Delivery Pipeline lavoratore privato sul Kubernetes cluster.
Ho provato a installare il supporto per i nodi di lavoro privati Delivery Pipeline in Kubernetes. Perché la mia installazione non è riuscita?
Se c'è un problema con la versione di kubectl che stai eseguendo sulla macchina client, l'installazione del nodo di lavoro privato Delivery Pipeline non riesce.
Dopo che hai provato a installare il supporto per i nodi di lavoro privati in Kubernetes, viene visualizzato un messaggio di errore che indica che c'è una mancata corrispondenza di schema e l'installazione non riesce.
SchemaError(io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup): invalid object doesn't have additional properties
C'è una mancata corrispondenza tra le versioni di kubectl che stai eseguendo sul server Kubernetes e sul client Kubernetes.
Installa la versione più recente di kubectl sulla macchina client.
Perché non posso eseguire il pull di immagini per tekton-releases o pipeline-private-worker da alcuni registri contenitore?
La sicurezza del cluster ti impedisce di eseguire il pull di immagini.
Quando provi a installare il framework di nodo di lavoro privato, viene visualizzato un messaggio di errore.
Error from server (InternalError): error when creating "https://private-worker-service.us-south.devops.cloud.ibm.com/install": Internal error occurred: admission webhook "trust.hooks.securityenforcement.admission.cloud.ibm.com" denied the request:
Deny "ghcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/controller@sha256:80e040a58ce6c4d58ae893eb934777bce013ef8be079967dc3db783d76fa5aaa", no matching repositories in ClusterImagePolicy and no ImagePolicies in the "tekton-pipelines" namespace
Error from server (InternalError): error when creating "https://private-worker-service.us-south.devops.cloud.ibm.com/install": Internal error occurred: admission webhook "trust.hooks.securityenforcement.admission.cloud.ibm.com" denied the request:
Deny "ghcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/webhook@sha256:da75fbdaeb800813d85b99f7f54b665e8d0edbb2c5a7ffc6a99d66aede0291a3", no matching repositories in ClusterImagePolicy and no ImagePolicies in the "tekton-pipelines" namespace
Il programma di installazione del nodo di lavoro privato estrae le immagini da icr.io. Alcune piattaforme, come ad esempio IBM Cloud Privato, non consentono questi registri contenitore nella politica di immagine predefinita.
Assicurati che la politica di estrazione delle immagini nel tuo cluster supporti l'estrazione delle immagini da icr.io. Ad esempio, se stai installando il framework di nodo di lavoro privato su IBM Cloud Privato, aggiungi queste
politiche utilizzando la console IBM Cloud Private Web Per ulteriori informazioni sulla gestione dell'applicazione della sicurezza delle immagini tramite la console IBM Cloud Private Web, consulta Applicazione della sicurezza delle immagini dei container. Per ulteriori informazioni sulla gestione dell'applicazione della sicurezza delle immagini tramite Porteris, vedere Portieris Criteri.
L'esempio seguente mostra come utilizzare la CLI di IBM Cloud per creare il file ClusterImagePolicy:
Se utilizzi Portieris come controller di ammissione, potrebbe essere necessario modificare il apiVersion nell'esempio in portieris.cloud.ibm.com/v1.
cat <<EOF | kubectl apply -f -
apiVersion: securityenforcement.admission.cloud.ibm.com/v1beta1
kind: ClusterImagePolicy
metadata:
name: iks-private-registries
spec:
repositories:
- name: "*.icr.io/*"
policy:
EOF
Perché il mio operatore privato Delivery Pipeline non è elencato?
Il mio operatore privato è elencato sul cluster con uno stato di inactive, ma non è elencato nella pagina Panoramica sull'integrazione del nodo privato.
La chiave API utilizzata per installare l'agent del nodo di lavoro potrebbe non essere inclusa nel ServiceID utilizzato dall'integrazione del nodo di lavoro privato.
Rimuovere l'agent di lavoro non configurato correttamente dal cluster e installare di nuovo l'agent di lavoro. Assicurarsi che la chiave API inclusa nel comando di installazione esista anche nel ServiceId utilizzato nello stesso
comando di installazione. Utilizza il link per il ServiceId disponibile sia nella pagina di integrazione dei lavoratori privati che nella pagina Identity and Access Management (IAM) per generare una chiave API valida.