Um pod no meu cluster Kubernetes está preso em "ContainerCreating" depois de executar um create. Como vejo os logs dessa operação para diagnosticar por que ela está travada? kubectl logs
não parece funcionar, pois o contêiner precisa estar em um estado não pendente.
kubectl describe pods
listará alguns (provavelmente a maioria, mas não todos) dos eventos associados ao pod, incluindo extração de imagens, inicialização de contêineres.Mais informações podem ser fornecidas nos eventos.
No entanto, observe que a classificação de eventos pode não funcionar corretamente devido a este bug: https://github.com/kubernetes/kubernetes/issues/29838
Alternativamente:
De: https://github.com/kubernetes/kubernetes/issues/29838#issuecomment-789660546
No meu caso, tive um evento relacionado a um pod:
No meu caso, o acesso do docker à internet foi bloqueado. Foi resolvido usando um proxy ( usando o comentário de sandylss ):
minikube stop
minikube delete
export http_proxy=http://user:pass@ip:port
export https_proxy=http://user:pass@ip:port
export no_proxy=192.168.99.0/24
export no_proxy=$no_proxy,$(minikube ip)
export NO_PROXY=$no_proxy,$(minikube ip)
Em seguida, para verificar se o docker tem acesso à internet, execute:
no cluster (conecte-se ao cluster usando
minikube ssh
); interrompa o processo se ele iniciar o download.Meu segundo problema foi a conexão lenta com a internet. Como as imagens do docker necessárias são da ordem de 100 MB, os contêineres do docker e os pods do Kubernetes permaneceram nos
\pause
estadosContainerCreating
por 30 minutos.Para verificar se o docker está baixando as imagens, execute:
no cluster, que mostra os arquivos de imagem temporários que estão sendo baixados, caso contrário, vazio.
Se você estiver desenvolvendo no minikube e usando VPN, o docker pode usar sua VPN via fiddler . Ou seja, o docker será conectado ao ip:port do violinista e o violinista será conectado à VPN. Caso contrário, a VPN não é compartilhada entre seu host e a VM minikube.
A única vez que eu bati isso foi porque minhas declarações de recursos foram acidentalmente muito, muito pequenas.
recursos: limites: CPU: 1000m memória: 1024M solicitações: CPU: 1000m memória: 1024M
vs
recursos: limites: CPU: 1000m memória: 1024m solicitações: CPU: 1000m memória: 1024m
capitalizar que m faz uma diferença muito grande no uso de recursos. Eu estava preso no ContainerCreating porque não havia dado memória suficiente ao meu contêiner.
No meu caso, um pod ficou preso em ' ContainerCreating ' porque um pull de imagem do docker foi travado (algumas camadas foram baixadas, algumas ficaram presas em "download").
mostrou um evento "Puxando imagem"
Tentei puxar essa imagem usando o docker image pull... e vi que estava travando.
Descobriu-se que há um bug em pulls simultâneos de camadas. Alterar a configuração do docker para limitar a simultaneidade resolveu o problema.
Adicionado isso à configuração do docker (no Windows, interface do usuário do docker-desktop, configurações, Docker Engine) para limitar a simultaneidade: