Esta página ha sido traducida por una máquina.

Solución de problemas de DevOps

Utilice la información de solución de problemas para identificar y resolver las incidencias comunes que se pueden producir al trabajar con el servicio DevOps.

Despliegue de aplicaciones en OKE

El paso de aplicación del manifiesto de Kubernetes falla debido a varios errores.

Error de autorización:

Puede que el cluster no exista o que falten un grupo dinámico y una política para proporcionar al recurso de pipeline acceso a otros recursos de Oracle Cloud Infrastructure (OCI) del compartimento.

Compruebe si existen recursos de OCI relevantes y se crea un grupo dinámico para el recurso de pipeline de despliegue de OCI DevOps junto con una política para permitir que este grupo dinámico acceda a los recursos de OCI relevantes.

Por ejemplo, cree un grupo dinámico para el pipeline de despliegue. Puede asignar al grupo dinámico el nombre DeployDynamicGroup y sustituir compartmentOCID por el OCID del compartimento: All {resource.type = 'devopsdeploypipeline', resource.compartment.id = 'compartmentOCID'}

Cree una política de IAM para permitir que el grupo dinámico acceda a todos los recursos: Allow dynamic-group DeployDynamicGroup to manage all-resources in compartment <compartment_name>

Consulte Políticas de IAM de DevOps.

Falta el campo de protocolo:

Puede que se muestre el siguiente error: io.kubernetes.client.openapi.ApiException: class V1Status { apiVersion: v1 code: 500 details: null kind: Status message: failed to create typed patch object: .spec.template.spec.containers[name=\"helloworld\"].ports: element 0: associative list with keys has an element that omits key field \"protocol\" metadata: class V1ListMeta { _continue: null remainingItemCount: null resourceVersion: null selfLink: null } reason: null status: Failure }

El manifiesto de Kubernetes debe tener un campo de protocolo donde esté definido el puerto de contenedor.

Este problema es un bug existente en la aplicación del servidor de Kubernetes para la versión de cluster inferior a la 1.20. Para obtener más información, consulte los problemas 130 y 92332.

Agregue un campo de protocolo donde esté definido el puerto de contenedor.

Timeout del socket:

Puede que el mensaje de error sea: io.kubernetes.client.openapi.ApiException: java.net.SocketTimeoutException: connect timed out

Este error se puede producir si no se puede acceder o conectar al punto final público de Kubernetes.

El punto final de la API de Kubernetes debe ser una dirección conectable válida. Para obtener un punto final de IP pública válido, debe comprobar la configuración de red del cluster, consulte ejemplos.

El estado de despliegue falla debido a un timeout:

Esto puede ocurrir si el tiempo de despliegue de Kubernetes supera la fecha límite de progreso.

Por defecto, la fecha límite de progreso de Kubernetes es de 600 segundos. Consulte Segundos de fecha límite de progreso.

Si los pods del despliegue de K8s no se implementan correctamente para la fecha límite, se muestra este mensaje de error en los logs de despliegue. Para obtener más información, consulte Despliegue con fallos.

Consulte los logs de estos pods en el cluster.

Fallo de auditoría de vulnerabilidad

El paso VulnerabilityAudit falla en la etapa Compilación gestionada.

Configuración de archivo pom.xml no válida o fallo en el procesamiento de archivos pom.xml por parte del JAR de cliente:

El JAR de cliente de Maven de Application Dependency Management (ADM) no puede crear la lista de materiales (BOM) (carga útil para crear el paso VulnerabilityAudit) debido a una configuración de archivo pom.xml no válida o un fallo en el procesamiento de los archivos pom.xml por parte del JAR de cliente.

  1. Corrija y valide el archivo pom.xml.
  2. Abra una solicitud de servicio.

Timeout o fallo en el paso VulnerabilityAudit:

El paso VulnerabilityAudit se crea pero nunca alcanza un estado final correcto debido a un timeout o fallo en el paso VulnerabilityAudit.

Abra una solicitud de servicio para fallo.

Error de Validación:

Puede que se produzca un error de validación si se introduce un valor incorrecto para knowledgeBaseId o vulnerabilityCompartmentId en el archivo de especificación de compilación.

Compruebe los valores proporcionados en el archivo de especificación de compilación.

Políticas de IAM no definidas:

El paso VulnerabilityAudit puede fallar si no se ha definido ninguna política para permitir que el pipeline de compilación acceda a los recursos de ADM.

Defina políticas para acceder a los recursos de ADM.

Error del servidor:

Es posible que se produzca un error de servicio debido a una interrupción intermitente.

Abra una solicitud de servicio.

Configuración de conexión privada

La ejecución de la compilación falla sistemáticamente en distintos pasos.

La ejecución de la compilación falla en el paso 'Provision Private Access':

Puede que el mensaje de error sea: Fallo al configurar el acceso privado debido a que subnetId o nsgId no se han autenticado o no se han encontrado.

Esto puede ocurrir si las políticas de Identity and Access Management (IAM) son incorrectas o si los valores de subnetId o nsgId proporcionados durante la configuración no son válidos.

Puede tener en cuenta una de las siguientes resoluciones en función de la causa del error:

  1. Introduzca políticas de IAM que sean correctas. Para obtener ejemplos de políticas, consulte creación de compilación.
  2. Compruebe si los valores subnetId y nsgId son correctos.

La ejecución de la compilación falla sistemáticamente en el paso "Configurar entorno de software":

El mensaje de error puede ser: No se ha podido recuperar el grupo de certificados del servicio de certificados para el origen de compilación <source> y caBundleId <Oracle Cloud Identifier (OCID) of ca bundle>.

Esto puede ocurrir si la configuración de la política de IAM para que el pipeline de compilación acceda al certificado es incorrecta o si ha configurado un valor incorrecto para caBundleId en el recurso de conexión.

Puede tener en cuenta una de las siguientes resoluciones en función de la causa del error:

  1. Introduzca políticas de IAM que sean correctas. Para obtener ejemplos de políticas, consulte creación de compilación.
  2. Compruebe caBundleId y corríjalo en el recurso de conexión externa.

La ejecución de la compilación falla sistemáticamente en el paso "Descargar origen":

Si la URL es correcta y el servidor del repositorio tiene instalado un certificado autofirmado, compruebe TLSVerifyConfiguration en el recurso de conexión.

Otra causa podría ser que configuró un servidor de repositorio para el que no se conoce el certificado SSL.

Siga los pasos indicados y configure la verificación de seguridad de capa de transporte (TLS) en el recurso de conexión externa:

  1. Obtenga el certificado de autoridad de certificación (CA) mediante: echo -n | openssl s_client -connect <host>:<port> | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ca.pem
  2. Cargue el certificado en el recurso del grupo de CA.
  3. Al crear el recurso de conexión externa, configure TLSVerifyConfiguration seleccionando el recurso del grupo de CA creado.

La ejecución de la compilación falla sistemáticamente en el paso "Descargar origen":

Puede que el mensaje de error sea: No se puede acceder al repositorio <repo URL>/Fallo al conectarse a <repo ID and port number>.

Esto puede ocurrir si no se puede acceder a la URL del repositorio configurada en uno de buildSource en buildStage desde el programa de ejecución de compilación.

Compruebe si la URL del repositorio configurada es correcta y configure el acceso privado si la URL del repositorio es una IP privada.

La ejecución de la compilación falla sistemáticamente en el paso "Configurar entorno de software", "Descargar origen" o "cualquiera de los pasos del cliente en el archivo de especificación de compilación".:

Puede que aparezca uno de los siguientes mensajes de error:
  1. Error interno. Se produce durante el fallo del paso setup_software_env.
  2. No se puede acceder al repositorio. Se produce durante el fallo de descargar origen.
  3. Error relacionado con la red en los logs del cliente.

Esto puede ocurrir si no ha configurado correctamente la red virtual en la nube (VCN).

Al configurar el acceso privado, el tráfico de salida de la máquina virtual del ejecutor de versiones se controla mediante la VCN. La resolución interna del sistema de nombres de dominio (DNS) de las redes virtuales en la nube no está soportada para el acceso privado. Utilice las IP para comunicarse con los servicios alojados en la red privada. Se deben cumplir los siguientes requisitos para la VCN (red) en la que está configurando el acceso privado:

  1. Debe tener un gateway de servicio/gateway de NAT en la VCN configurada.
  2. Se deben agregar reglas de ruta para proporcionar acceso a todos los servicios de OCI a través de uno de estos gateways. Si el código fuente o los comandos del archivo de especificación de compilación necesitan acceso a Internet, deben existir las reglas adecuadas antes de ejecutar la compilación. Esto es necesario, ya que todo el tráfico de salida del programa de ejecución de compilación pasa por la red.

La ejecución de compilación falla al ejecutar comandos de Docker de la especificación de compilación durante la etapa Compilación gestionada con acceso privado:

Este error se produce cuando la etapa Compilación gestionada está configurada con acceso privado y tiene comandos docker en el archivo de especificaciones de compilación. Por ejemplo, la creación de docker falla con un error de resolución de DNS o un error de timeout de conexión si el archivo docker contiene comandos que acceden a Internet. De manera similar, la ejecución de Docker falla con un error de resolución de DNS o de timeout de conexión al intentar acceder a Internet desde el contenedor.

Para resolver esto, utilice --network host en los comandos de docker para configurar la red de contenedores de Docker correctamente. Por ejemplo,
docker build --network host -t hello-world:1.0
docker run --network host hello-world:1.0