Назад | Перейти на главную страницу

Поды терпят неудачу и перезапускаются / выходят много раз в Google Container Engine

Я настраиваю Google Container Engine и создал модули, контроллер ресурсов и службу. Однако он никогда не будет готов и перезапускается несколько раз следующим образом. (restartPolicy является Always)

$ kubectl get pods
NAME                   READY     STATUS       RESTARTS   AGE
app-production-acg4r   0/1       ExitCode:0   8          5m
app-production-p7njh   0/1       ExitCode:0   8          5m

Я последовал за Руководство по устранению неполадок в приложении Kubernetes, но не повезло.

Сначала я попробовал kubectl logs, но нет вывода

$ kubectl logs app-production-acg4r app-production
$ kubectl logs app-production-p7njh app-production
$ kubectl logs --previous app-production-acg4r app-production
$ kubectl logs --previous app-production-p7njh app-production

Я также попытался запустить команду внутри контейнера с помощью kubectl exec. Иногда возвращает ошибку:

$ kubectl exec notel-production-uz29p -c notel-production -- ls /var/log
error: Error executing remote command: Error executing command in container: container not found ("notel-production")

а иногда и без ответа:

$ kubectl exec notel-production-uz29p -c notel-production -- ls /var/log
(No response)

Я также подтвердил Руководство по устранению неполадок кластера.

Я понятия не имею, что еще могу делать. Как я могу разобраться в этой проблеме? Или это проблема Google Container Engine?

Похоже, ваш контейнер запускается, а затем быстро закрывается. Я предполагаю, что из СТАТУСА, который ExitCode:0.

Для отладки я бы проверил следующее:

  • если вы запустите тот же контейнер непосредственно с докером на вашем локальном компьютере, он также немедленно выйдет?
  • если нет, переопределяете ли вы какие-либо переменные среды или аргументы или командную строку в своем шаблоне Pod таким образом, чтобы он немедленно завершился?
  • попробуйте установить .spec.container[].command для вашего шаблона Pod на что-то вроде ["sleep", "10000"], чтобы контейнер оставался живым достаточно долго, чтобы вы могли использовать kubectl exec ... для отладки.