Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Cómputo
Elastic Cloud Server
Bare Metal Server
Auto Scaling
Image Management Service
Dedicated Host
FunctionGraph
Cloud Phone Host
Huawei Cloud EulerOS
Redes
Virtual Private Cloud
Elastic IP
Elastic Load Balance
NAT Gateway
Direct Connect
Virtual Private Network
VPC Endpoint
Cloud Connect
Enterprise Router
Enterprise Switch
Global Accelerator
Gestión y gobernanza
Cloud Eye
Identity and Access Management
Cloud Trace Service
Resource Formation Service
Tag Management Service
Log Tank Service
Config
Resource Access Manager
Simple Message Notification
Application Performance Management
Application Operations Management
Organizations
Optimization Advisor
Cloud Operations Center
Resource Governance Center
Migración
Server Migration Service
Object Storage Migration Service
Cloud Data Migration
Migration Center
Cloud Ecosystem
KooGallery
Partner Center
User Support
My Account
Billing Center
Cost Center
Resource Center
Enterprise Management
Service Tickets
HUAWEI CLOUD (International) FAQs
ICP Filing
Support Plans
My Credentials
Customer Operation Capabilities
Partner Support Plans
Professional Services
Análisis
MapReduce Service
Data Lake Insight
CloudTable Service
Cloud Search Service
Data Lake Visualization
Data Ingestion Service
GaussDB(DWS)
DataArts Studio
IoT
IoT Device Access
Otros
Product Pricing Details
System Permissions
Console Quick Start
Common FAQs
Instructions for Associating with a HUAWEI CLOUD Partner
Message Center
Seguridad y cumplimiento
Security Technologies and Applications
Web Application Firewall
Host Security Service
Cloud Firewall
SecMaster
Data Encryption Workshop
Database Security Service
Cloud Bastion Host
Data Security Center
Cloud Certificate Manager
Situation Awareness
Managed Threat Detection
Blockchain
Blockchain Service
Servicios multimedia
Media Processing Center
Video On Demand
Live
SparkRTC
Almacenamiento
Object Storage Service
Elastic Volume Service
Cloud Backup and Recovery
Storage Disaster Recovery Service
Scalable File Service
Volume Backup Service
Cloud Server Backup Service
Data Express Service
Dedicated Distributed Storage Service
Contenedores
Cloud Container Engine
Software Repository for Container
Application Service Mesh
Ubiquitous Cloud Native Service
Cloud Container Instance
Bases de datos
Relational Database Service
Document Database Service
Data Admin Service
Data Replication Service
GeminiDB
GaussDB
Distributed Database Middleware
Database and Application Migration UGO
TaurusDB
Middleware
Distributed Cache Service
API Gateway
Distributed Message Service for Kafka
Distributed Message Service for RabbitMQ
Distributed Message Service for RocketMQ
Cloud Service Engine
EventGrid
Dedicated Cloud
Dedicated Computing Cluster
Aplicaciones empresariales
ROMA Connect
Message & SMS
Domain Name Service
Edge Data Center Management
Meeting
AI
Face Recognition Service
Graph Engine Service
Content Moderation
Image Recognition
Data Lake Factory
Optical Character Recognition
ModelArts
ImageSearch
Conversational Bot Service
Speech Interaction Service
Huawei HiLens
Developer Tools
SDK Developer Guide
API Request Signing Guide
Terraform
Koo Command Line Interface
Distribución de contenido y cómputo de borde
Content Delivery Network
Intelligent EdgeFabric
CloudPond
Soluciones
SAP Cloud
High Performance Computing
Servicios para desarrolladores
ServiceStage
CodeArts
CodeArts PerfTest
CodeArts Req
CodeArts Pipeline
CodeArts Build
CodeArts Deploy
CodeArts Artifact
CodeArts TestPlan
CodeArts Check
Cloud Application Engine
aPaaS MacroVerse
KooPhone
KooDrive

Códigos de salida

Actualización más reciente 2023-08-08 GMT+08:00

Cuando un contenedor no se inicia o termina, los eventos de Kubernetes registran el código de salida para informar de la causa. En esta sección se describe cómo localizar fallas con un código de salida.

Consulta de un código de salida

Puede usar kubectl para conectarse al clúster y ejecutar el siguiente comando para comprobar el pod:

kubectl describe pod {pod name}
En la salida del comando, el campo Exit Code indica el código de estado de la última salida del programa. Si el valor no es 0, el programa sale anormalmente. Puede analizar más a fondo la causa con este código.
Containers: 
  container-1: 
    Container ID: ... 
    Image: ... 
    Image ID: ... 
    Ports: ... 
    Host Ports: ... 
    Args: ... 
    State: Running    
      Started: Sat, 28 Jan 2023 09:06:53 +0000 
    Last State: Terminated    
      Reason: Error    
      Exit Code: 255    
      Started: Sat, 28 Jan 2023 09:01:33 +0000    
      Finished: Sat, 28 Jan 2023 09:05:11 +0000 
    Ready: True 
    Restart Count: 1

Descripción

El código de salida varía de 0 a 255.

  • Si el código de salida es 0, el contenedor sale normalmente.
  • Generalmente, la salida anormal es causada por el programa y tal código de salida varía de 1 a 128. En escenarios especiales, el código de salida varía de 129 a 255.
  • Cuando un programa sale debido a interrupciones externas, el código de salida varía de 129 a 255. Cuando el sistema operativo envía una señal de interrupción al programa, el código existente es el valor de señal de interrupción más 128. Por ejemplo, si el valor de señal de interrupción de SIGKILL es 9, el código de estado de salida es 137 (9 + 128).
  • Si el código existente no está en el rango de 0 a 255, por ejemplo, exit(-1), el código de salida se convierte automáticamente en un valor que está dentro del rango de 0 a 255.

    Si el código existente es un número positivo, la fórmula de conversión es la siguiente:

    code % 256

    Si el código de salida es un número negativo, la fórmula de conversión es la siguiente:

    256 - (|code| % 256)

Para obtener más información, consulte Códigos de salida con significados especiales.

Códigos de salida comunes

Tabla 1 Códigos de salida comunes

Código de salida

Nombre

Descripción

0

Salida normal

El contenedor sale normalmente. Este código de estado no indica necesariamente que se produce una excepción. Cuando no hay ningún proceso en el contenedor también se puede mostrar 0.

1

Error de programa común

Hay muchas causas para esta excepción, la mayoría de las cuales son causadas por el programa. Necesita localizar la causa con los logs de contenedor. Por ejemplo, este error se produce cuando se ejecuta una imagen x86 en un nodo de Arm.

125

El contenedor no se está ejecutando.

Las causas posibles son:

  • Se utiliza un indicador indefinido en el comando, por ejemplo, docker run --abcd.
  • El comando definido por el usuario en la imagen no tiene permisos suficientes en el host local.
  • El motor de contenedor no es compatible con el sistema operativo host o hardware.

126

Error de llamada al comando

El comando llamado en la imagen no se puede ejecutar. Por ejemplo, el permiso de archivo es insuficiente o el archivo no se puede ejecutar.

127

No se puede encontrar el archivo o directorio.

No se puede encontrar el archivo o directorio especificado en la imagen.

128

Parámetro de salida no válido

El contenedor sale pero no se proporciona ningún código de salida válido. Esto puede deberse a múltiples motivos. Es necesario localizar aún más la causa. Por ejemplo, una aplicación que se ejecuta en el nodo de containerd intenta invocar al comando de docker.

137

Terminación inmediata (SIGKILL)

El programa es terminado por la señal SIGKILL. Las causas comunes son las siguientes:

  • El uso de memoria del contenedor en el pod alcanza el límite de recursos. Por ejemplo, la falta de memoria (OOM) hace que cgroup detenga el contenedor por la fuerza.
  • Si ocurre OOM, el núcleo del nodo detiene algunos procesos para liberar la memoria. Como resultado, el contenedor puede terminarse.
  • Si la comprobación de estado contenedor falla, kubelet detiene el contenedor.
  • Otros procesos externos, como scripts maliciosos, detienen el contenedor por la fuerza.

139

Error de segmentación (SIGSEGV)

El contenedor recibe la señal SIGSEGV del sistema operativo porque el contenedor intenta acceder a una ubicación de memoria no autorizada.

143

Terminación agraciada (SIGTERM)

El contenedor se cierra correctamente según las instrucciones del host. Generalmente, este código de salida 143 no requiere solución de problemas.

255

El código de salida está fuera de rango.

El código de salida de contenedor está fuera de rango. Por ejemplo, la salida (-1) puede usarse para una salida anormal, y -1 se convierte automáticamente en 255.

Se requiere más solución de problemas.

Señal de interrupción estándar de Linux

Puede ejecutar el comando kill -l para ver las señales y los valores correspondientes en el SO Linux.

Tabla 2 Señales de interrupción estándar de Linux comunes

Señal

Valor

Acción

Confirmación

SIGHUP

1

Term

Se envía cuando finaliza la conexión del terminal de usuario (normal o anormal).

SIGINT

2

Term

Señal de terminación del programa, que es enviada por el terminal pulsando Ctrl+C.

SIGQUIT

3

Core

De manera similar a SIGINT, el terminal envía el comando exit. Generalmente, el commando de salida se controla pulsando Ctrl+\.

SIGILL

4

Core

Instrucción no válida, generalmente porque se produce un error en el archivo ejecutable.

SIGABRT

6

Core

Señal generada cuando se invoca la función abortar. El proceso termina anormalmente.

SIGFPE

8

Core

Se produce un error aritmético de coma flotante. También se producen otros errores aritméticos como el divisor 0.

SIGKILL

9

Term

Se termina cualquier proceso.

SIGSEGV

11

Core

Intento de acceder a una ubicación de memoria no autorizada.

SIGPIPE

13

Term

La tubería está desconectada.

SIGALRM

14

Term

Indica la temporización del reloj.

SIGTERM

15

Term

Señal de fin de proceso, que suele ser la salida normal del programa.

SIGUSR1

10

Term

Esta es una señal definida por el usuario en las aplicaciones.

SIGUSR2

12

Term

Esta es una señal definida por el usuario en las aplicaciones.

SIGCHLD

17

Ign

Esta señal se genera cuando un subproceso finaliza o se interrumpe.

SIGCONT

18

Cont

Reanuda un proceso detenido.

SIGSTOP

19

Stop

Suspender la ejecución de un proceso.

SIGTSTP

20

Stop

Detener un proceso.

SIGTTIN

21

Stop

El proceso en segundo plano lee el valor de entrada del terminal.

SIGTTOU

22

Stop

El proceso en segundo plano lee el valor de salida del terminal.

Utilizamos cookies para mejorar nuestro sitio y tu experiencia. Al continuar navegando en nuestro sitio, tú aceptas nuestra política de cookies. Descubre más

Comentarios

Comentarios

Comentarios

0/500

Seleccionar contenido

Enviar el contenido seleccionado con los comentarios