Häufig gestellte Fragen zu Pipeline Private Workers
Hier erhalten Sie Antworten auf häufig gestellte Fragen zur Verwendung von Pipeline Private Workers.
Wie installiere ich einen Worker-Pool mit mehreren Clustern?
Sie können Agenten in mehreren Clustern installieren, die in einem einzelnen privaten Worker-Pool zusammenarbeiten. Durch Verwendung dieser Konfiguration kann der private Worker-Pool mehr Pipelineausführungen parallel verwalten und Sie können Cluster aus der Wartungsrotation entfernen, ohne den Worker-Pool zu inaktivieren.
Obwohl mehrere Agenten in demselben Cluster mehrere Worker-Pools unterstützen, verbessert sie nicht die Leistung oder den Durchsatz.
Um einen Multi-Cluster-Worker-Pool zu konfigurieren, befolgen Sie die Anweisungen für direkte Installation in einem Cluster und Registrierung eines Delivery Pipeline Private Worker für jeden Cluster, der am Worker-Pool teilnimmt. Stellen Sie sicher, dass Sie den Workernamen aktualisieren, um den Cluster anzugeben, auf dem sich der Worker befindet.
Die mehreren Worker-Agenten werden jetzt in der Benutzerschnittstelle für die Integration privater Worker aufgelistet und Jobs werden auf diesen Agenten basierend auf der Clusterauslastung zur Ausführungszeit der Pipeline terminiert.
Wie kann ich den Status privater Worker in mehreren Clustern über die Befehlszeilenschnittstelle anzeigen?
Sie können den folgenden Befehl in einem Script verwenden; dabei werden alle Cluster berücksichtigt, in denen private Worker installiert sind.
kubectl get workeragent -ojson | jq '.items[] | .status.versionStatus.state'
Sie können ein Upgrade für private Worker durchführen, die Ergebnisse zurückgeben, deren Status nicht OK lautet.
Welche Attribute kann ich für private Worker-Agenten verwenden?
Die folgenden Attribute sind für private Worker-Agenten verfügbar:
- NAME: Der Name, der bei der Registrierung des Agenten angegeben wurde. Dieser Name wird auf der Integrationsseite für private Worker angezeigt.
- SERVICE-ID: Die ID der Arbeitswarteschlange, von der dieser Agent Verarbeitungsanforderungen verarbeitet.
- AGENT: Der Wert
OKgibt an, dass der Agent Verarbeitungsanforderungen verarbeiten kann. - REGISTRIERT: Der Wert
Succeededgibt an, dass der Agent erfolgreich beim regionalen privaten Worker-Service registriert wurde. - VERSION: Der Wert
OKgibt an, ob die Version des Agenten aktuell ist. - AUTH: Der Wert
OKgibt an, ob der Agentapikeygültig ist. - BESCHRÄNKT: Der Wert
falsegibt an, ob genügend Clusterressourcen verfügbar sind, damit der Agent Tasks ausführen kann. Ein Wert vonTruegibt an, dass der Clusterresource-constrainedist. - ANGEHALTEN: Der Wert
falsegibt an, dass der Agent betriebsbereit ist und Tasks ausführen kann. Der Werttruegibt an, dass der Agent angehalten wurde und keine Tasks ausführen kann. Ein Grund dafür, dass ein Agent angehalten wird, ist die Clusterwartung.
Wie lege ich ClusterImagePolicy so fest, dass ich auf Tekton-Bilder zugreifen kann?
Da Delivery Pipeline private Worker von der Tekton-und tekton-pipelines-Infrastruktur abhängen, müssen sie tekton-releases-Images aus icr.io (icr.io/continuous-delivery/pipeline/) extrahieren. Möglicherweise
müssen Sie ein bestimmtes Kubernetes ClusterImagePolicy definieren, um Images aus diesen Container-Registrys zu extrahieren. Um den Typ ClusterImagePolicy zu Ihrem Kubernetes-Cluster hinzuzufügen, müssen Sie mehrere
Helm-Diagramme installieren.
Wie kann ich Container-Images für Delivery Pipeline Private Worker selbst hosten?
Sicherheitsbeschränkungen könnten Sie daran hindern, Images aus der icr.io/continuous-delivery/pipeline container registry zu ziehen. Führen Sie in solchen Fällen die folgenden Schritte aus:
-
Stellen Sie die Container-Images in einer unterstützten Container-Registry bereit.
-
Installieren Sie die Datei
deployment.yaml, um die Container-Images in dieser Container-Registry zu referenzieren. -
Führen Sie für jedes Container-Image, das in der regulären Bereitstellungs-YAML-Datei referenziert wird, die folgenden Schritte aus:
- Docker das Image in eine lokale Dockerdatei ziehen.
- Docker das Bild mit dem neuen Verweis auf die unterstützte Containerregistrierung kennzeichnen.
- Docker dieses neue Bild pushen.
Sie können die Bereitstellungs-YAML-Datei von
https://private-worker-service.$region.devops.cloud.ibm.com/installabrufen. -
Ersetzen Sie die Referenz zu jedem Image in der Installationsdatei durch den Tag für das neue Image.
-
Führen Sie den folgenden Befehl aus, um den privaten Worker mithilfe der bestimmten Container-Registry zu installieren:
kubectl apply –filename updated_deployment.yaml. -
Fahren Sie mit der Installation fort.
Wie kann ich die Installationsdatei für private Worker für IBM Cloud® Private bereitstellen und aktualisieren?
Wenn Ihr Pipeline-Arbeiter auf IBM Cloud Private installiert ist, können Sie das folgende Skript verwenden, um die Installationsdatei des privaten Arbeiters bereitzustellen und zu aktualisieren.
\#\!/bin/bash
region=${region:-"us-south"}
target_cr="mycluster.icp:8500"
install_filename="updated-private-worker-install.yaml"
curl -o $install_filename
https://private-worker-service.$region.devops.cloud.ibm.com/install
cat $install_filename | grep -e
'ghcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd' -e 'image:' \\
| sed 's/- ghcr.io/ghcr.io/g' \\
| sed 's/- image: ghcr.io/ghcr.io/g' \\
| sed 's/image: ghcr.io/ghcr.io/g' \\
| sed 's/image://g' \\
| awk '{$1=$1;print}' \\
| while read -r image ; do
echo "Processing $image"
docker pull $image
new_image_tag=$image
# if $image only have a single slash it is coming from dockerhub
number_of_slashes=$(echo $image | tr -cd '/' | wc -c)
if [ "$number_of_slashes" == "1" ]; then
new_image_tag="$target_cr/$image"
fi
# replace the sha id reference in the tag if any
new_image_tag="${new_image_tag@sha256}"
# replace ghcr.io to the target cr domain
new_image_tag="${new_image_tag/ghcr.io/$target_cr}"
docker tag $image $new_image_tag
docker push $new_image_tag
# replace the image reference in the installation.yaml file
sed -i "s~$image~$new_image_tag~g" $install_filename
done
echo "*****"
echo "Provisioning of docker images to $target_cr done."
echo "Update of the install file $install_filename done"
echo "Change the scope of the images to global before"
echo "running 'kubectl apply --filename $install_filename'
echo "to install the delivery pipeline private worker"
Dieses Script enthält die folgenden Anforderungen:
- Die Namespaces
ibmcomundtekton-releasesexistieren derzeit auf dem Ziel IBM Cloud® Private. - Der Docker Client ist mit der privaten Container-Registry von IBM Cloud® verbunden. Weitere Informationen zur Authentifizierung für die Docker CLI finden Sie unter Konfigurieren der Authentifizierung für die Docker CLI.
Nachdem Sie die Container-Images in der privaten Registry von IBM Cloud® bereitgestellt haben, aktualisieren Sie den Geltungsbereich des Images auf global, um sicherzustellen, dass auf die Images von allen Namespaces aus zugegriffen werden kann. Weitere Informationen zum Aktualisieren des Imagebereichs finden Sie unter Imagebereich ändern.
Sie können Pipeline-Benutzern Zugriff auf die Basis-Images (icr.io/continuous-delivery/pipeline/pipeline-base-image) gewähren, die für die Ausführung von Pipeline-Aufträgen verwendet werden. Diese werden von der globalen IBM Cloud
Container Registry bereitgestellt. Um diese Images zu verwenden, müssen Sie Ihre Pipeline-Jobs mithilfe des Custom Dockerimage konfigurieren. Sie müssen auch auf das erwartete Bild in der privaten Registrierung von IBM Cloud®
verweisen, zum Beispiel: mycluster.icp:8500/icr.io/continuous-delivery/pipeline/pipeline-base-image:latest.
Kann ich private Worker mithilfe von Terraform oder APIs verwalten?
Mit Terraform oder APIs können Sie Delivery Pipeline-Toolintegrationen für private Worker in einer Toolchain hinzufügen, aktualisieren oder entfernen. Weitere Informationen zum Arbeiten mit der Integration des Tools Delivery Pipeline für private Worker finden Sie unter Mit Toolintegrationen arbeiten und unter Delivery Pipeline Private Worker konfigurieren.
Sie können Terraform oder APIs nicht verwenden, um private Delivery Pipeline-Worker zu verwalten. Verwenden Sie stattdessen die Konsole oder die Befehlszeilenschnittstelle, um private Worker zu installieren, zu registrieren, zu konfigurieren und zu aktualisieren. Weitere Informationen zu diesen Tasks finden Sie unter Delivery Pipeline Private Worker installieren.