Extensiones
Respuestas a preguntas frecuentes sobre el agente para IBM Cloud Schematics
¿Cuáles son las actualizaciones en el release del agente de GA?
A continuación se muestran las características del release del agente.
- Mejoras en la experiencia de despliegue del agente a través de la CLI y la interfaz de usuario.
- Soporte para ejecutar playbooks de Ansible en el agente.
- Asignación dinámica de trabajos de espacio de trabajo o acción al agente.
¿Cuáles son los costes de instalación y uso de agentes?
A continuación se muestra el desglose de costes para desplegar y utilizar un agente Schematics.
La infraestructura de requisito previo necesaria para desplegar y ejecutar un agente es facturable:
- Coste de elementos de infraestructura de VPC como, por ejemplo, subred, pasarelas públicas.
- Coste de IBM Cloud Kubernetes Service (clúster) en VPC, con agrupación de nodos trabajadores de tres nodos.
- Coste de IBM Cloud Object Storage
Ejecución de servicio de agente:
- La ejecución de trabajos en agentes no tiene ningún coste.
- La prestación de agente de Schematics versión 1 es una característica no facturable. Las versiones futuras pueden ser cargables.
¿Es posible instalar más de un agente en un clúster?
Solo puede instalar un agente en el clúster IBM Cloud Kubernetes Service. Se necesitan clústeres adicionales para desplegar agentes adicionales. Si intenta instalar más de un agente en un clúster, el trabajo de despliegue falla con un error de conflicto de espacio de nombres.
¿Qué versiones de Terraform están soportadas con los agentes?
Solo las dos versiones más recientes de Terraform soportadas por Schematics están soportadas con agentes, por ejemplo, Terraform v1.13 y Terraform v1.14. Las versiones anteriores de Terraform no están soportadas. Los
espacios de trabajo que utilizan versiones anteriores de Terraform deben actualizarse a una de las versiones soportadas antes de utilizar agentes. Consulte las instrucciones Actualización a una nueva versión de Terraform para actualizar antes de utilizar agentes.
¿Por qué falla la ejecución del espacio de trabajo con terraformx.x: executable file not found in $PATH ?
La versión de Terraform utilizada por el espacio de trabajo no está soportada con los agentes. El agente da soporte al espacio de trabajo utilizando Terraform v1.13 y v1.14 o las dos versiones más recientes de Terraform
soportadas por Schematics. Los espacios de trabajo con versiones anteriores de Terraform deben actualizarse a una de las versiones soportadas para que un agente las soporte. Para obtener más información, consulte la planificación de desuso y acciones de usuario para actualizar.
¿Qué tipo de trabajos se pueden ejecutar en un agente?
Puede ejecutar trabajos Schematics del espacio de trabajo Terraform and Actions en un agente.
¿Cómo puedo ver los resultados y registros del trabajo Schematics para los trabajos que se ejecutan en un agente?
El trabajo de espacio de trabajo o los registros de trabajo de acción están disponibles en la consola de la interfaz de usuario de Schematics. También puede acceder a los registros de trabajo utilizando la API del espacio de trabajo Schematics o la CLI.
¿Cuál es la configuración mínima de clúster necesaria en el release del agente?
El agente necesita el servicio IBM Cloud Kubernetes Service con un mínimo de tres nodos de trabajador, con un tipo de b4x16 o superior.
¿Cuántos espacios de trabajo se pueden asignar a un agente?
Actualmente, puede asignar cualquier número de espacios de trabajo a un agente. Los trabajos del espacio de trabajo se ponen en cola para ejecutarse en el agente, basándose en la política de asignación del agente. El agente sondea periódicamente Schematics para que se ejecuten los trabajos, con un intervalo de sondeo de un minuto. De forma predeterminada, el agente sólo ejecuta tres trabajos en paralelo. Los trabajos restantes están en cola.
¿Cuántos trabajos se pueden ejecutar en paralelo en un agente?
Schematics El agente puede realizar tres descargas de Git, trabajos de espacio de trabajo (mandatos de Terraform) y trabajos de acción (playbooks deAnsible ) en paralelo. Los trabajos adicionales se ponen en cola y se ejecutan cuando los trabajos anteriores completan la ejecución.
¿Cuál es el intervalo de sondeo predeterminado para los agentes?
Schematics mantiene una cola de trabajos para un agente. De forma predeterminada, cada minuto el agente sondea los trabajos.
¿Hay límites de tiempo de espera de ejecución al trabajar con agentes?
Schematics El agente relaja la limitación de tiempo de espera para la ejecución de playbook local-exec, remote-exec y Ansible. Están limitados a 60 minutos en el servicio multiarrendatario para garantizar una utilización
justa del servicio por parte de todos los usuarios. No se aplica ninguna duración para trabajos ejecutados en agentes. Los tiempos de ejecución de trabajos largos necesitan más capacidad de clúster de usuario y nodos trabajadores para garantizar
la ejecución puntual de todos los trabajos de clúster.
Se recomienda utilizar un servicio como, por ejemplo, Continuous Delivery para trabajos de larga ejecución que realizan tareas de instalación de software.
¿Cuál es la diferencia entre el distintivo agent-location y location en el servicio de agente?
El parámetro --agent-location es una variable que especifica la región del clúster donde se despliega un servicio de agente. Por ejemplo, us-south. Debe coincidir con la región de clúster.
El parámetro --location es una variable que especifica la región soportada por el servicio Schematics como us-south, us-east, eu-de, eu-gb. El agente sondea la instancia de servicio
Schematics desde esta ubicación, en busca de trabajos de espacio de trabajo o acción para su proceso.
¿Puede un agente ejecutar trabajos de espacio de trabajo asociados a distintos grupos de recursos?
Sí, un agente puede ejecutar trabajos de espacio de trabajo o de acciones asociados a cualquier grupo de recursos, en una cuenta. Las políticas de agente (asignación) se utilizan para asignar la ejecución de trabajos, basándose en el grupo de recursos, la región y las etiquetas de usuario a un agente específico.
¿Puede un agente trabajar con espacios de trabajo y acciones pertenecientes a distintas regiones de Schematics ?
Los despliegues de agentes están asociados con una región de inicio Schematics para la ejecución de trabajos. Solo pueden ejecutar trabajos de espacio de trabajo o acción definidos en la misma región como, por ejemplo, North America o Europe.
El agente sondea periódicamente su región de inicio Schematics para captar y ejecutar trabajos. Sólo puede ejecutar trabajos de espacio de trabajo o acción definidos para la región que contiene su región de inicio. Por ejemplo, un agente se
despliega en un clúster de usuarios en Sídney se configura con eu-de como ubicación de inicio. El agente sondea los trabajos en la región Europa, que contiene las regiones eu-de y eu-gb. Para desplegar
recursos utilizando el agente de Sídney, se deben crear espacios de trabajo o acciones en las regiones eu-de o eu-gb.
¿Es posible utilizar un agente para ejecutar trabajos para varias cuentas?
No, los agentes están asociados con una única cuenta padre Schematics y solo pueden ejecutar trabajos para espacios de trabajo o acciones que pertenezcan a esta cuenta.
¿Puede un espacio de trabajo existente ejecutar trabajos en un agente?
Sí. Los espacios de trabajo y las acciones se seleccionan por política para ejecutarlos en agentes. Un Schematics agent-selection-policy asigna espacios de trabajo o acciones existentes (o nuevas) para ejecutarse en un agente de
destino, si coinciden con los atributos de política para etiquetas, grupo de recursos, ubicación.
Por ejemplo, si tiene un espacio de trabajo existente: wks-0120 con tag=dev y desea que el espacio de trabajo se ejecute en Agent-1. Cree un agent-selection-policy con las reglas para seleccionar
Agent-1 cuando el tag == dev. Más adelante, el trabajo del espacio de trabajo como, por ejemplo, planificar, aplicar, actualizar se direccionan dinámicamente para ejecutarse en Agent-1.
¿Qué permisos de IAM son necesarios para desplegar un agente?
Para obtener información sobre los permisos de acceso, consulte Permisos de agente.
¿Puedo introducir certificados autofirmados o de TLS en el almacén de certificados raíz de CA de confianza de un pod o contenedor de IBM Cloud Kubernetes Service durante la ejecución del agente?
Sí, siga estos pasos para inyectar los certificados en un tiempo de ejecución de agente.
En los cuatro nombres de archivo de extensión .cer, asegúrese de modificar para sustituir el espacio por el subrayado.
-
Cree un mapa de configuración utilizando el archivo
.certal como se muestra en el mandatokubectrl.kubectl -n schematics-runtime create configmap xyz-root —-from-file 2014-2044_xyz_Root.cerkubectl -n schematics-runtime create configmap xyz-authentication —-from-file 2014-2029 xyz_Users_Authentication.cerkubectl -n schematics-runtime create configmap xyz-infrastructure —-from-file 2014-2029 xyz_Infrastructure.cer -
Monte el archivo de correlación de configuración como un volumen en un directorio
/etc/ssl/certs/como archivoagent-runtime-deployment-certs.yamlen un directorioxyz_agent_deployment_filescompartido.
El directorio compartido xyz_agent_deployment_files tiene dos archivos yaml denominados - agent-runtime-deployment-certs.yaml y - agent-runtime-deployment.yaml.
El archivo agent-runtime-deployment-certs.yaml actualiza los certificados y añade el archivo agent-runtime-deployment.yaml que le proporciona los detalles de despliegue deseados para inyectar los certificados sin ningún
cambio adicional.
Qué atributos de espacios de trabajo o acciones se utilizan para seleccionar dinámicamente un agente de destino para su ejecución
Los siguientes atributos de un espacio de trabajo o una acción de Schematics se utilizan para seleccionar dinámicamente la instancia del agente.
- Grupo de recursos
- Ubicación (región)
- Etiquetas
La Política de asignación de agente para una instancia de agente determina qué agente está seleccionado para ejecutar un trabajo de espacio de trabajo o acción.
A continuación se muestra un escenario de ejemplo para el uso de etiquetas.
Si su organización tiene tres zonas de aislamiento de red diferentes (como Dev, HR-Stage y HR-Prod) y ha instalado tres agentes (uno cada uno, para las tres zonas de aislamiento de red). Ha definido un
agent-assignment-policy para el agente que se ejecuta en Dev, con el selector como tags=dev. Todos los espacios de trabajo que tienen tags=dev automáticamente se enlazan con el agente de
Dev. En otras palabras, el agente de Dev se utiliza para descargar plantillas de Terraform (desde el repositorio Git ) y ejecutar trabajos de Terraform. De forma similar, agent-assignment-policy puede
incluir otros atributos de los espacios de trabajo para definir el agente para la ejecución de trabajos.
¿Cómo puedo habilitar la modalidad de depuración en un agente?
Puede seguir estos pasos para habilitar o inhabilitar la modalidad de depuración de un agente.
- Inicie sesión en IBM Cloud.
- Pulse Kubernetes en la ventana del navegador y, a continuación, pulse Clústeres
- En la página Clústeres deKubernetes, pulse el clúster > panel de control de Kubernetes.
- Pulse el desplegable predeterminado para ver la lista de Espacios de nombres:
- En el desplegable, escriba los espacios de nombres Schematics-job-runtime.
- Pulse Correlación de configuración en Configuración y almacenamiento.
- En la página Correlaciones de configuración. Pulse los tres puntos en schematics-jobrunner-config.
- Pulse Editar para ver la página Editar un recurso con los separadores YAML y JSON.
- Ahora puede editar el parámetro
JR_LOGGERLEVELpara el registro de microservicio de ejecutor de trabajos. De forma predeterminada, el valor es-1que indica inhabilitar la depuración para habilitar la necesidad de editarJR_LOGGERLEVELcomo0. - Haz clic en Actualizar para aplicar tus cambios.
- Pulse el desplegable predeterminado para ver la lista de Espacios de nombres:
¿Puedo actualizar una versión beta de agente a una versión de disponibilidad general (GA) de agente?
No, no puede actualizar la configuración beta del agente a la versión GA del agente.
¿El agente Schematics es el mismo que los agentes de nube de Terraform?
Schematics El agente desempeña un rol similar al de los agentes de Terraform Cloud.
¿Se ejecutan los agentes en los recursos de nube IBM Cloud ?
Schematics El agente solo puede ejecutar cargas de trabajo de espacio de trabajo y acción. Para la versión beta, los agentes se despliegan en clústeres de IBM Cloud IBM Cloud Kubernetes Service en la cuenta de usuario.
¿Cuáles son las configuraciones de clúster mínimas necesarias para dar soporte a 30 trabajos en el agente Schematics ?
Para el clúster IBM Cloud® Virtual Servers for Virtual Private Cloud o IBM Cloud® Kubernetes Service. Necesita 9 un número mínimo de nodos, con un tipo bx2.4x16, y edite los siguientes despliegues de microservicios
de agente para tener el recuento de réplicas prescrito.
| Microservicio | Número de réplicas |
|---|---|
| jobrunner | 4 |
| caja de arena | 8 |
| tiempo de ejecución-ws | 16 |
¿Cómo puede un usuario identificar el trabajo creado por un agente?
Puede identificar que un agente crea el espacio de trabajo a través de los registros de trabajo del espacio de trabajo.
¿Es posible que un agente cree un espacio de trabajo y todavía no tenga una referencia en el registro de trabajo del espacio de trabajo?
No, si un agente crea un espacio de trabajo, debe ver una referencia en el registro de trabajo del espacio de trabajo. Si no ve la referencia, debe comprobar que la validación de la política ha fallado.
¿Puede el agente Schematics establecer una conexión con la instancia privada de Git ?
Sí, el agente Schematics establece una conexión con la instancia Git privada. Sin embargo, es necesario disponer de un certificado SSL y seguir estos pasos en los microservicios del agente.
- Establezca una conexión configurando un certificado de SSL en los microservicios de los agentes
Runtime-wsJobrunner,Sandbox, y. - La configuración se debe realizar utilizando el montaje del configmap Kubernetes Service.
-
Crea un ConfigMap con el certificado SSL necesario; por ejemplo:
kubectl -n schematics-job-runtime create configmap mytestcert --from-file cert.pem -
Utilice configmap como volumen y móntelo como compartido en el archivo de despliegue en los microservicios
Jobrunner,SandboxyRuntime-ws.apiVersion: apps/v1 kind: Deployment metadata: annotations: deployment.kubernetes.io/revision: "1" kubernetes.io/change-cause: job_runner_1.0 creationTimestamp: "2023-09-14T12:18:07Z" generation: 1 labels: app: jobrunner name: jobrunner namespace: schematics-job-runtime resourceVersion: "23425" uid: fa66583a-8bdb-40a1-9b05-df2c2bf56656 spec: progressDeadlineSeconds: 600 ..... ..... volumes: - hostPath: path: /var/log/at type: "" name: at-events - hostPath: path: /var/log/schematics type: "" name: ext-logs - name: mytestcert #### added as a volume configMap: name: mytestcert status: availableReplicas: 1 conditions: - lastTransitionTime: "2023-09-14T12:18:42Z" lastUpdateTime: "2023-09-14T12:18:42Z" message: Deployment has minimum availability. reason: MinimumReplicasAvailable status: "True" type: Available - lastTransitionTime: "2023-09-14T12:18:07Z" lastUpdateTime: "2023-09-14T12:18:42Z" message: ReplicaSet "jobrunner-7f9ffdf959" has successfully progressed. reason: NewReplicaSetAvailable status: "True" type: Progressing observedGeneration: 1 readyReplicas: 1 replicas: 1 updatedReplicas: 1
-
¿Puede el agente Schematics actualizar una conexión con la instancia privada de Git ?
Sí, puede actualizar el agente con los metadatos para realizar la incorporación de catálogo con la instancia de Git privada. Utilice la solicitud de API de actualización de ejemplo como referencia.
Realice este paso sólo si un agente no tiene metadatos.
curl -X PUT 'https://schematics.cloud.ibm.com/v2/agents/<agent_id>'
-H 'Authorization: Bearer <token>'
-H 'X-Feature-Agents: true'
-H 'refresh_token: <refresh_token>'
-d '{
"agent_metadata": [
{
"name": "purpose",
"value": ["git"]
},
{
"name": "git_endpoints",
"value": ["https://myprivate-gitinstance/testrepo"]
}
]
}'