Preguntas más frecuentes sobre trabajadores privados de Delivery Pipeline

Aquí encontrará respuestas a las preguntas más frecuentes sobre el uso de trabajadores privados de Delivery Pipeline.

¿Cómo se instala una agrupación de nodos trabajadores de varios clústeres?

Puede instalar agentes en varios clústeres que funcionen conjuntamente dentro de una única agrupación de nodos trabajadores privados. Al utilizar esta configuración, la agrupación de nodos trabajadores privados puede gestionar más ejecuciones de interconexión en paralelo, y puede eliminar clústeres de la rotación de mantenimiento sin desactivar la agrupación de nodos trabajadores.

Aunque tener varios agentes en el mismo clúster da soporte a varias agrupaciones de nodos trabajadores, no mejora el rendimiento.

Para configurar una agrupación de nodos trabajadores de varios clústeres, siga las instrucciones para instalar directamente en un clúster y registrar un Delivery Pipeline Trabajador privado para cada clúster que participe en la agrupación de nodos trabajadores. Asegúrese de actualizar el nombre del trabajador para identificar el clúster en el que reside el trabajador.

Los varios agentes de trabajador se listan ahora en la interfaz de usuario de integración de trabajador privado y los trabajos se planifican en dichos agentes basándose en la carga de clúster en el tiempo de solicitud de ejecución de conducto.

¿Cómo puedo ver el estado de los trabajadores privados en diversos clústeres utilizando la CLI?

Puede utilizar el siguiente mandato dentro de un script que recorra por todos los clústeres donde están instalados los trabajadores privados.

kubectl get workeragent -ojson | jq '.items[] | .status.versionStatus.state'

Considere la posibilidad de actualizar todos los trabajadores privados que devuelvan resultados que no sean OK.

¿Qué atributos puedo utilizar para los agentes de trabajador privado?

Los atributos siguientes están disponibles para los agentes de trabajador privado:

  • NAME: nombre especificado al registrar el agente. Este nombre aparece en la página de integración Trabajador privado.
  • SERVICEID: ID de cola de trabajo desde el que este agente procesa las solicitudes de trabajo.
  • AGENT: el valor OK indica que el agente puede procesar solicitudes de trabajo.
  • REGISTERED: el valor Succeeded indica que el agente se ha registrado correctamente con el servicio de trabajador privado regional.
  • VERSION: el valor OK indica si la versión del agente está actualizada.
  • AUTH: el valor OK indica si el valor apikey del agente es válido.
  • CONSTRAINED: el valor false indica que hay suficientes recursos de clúster disponibles para que el agente pueda ejecutar tareas. Un valor de True especifica que el cluster es resource-constrained.
  • PAUSED: el valor false indica que el agente está operativo y puede ejecutar tareas. Un valor true especifica que el agente está en pausa y no puede ejecutar ninguna tarea. El agente podría estar en pausa porque se están realizando tareas de mantenimiento en el clúster, por ejemplo.

¿Cómo puedo configurar mi ClusterImagePolicy para que pueda acceder a las imágenes de Tekton?

Puesto que los trabajadores privados de Delivery Pipeline dependen de la infraestructura de Tekton y tekton-pipelines, deben extraer imágenes de tekton-releases de icr.io (icr.io/continuous-delivery/pipeline/). Es posible que tenga que definir un Kubernetes ClusterImagePolicy específico para extraer imágenes de estos registros de contenedor. Para añadir el tipo ClusterImagePolicy a su cluster Kubernetes, debe instalar varios gráficos Helm.

¿Cómo puedo alojar automáticamente imágenes de contenedor para Delivery Pipeline Private Worker?

Es posible que las restricciones de seguridad le impidan extraer imágenes del registro de contenedores de icr.io/continuous-delivery/pipeline. En estos casos, lleve a cabo los pasos siguientes:

  1. Suministre las imágenes de contenedor en un registro de contenedor soportado.

  2. Instale el archivo deployment.yaml para hacer referencia a las imágenes de contenedor en este registro de contenedor.

  3. Para cada imagen de contenedor a la que se haga referencia en el archivo yaml de despliegue normal, siga estos pasos:

    • Docker tire de la imagen a un Dockerfile local.
    • Docker etiquetar la imagen con la nueva referencia en el registro de contenedores compatible.
    • Docker empuja esta nueva imagen.

    Puede obtener el archivo yaml de despliegue de https://private-worker-service.$region.devops.cloud.ibm.com/install.

  4. Sustituya la referencia a cada imagen en el archivo de instalación con la etiqueta de la imagen nueva.

  5. Ejecute el mandato siguiente para instalar el trabajador privado utilizando el registro de contenedor específico: kubectl apply –filename updated_deployment.yaml.

  6. Continúe con la instalación.

¿Cómo suministro y actualizo el archivo de instalación del trabajador privado para IBM Cloud® Private?

Si su pipeline worker está instalado en IBM Cloud Private, puede utilizar el siguiente script para aprovisionar y actualizar el archivo de instalación del private worker.

\#\!/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"

Este script contiene los requisitos siguientes:

  • Los espacios de nombres ibmcom y tekton-releases existen actualmente en el destino IBM Cloud® Private.
  • El cliente Docker se conecta al registro privado de contenedores de IBM Cloud® Private. Para obtener más información sobre la autenticación para la CLI de Docker, consulte Configuración de la autenticación para la CLI de Docker.

Después de aprovisionar las imágenes de contenedor en el registro privado de IBM Cloud® Private, actualice el ámbito de la imagen a global para asegurarse de que se puede acceder a las imágenes desde cualquier espacio de nombres. Para obtener más información sobre cómo actualizar el ámbito de una imagen, consulte Cambiar el ámbito de la imagen.

Puede proporcionar a los usuarios de pipeline acceso a las imágenes base (icr.io/continuous-delivery/pipeline/pipeline-base-image) que se utilizan para ejecutar los trabajos de pipeline, que son suministradas por el global IBM Cloud Container Registry. Para utilizar estas imágenes, debe configurar los trabajos de conductos utilizando la Custom Dockerimage. También debe hacer referencia a la imagen esperada en el registro privado de IBM Cloud® Private, por ejemplo: mycluster.icp:8500/icr.io/continuous-delivery/pipeline/pipeline-base-image:latest.

¿Puedo gestionar trabajadores privados utilizando Terraform o API?

Puede utilizar Terraform o las API para añadir, actualizar o eliminar Delivery Pipeline integraciones de herramientas de trabajador privado en una cadena de herramientas. Para obtener más información sobre cómo trabajar con la integración de la herramienta de trabajador privado Delivery Pipeline, consulte Trabajar con integraciones de herramientas y Configuración de Delivery Pipeline Private Worker.

No puede utilizar Terraform o las API para gestionar Delivery Pipeline trabajadores privados. En su lugar, utilice la consola o la CLI para instalar, registrar, configurar y actualizar trabajadores privados. Para obtener más información sobre estas tareas, consulte Instalación de Delivery Pipeline Private Workers.