kubectl describe pods
listará todos os eventos associados ao pod, incluindo a extração de imagens e a inicialização de contêineres. Pode ser de ajuda.
Um pod no meu cluster do Kubernetes fica preso em "ContainerCreating" depois de executar uma criação. Como faço para ver os logs desta operação para diagnosticar por que ela está presa? kubectl logs
parece não funcionar, pois o contêiner precisa estar em um estado não pendente.
No meu caso, o acesso do docker à internet foi bloqueado. Foi resolvido usando um proxy ( usando o comentário do 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
minikube start --logtostderr --v=0 --bootstrapper=localkube --vm-driver hyperv
--hyperv-virtual-switch "Primary Virtual Switch" --docker-env HTTP_PROXY=$http_proxy \
--docker-env HTTPS_PROXY=$https_proxy --docker-env NO_PROXY=$no_proxy
export no_proxy=$no_proxy,$(minikube ip)
export NO_PROXY=$no_proxy,$(minikube ip)
Em seguida, para verificar se a janela de encaixe tem acesso à internet, execute:
$ docker pull tutum/hello-world
no cluster (conecte-se ao cluster usando minikube ssh
); pare o processo se ele iniciar o download.
Meu segundo problema foi a conexão lenta à Internet. Como as imagens da janela de encaixe exigidas são da ordem de 100 MB, os contêineres da janela de encaixe e os conjuntos de Kubernetes permaneceram nos estados \pause
e ContainerCreating
por 30 minutos.
Para verificar se a janela de encaixe está fazendo o download das imagens, execute:
$ ls -l /var/lib/docker/tmp
no cluster, que mostra o arquivo de imagem temporário [s] que está sendo baixado, caso contrário, vazio.
Se você está desenvolvendo no minikube e usando VPN, o docker pode usar sua VPN via fiddler . Ou seja, o docker será conectado ao ip: port do fiddler e o fiddler será conectado à VPN. Caso contrário, a VPN não será compartilhada entre seu host e a VM do minikube.