π‘Όπ’π’…π’†π’“π’”π’•π’‚π’π’…π’Šπ’π’ˆ 𝑲𝒖𝒃𝒆𝒓𝒏𝒆𝒕𝒆𝒔 𝑷𝒐𝒅 π’‡π’‚π’Šπ’π’–π’“π’†π’”

Pods can have startup and runtime errors.

Startup errors include:

βœ… ImagePullBackoff
βœ… ImageInspectError
βœ… ErrImagePull
βœ… ErrImageNeverPull
βœ… RegistryUnavailable
βœ… InvalidImageName

Runtime errors include:

πŸ“Œ
βœ… CrashLoopBackOff
βœ… RunContainerError
βœ… KillContainerError
βœ… VerifyNonRootError
βœ… RunInitContainerError
βœ… CreatePodSandboxError
βœ… ConfigPodSandboxError
βœ… KillPodSandboxError
βœ… SetupNetworkError
βœ… TeardownNetworkError

π‘°π’Žπ’‚π’ˆπ’†π‘·π’–π’π’π‘©π’‚π’„π’Œπ‘Άπ’‡π’‡

❗
✍ This error appears whenΒ #k8sΒ isn’t able to retrieve the image for one of theΒ #containersΒ of the Pod.
There are three common culprits:
βœ… The image name is invalid
βœ… You specified a non-existing tag for the image.
βœ… The image that you’re trying to retrieve belongs to a private registry and the cluster doesn’t have credentials to access it.
The first two cases can be solved by correcting the image name and tag.
For the last, one should add the credentials to your private registry in a Secret and reference it in the Pods

𝑹𝒖𝒏π‘ͺπ’π’π’•π’‚π’Šπ’π’†π’“π‘¬π’“π’“π’π’“

❗
✍ The error appears when the container is unable to start before application
Common causes:
βœ… Mounting a not-existent volume such as ConfigMap or Secrets
βœ… Mounting a read-only volume as read-write
More detailed aspect can be found by describing the ‘failed’ pod

π‘ͺπ’“π’‚π’”π’‰π‘³π’π’π’‘π‘©π’‚π’„π’Œπ‘Άπ’‡π’‡

❗
✍ If the container can’t start, thenΒ #KubernetesΒ shows the CrashLoopBackOff message as a status.
Usually, a container can’t start when:
βœ… There’s an error in the application that prevents it from starting.
βœ… YouΒ misconfigured the container.
βœ… The Liveness probe failed too many times.

𝑷𝒐𝒅𝒔 π’Šπ’ 𝒂 π‘·π’†π’π’…π’Šπ’π’ˆ 𝒔𝒕𝒂𝒕𝒆

❗
✍ Assuming that the scheduler component is running fine, here are the causes:
βœ… The cluster doesn’t have enough resources such as CPU and memory to run the Pod.
βœ… The current Namespace has a ResourceQuota object and creating the Pod will make the Namespace go over the quota.
βœ… The Pod is bound to aΒ PendingΒ PersistentVolumeClaim.
The best option is to inspect theΒ EventsΒ section in theΒ “kubectl describe”

Rajesh Kumar
Follow me
Latest posts by Rajesh Kumar (see all)
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x