Você pode usar a sintaxe ' descrever pod '
Para usar OpenShift:
oc describe pod <pod-id>
Para vanilla Kubernetes:
kubectl describe pod <pod-id>
Examine os eventos da saída. No meu caso, mostra Back-off puxando imagem coredns / coredns: mais recente
Neste caso, a imagem coredns / coredns: latest não pode ser extraída da Internet.
Events:
FirstSeen LastSeen Count From SubObjectPath Type Reason Message
--------- -------- ----- ---- ------------- -------- ------ -------
5m 5m 1 {default-scheduler } Normal Scheduled Successfully assigned coredns-4224169331-9nhxj to 192.168.122.190
5m 1m 4 {kubelet 192.168.122.190} spec.containers{coredns} Normal Pulling pulling image "coredns/coredns:latest"
4m 26s 4 {kubelet 192.168.122.190} spec.containers{coredns} Warning Failed Failed to pull image "coredns/coredns:latest": Network timed out while trying to connect to https://index.docker.io/v1/repositories/coredns/coredns/images. You may want to check your internet connection or if you are behind a proxy.
4m 26s 4 {kubelet 192.168.122.190} Warning FailedSync Error syncing pod, skipping: failed to "StartContainer" for "coredns" with ErrImagePull: "Network timed out while trying to connect to https://index.docker.io/v1/repositories/coredns/coredns/images. You may want to check your Internet connection or if you are behind a proxy."
4m 2s 7 {kubelet 192.168.122.190} spec.containers{coredns} Normal BackOff Back-off pulling image "coredns/coredns:latest"
4m 2s 7 {kubelet 192.168.122.190} Warning FailedSync Error syncing pod, skipping: failed to "StartContainer" for "coredns" with ImagePullBackOff: "Back-off pulling image \"coredns/coredns:latest\""
Etapas adicionais de depuração
- tente puxar a imagem do docker e marcar manualmente no seu computador
- Identifique o nó fazendo um 'kubectl / oc get pods -o wide'
- ssh para o nó (se possível) que não pode puxar a imagem docker
- verifique se o nó pode resolver o DNS do registro do docker executando um ping.
- tente puxar a imagem do docker manualmente no nó
- Se você estiver usando um registro privado, verifique se o seu segredo existe e se ele está correto. Seu segredo também deve estar no mesmo namespace. Obrigado swenzel
- Alguns registros têm firewalls que limitam o acesso ao endereço IP. O firewall pode bloquear o pull
- Alguns CIs criam implantações com segredos docker temporários. Portanto, o segredo expira após alguns dias (você está pedindo falhas de produção ...)