Вопрос: Кубернетес застрял в ContainerCreating


Пакет в моем кластере Kubernetes застрял в «ContainerCreating» после запуска create. Как просмотреть журналы для этой операции, чтобы определить, почему она застряла? kubectl logs похоже, не работает, поскольку контейнер должен находиться в незавершенном состоянии.


52
2017-10-13 20:40


Источник


kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/... представляет собой документацию о возможных фазах. К сожалению, он не включает ContainerCreating... - Xiong Chiamiov


Ответы:


kubectl describe pods будут перечислены все события, связанные с контейнером, включая вытягивание изображений, запуск контейнеров. Это может помочь.


66
2017-10-22 06:38



что, если контейнер застрял в ContainerCreating без каких-либо событий? для меня события показаны как «Нет событий». - Bob
Некоторые события, кажется, требуют времени, чтобы появиться. Например, тайм-аут, пытающийся установить диск для меня, занимает около 2 минут, прежде чем он появится как событие. - jwadsack
Это происходит, когда вы используете секреты, и они не найдены (например, опечатка в ямле или вы забыли создать ее раньше). Для почти всех других возможных ошибок он получает CrashLoopback или Error state, но с секретами он просто застревает в ContainerCreating, если вы описываете стручок, тогда вы увидите в самом конце сообщение о том, что секрет не найден, но он едва говорит ничего о проблеме. - danius
Да, обычно у вас нет никаких событий, прежде чем он начнет что-то делать. - erikbwork


В моем случае доступ докеров к интернету был заблокирован. Он был решен с использованием прокси (используя комментарий sandylss):

  1. minikube stop
  2. minikube delete
  3. export http_proxy=http://user:pass@ip:port
  4. export https_proxy=http://user:pass@ip:port
  5. export no_proxy=192.168.99.0/24
  6. 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
    
  7. export no_proxy=$no_proxy,$(minikube ip)
  8. export NO_PROXY=$no_proxy,$(minikube ip)

Затем, чтобы проверить, имеет ли докер доступ к Интернету, запустите:

$ docker pull tutum/hello-world

в кластере (подключитесь к кластеру, используя minikube ssh); остановить процесс, если он начнет загружаться.

Моя вторая проблема заключалась в медленном подключении к Интернету. Так как требуемые изображения докеры составляют порядка 100 МБ, обе докерные контейнеры и стручки Кубернете остались в \pause а также ContainerCreating состояния в течение 30 минут.

Чтобы проверить, загружает ли докер изображения, выполните:

$ ls -l /var/lib/docker/tmp

в кластере, который показывает файл временного файла [s], который загружается, в противном случае пуст.

Если вы работаете в мини-кубе и используете VPN, докер может использовать вашу VPN через обманщик, То есть докер будет подключен к ip: порту fiddler, а скрипач подключен к VPN. В противном случае VPN не разделяется между вашим хостом и виртуальной машиной minikube.


1
2017-07-10 03:41