Instalación de trabajadores privados de Delivery Pipeline
DevOps Insights Llegará al final de su vida útil y se dejará de ofrecer el 31 de agosto de 2026. Continuous Delivery dejará de estar disponible en las siguientes regiones el 12 de febrero de 2027: au-syd, ca-tor, us-east. Code Risk Analyzer también dejará de estar disponible en todas las regiones a partir de esa fecha. Si en una región no se hace un uso activo de estas funciones, es posible que dichas funciones se retiren antes de lo previsto en esa región y dejen de aceptar nuevas instancias. Más información
Instale y registre un trabajador privado de Delivery Pipeline de forma que los equipos de desarrollo de IBM Cloud® Continuous Delivery puedan utilizar el trabajador privado en la configuración de su cadena de herramientas. Los desarrolladores pueden ejecutar cargas de trabajo en el ámbito de red de la instalación del trabajador privado sin ningún tipo de conectividad de red de entrada.
Delivery Pipeline utiliza trabajadores públicos y privados para ejecutar trabajos de conducto. De forma predeterminada, los trabajos de conducto se ejecutan utilizando trabajadores públicos en una infraestructura compartida pública gestionada por IBM. Los trabajos de conductos pueden acceder a recursos solamente en la red pública (tanto dentro como fuera de IBM) y tienen un límite de 60 minutos de tiempo de ejecución por trabajo.
En determinados casos de ejemplo, es posible que Delivery Pipeline requiera acceso a recursos internos o locales. En estas situaciones, puede conectarse e integrar un trabajador privado de Delivery Pipeline para que se ejecute en su propia infraestructura de Kubernetes.
Los agentes de trabajador privado que están instalados en clústeres privados solicitan datos solo del servicio de trabajador privado alojado por IBM. El flujo de datos es unidireccional y se origina solo desde el agente.
Requisitos previos
Antes de instalar un trabajador privado, asegúrese de que dispone de una cuenta de IBM Cloud® para crear las claves de autenticación. Necesita la última versión de kubectl instalada en el ordenador local del administrador. Además, para instalar un trabajador privado, debe disponer de un clúster Kubernetes (versión 1.15 o superior) con acceso administrativo.
-
Configuraciones del clúster de Kubernetes sugeridas:
- IBM Cloud Kubernetes Service Versión 1.21 o superior para ejecutar cargas de trabajo de forma aislada en IBM Cloud Public.
- Red Hat® OpenShift® on IBM Cloud® versión 4.9 o posterior.
-
Acceso a la red:
-
Entrada: No necesaria.
-
El acceso a la red saliente utiliza cuando
(TCP:443)la región coincide con la ubicación del canal de entrega y es (au-sydSídney, Australia),eu-de(Fráncfort, Alemania),eu-gb(Londres, Reino Unido),jp-tok(Tokio, Japón),us-south(Dallas, EE. UU.),us-east(Washington D. C., EE. UU.),br-sao(São Paulo) oca-tor(Toronto, Canadá). Por ejemplo, para la región de Frankfurt, especifiquehttps://private-worker-service.eu-de.devops.cloud.ibm.com (TCP:443). Para el acceso de red al punto final global para la validación de la clave de API, utilicehttps://iam.cloud.ibm.com (TCP:443).
-
-
Permisos para extraer imágenes de icr.io. Los trabajadores privados requieren la infraestructura de conductos de tekton y deben poder extraer imágenes de releases de tekton de icr.io para llevar a cabo una instalación de nodo trabajador privado.
Para extraer imágenes del registro de contenedores
icr.io, es posible que tenga que definir un Kubernetes ClusterImagePolicy específico.
Dado que los trabajadores privados no son compatibles con los Pipelines de Red Hat OpenShift, se recomienda no instalarlos en un clúster con pipelines de Red Hat OpenShift.
Instalación de un trabajador privado de Delivery Pipeline
Para instalar un trabajador privado, debe tener acceso de nivel de administrador a un clúster. La instalación del trabajador privado sólo se puede completar a través de la línea de mandatos, ya que no hay ninguna interfaz gráfica de usuario disponible.
Instalación del trabajador privado de Delivery Pipeline mediante la CLI
Los pasos siguientes están pensados para los administradores que preparan entornos y trabajadores privados para varias personas o equipos. Para instalar trabajadores privados para su propio uso, consulte Configuración de un trabajador privado de Delivery Pipeline.
Instalación directa en un clúster
Para instalar la infraestructura directamente en un clúster, debe tener acceso de administrador al clúster. Desde la CLI de IBM Cloud, escriba el mandato siguiente:
kubectl apply --filename "https://private-worker-service.{REGION}.devops.cloud.ibm.com/install"
Siendo {REGION} la ubicación del conducto de la cadena de herramientas. Puedes especificar cualquiera de los siguientes valores para el {REGION}:
au-syd(Sídney, Australia)eu-de(Fráncfort, Alemania)eu-gb(Londres, Reino Unido)jp-tok(Tokio, Japón)us-south(Dallas, EE. UU.)us-east(Washington D. C., EE. UU.)ca-tor(Toronto, Canadá)br-sao(São Paulo, Brasil)
Instalación directa en un clúster con firewall
Para instalar la infraestructura directamente en un clúster, debe tener acceso de administrador al clúster. Desde la CLI de IBM Cloud, escriba el mandato siguiente:
kubectl apply --filename "https://private-worker-service.{REGION}.devops.cloud.ibm.com/install?private=true"
Siendo {REGION} la ubicación del conducto de la cadena de herramientas. Puedes especificar cualquiera de los siguientes valores para el {REGION}:
au-syd(Sídney, Australia)eu-de(Fráncfort, Alemania)eu-gb(Londres, Reino Unido)jp-tok(Tokio, Japón)us-south(Dallas, EE. UU.)us-east(Washington D. C., EE. UU.)ca-tor(Toronto, Canadá)br-sao(São Paulo, Brasil)
Debe tener una cuenta de IBM Cloud habilitada para VRF para poder utilizar esta característica.
Es posible crear un pool de trabajadores privados repitiendo este proceso en clusters adicionales de Kubernetes. La carga se repartirá entre todos los trabajadores del pool.
Registro de un trabajador privado de Delivery Pipeline
Creación de un ID de servicio
Un ID de servicio representa una agrupación de uno o varios trabajadores privados que actúan juntos. Inicialmente, puede registrar una instalación de trabajador privado y, a continuación, registrar de forma incremental más trabajadores privados en el mismo grupo reutilizando el mismo ID de servicio. El registro de varios trabajadores privados en el mismo grupo permite una mayor disponibilidad y un escalado horizontal de la capacidad de su trabajador privado. Para obtener más información sobre los ID de servicio, consulte Creación y trabajo con los ID de servicio.
Creación de un ID de servicio en la consola
- Inicie sesión en IBM Cloud.
- Vaya a https://cloud.ibm.com/iam/serviceids.
- Pulse Crear.
- Especifique un nombre y una descripción para el ID de servicio. Si crea un ID de servicio para una agrupación de trabajadores privados, especifique el nombre de la agrupación de trabajadores privados, por ejemplo, Pipeline Private Workers para Acme.
- Pulse Crear.
- Guarde el ID de servicio para un uso posterior. El ID de servicio es necesario en el clúster de Kubernetes destinado a la instalación del Trabajador privado de Delivery Pipeline.
Creación de un ID de servicio utilizando la CLI
Desde la CLI de IBM Cloud, escriba el mandato siguiente:
$ 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
Creación de una clave de API
Una clave de API es un código exclusivo que se pasa a una API para identificar la aplicación o el usuario que lo llama. Para evitar el uso malintencionado de una API, puede utilizar las teclas de API para realizar un seguimiento y controlar cómo se utiliza dicha API. Para obtener más información sobre las claves de API, consulte Visión general de las claves de API.
Crear una clave de API en la consola
- Inicie sesión en IBM Cloud.
- Vaya a https://cloud.ibm.com/iam/serviceids.
- Seleccione el ID de servicio para el que desea crear una API.
- En el separador Claves de API, pulse Crear.
- Escriba un nombre y una descripción para que la clave de API especifique la instalación del trabajador privado como, por ejemplo, Pipeline Private Worker en IBM Cloud Private.
- Pulse Crear.
- Copie o descargue su clave de API. No puede recibir su clave de API nuevamente después de crearla.
Creación de una clave de API utilizando la CLI
Desde la CLI de IBM Cloud, escriba el mandato siguiente:
$ 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
Registro de trabajador privado con IBM Cloud
Antes de poder registrar el trabajador privado en IBM Cloud, debe desplegar el marco del trabajador privado. Para utilizar los mandatos de registro, debe haber iniciado sesión en el clúster de Kubernetes (con kubectl) en el que habrá instalado anteriormente un trabajador privado.
Debe registrar un trabajador privado con la región específica de IBM Cloud que corresponde a la ubicación de los conductos de entrega que desea habilitar.
- Especifique un nombre significativo para el trabajador privado. Este nombre debe empezar y terminar con caracteres alfanuméricos en minúsculas y también puede contener los caracteres
_o.. - Ejecute el mandato siguiente con el ID de servicio y la clave de API creados previamente, el nombre del trabajador privado y el valor
{REGION}, que es la ubicación de la interconexión de la cadena de herramientas.
$ 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
Puede especificar cualquiera de los valores siguientes para {REGION}:
* `au-syd` (Sídney, Australia)
* `eu-de` (Fráncfort, Alemania)
* `eu-gb` (Londres, Reino Unido)
* `jp-tok` (Tokio, Japón)
* `us-south` (Dallas, EE. UU.)
* `us-east` (Washington D. C., EE. UU.)
* `ca-tor` (Toronto, Canadá)
* `br-sao` (São Paulo, Brasil)
- Para registrar un agente para utilizar endpoints privados utilice el parámetro de consulta opcional
privatede la siguiente manera:
$ 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"
Debes especificar uno de los siguientes valores para el {REGION}:
* Frankfurt `eu-de`
* Londres `eu-gb`
* Dallas `us-south`
* Washington DC `us-east`
Nota: Es obligatorio utilizar el parámetro de consulta « private » al registrar un agente si el clúster de hosts se encuentra en un entorno protegido por un cortafuegos.
- Para verificar que el agente se haya registrado correctamente, escriba el mandato siguiente:
$ kubectl get workeragents
NAME SERVICEID AGENT REGISTERED VERSION AUTH CONSTRAINED PAUSED
<worker_name> <ServiceId> OK Succeeded OK OK false false
Los trabajadores privados están pensados para instalarse en el espacio de nombres default. Nunca se deben instalar en el espacio de nombres tekton-pipelines. Este espacio de nombres está reservado para la infraestructura
de Tekton y el despliegue del agente. La instalación del agente de trabajo en un espacio de nombres distinto del espacio de nombres de default puede provocar algunos efectos secundarios inesperados.
Configuración del Trabajador privado de Delivery Pipeline para utilizar puntos finales privados
De forma predeterminada, los trabajadores privados utilizan puntos finales públicos para la comunicación. Un administrador de clúster puede actualizar la configuración del trabajador privado para que utilice puntos finales privados para que la comunicación entre el trabajador privado y el servicio de IBM Cloud® Continuous Delivery no utilice la Internet pública.
- Obtenga el nombre del agente que está instalado en el clúster:
kubectl get workeragents -n default
- Cambie el
apiUrlpara dicho agente:
kubectl patch workeragent {WORKER_NAME} --type='merge' -p '{"spec": {"apiUrl":"https://private-worker-service.private.{REGION}.devops.cloud.ibm.com"}}'
Siendo {REGION} la ubicación del conducto de la cadena de herramientas. Los puntos finales privados están disponibles en las regiones siguientes:
* Dallas `us-south`
* Washington `us-east`
* Frankfurt `eu-de`
* Londres `eu-gb`
Debe tener una cuenta de IBM Cloud habilitada para VRF para poder utilizar esta característica.
- Opcional. Para volver a utilizar puntos finales públicos para el agente, escriba el mandato siguiente:
kubectl patch workeragent {WORKER_NAME} -n default --type='merge' -p '{"spec": {"apiUrl":"https://private-worker-service.{REGION}.devops.cloud.ibm.com"}}'
Configuración de Delivery Pipeline Private Worker para utilizar puntos finales de enlace de Satellite
De forma predeterminada, los trabajadores privados utilizan puntos finales públicos para la comunicación. Un administrador de clúster puede actualizar la configuración de trabajador privado para utilizar los puntos finales de enlace de Satellite para que la comunicación entre el trabajador privado y el servicio Continuous Delivery pase por los puntos finales de enlace de Satellite.
- Cree un punto final de enlace de Satellite de nube para el servicio IBM Cloud® Continuous Delivery y establezca
FQDNyService indication namepara utilizar el valor siguiente:
private-worker-service.{REGION}.devops.cloud.ibm.com
Siendo {REGION} la ubicación del conducto de la cadena de herramientas.
- Cree un configmap en el espacio de nombres de trabajador privado que correlacione los puntos finales públicos con los puntos finales de enlace de 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)>
Puede añadir puntos finales al configmap, como estos puntos finales de enlace predeterminados Satellite.
Actualización de la instalación de Delivery Pipeline Private Worker
Si se informa de que el trabajador privado está inactivo, deberá actualizar la instalación.
Para ver la versión de tu worker privado, escribe uno de los siguientes comandos :
- 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
Para actualizar la instalación de su trabajador privado, siga estos pasos:
- Ejecute el mandato de instalación nuevamente.
- Registre el trabajador privado en su clúster de Kubernetes otra vez.
Puede reutilizar el apikey que ha utilizado para el trabajador privado existente.
Para obtener más información sobre Delivery Pipeline Private Workers, consulte Solución de problemas para Delivery Pipeline Private Workers y Preguntas frecuentes para Pipeline Private Workers.