On the details page of a workload, if an event is displayed indicating that the pod fails to be started, perform the following operations to locate the fault:
If the node uses Docker, run the following command:
docker ps -a | grep $podName
If the node uses containerd, run the following command:
If the node uses Docker, run the following command:
docker logs $containerID
If the node uses containerd, run the following command:
Rectify the fault of the workload based on logs.
cat /var/log/messages | grep $containerID | grep oom
Check whether a system OOM is triggered based on the logs.
Determine the cause based on the logs or events, as listed in Table 1.
Log or Event | Possible Cause | Fault Locating and Solution |
|---|---|---|
Pod logs: exit code 0 | There is no process in the pod. | Check whether the pod can run properly. For details, see No Process in the Pod (Exit Code: 0). |
| The health check fails. | Check whether the liveness probe for the pod is properly configured. For details, see Health Check Failed (Exit Code: 137). |
| The disk space is insufficient. | Expand the disk space or clear unneeded files. For details, see Insufficient Disk Space of the Pod. |
Pod logs: oom | The pod memory is insufficient. | Check whether the pod has proper resource settings. For details, see Insufficient Container Resources. |
Pod logs: Address already in use | A conflict occurs between container ports in the pod. | Check whether there is a container port conflict in the pod. For details, see Container Port Conflict in the Pod. |
Kubernetes event:
| A secret is mounted to the workload, and the value of the secret is not encrypted using Base64. | For details about the solution, see Improper Value of the Secret Mounted to the Workload. |
Kubernetes event:
| The x86 container image may run on an Arm node. | For details about the solution, see Unmatched Container Image Tag with the Node Architecture. |
Kubernetes event:
| The containerd version is incompatible with the tail version. | For details about the solution, see Exit of tail -f xx in the Container Startup Command (Exit Code: 141). |
Other pod logs | Locate the fault based on services. | For details about the fault locating, see Service Setting Checks. |
If the node uses Docker, run the following command:
docker ps -a | grep $podName
If the node uses containerd, run the following command:
Below shows an example.

If there is no process in the pod, the status code Exited (0) is displayed.
The health checks configured for a workload are performed on services periodically. If an exception occurs, there will be an event that indicates an unhealthy pod, and the pod restarts will fail.
If a liveness probe is configured for the workload and the number of health check failures exceeds the threshold, the pod will be restarted. On the workload details page, if Kubernetes events contain Liveness probe failed: Get http..., the health check fails.
Solution
Click the workload name to go to the workload details page, click the Containers tab. Then select Health Check to check whether the policy is proper or whether services are running properly.
The following message refers to the thin pool disk that is allocated from the Docker disk selected during node creation. You can run the lvs command as user root to view the current disk usage.
Thin Pool has 15991 free data blocks which is less than minimum required 16383 free data blocks. Create more free space in thin pool or use dm.min_free_space option to change behavior

Solution
Solution 1: Clearing images
Perform the following operations to clear unused images: Do not delete system images, such as the cce-pause image. Otherwise, the pod creation may fail.
Solution 2: Expanding the disk capacity
To expand a disk's capacity, perform the following operations:
Only the storage capacity of EVS disks can be expanded. You need to perform the following operations to expand the capacity of logical volumes and file systems.
A data disk is divided depending on the container storage Rootfs:
If the upper limit of container resources has been reached, OOM will be displayed in the event details as well as in the log:
cat /var/log/messages | grep 96feb0a425d6 | grep oom

When a workload is created, if the requested resources exceed the configured upper limit, the system OOM is triggered and the container exits unexpectedly.
If the node uses Docker, run the following command:
docker ps -a | grep $podName
If the node uses containerd, run the following command:
If the node uses Docker, run the following command:
docker logs $containerID
If the node uses containerd, run the following command:
Rectify the fault of the workload based on logs. As shown in the following figure, container ports in the same pod conflict. As a result, the container fails to be started.
Figure 1 Pod restart failure due to a container port conflict

Solution
Configure proper container ports that do not conflict with each other. Then, create the workload again.
If a pod uses the host network (with hostNetwork: true configured), there may be a container port conflict. This is because containers in the pod share the network interface and port range with the host node. Multiple pods using the same port cannot run on the same node.
Information similar to the following is displayed in the event:
Error: failed to start container "filebeat": Error response from daemon: OCI runtime create failed: container_linux.go:330: starting container process caused "process_linux.go:381: container init caused \"setenv: invalid argument\"": unknown
The root cause is that a secret is mounted to the workload, but the value of the secret is not encrypted using Base64.
Solution
Create a secret on the console. The value of the secret is automatically encrypted using Base64.
If you use YAML to create a secret, you need to manually encrypt its value using Base64.
echo -n "Content to be encoded" | base64
The proper image tag is not used during the workload creation on an Arm node. To resolve this issue, use the proper image tag.
The Kubernetes event is as follows:
the failed container exited with ExitCode: 141
Possible Cause
The legacy version of containerd is incompatible with the tail version (≥ 8.28) in the container image. As a result, executing the tail -f command leads to an unexpected exit, returning exit code 141.
Temporary Workaround
Change tail -f xx in the startup parameters to sleep 2 && tail -f xx and create a workload again.
Solution
Check whether the workload startup command is correctly executed or whether the workload has a bug.
If the node uses Docker, run the following command:
docker ps -a | grep $podName
If the node uses containerd, run the following command:
If the node uses Docker, run the following command:
docker logs $containerID
If the node uses containerd, run the following command:
Note: In the preceding command, containerID indicates the ID of the container that has exited.
Figure 2 Incorrect startup command of the container

As shown in the figure above, the container fails to be started due to an incorrect startup command. For other errors, rectify the bugs based on the logs.
Solution
Create a new workload and configure a correct startup command.