Рейтинг:0

Приложение, развернутое в модуле Kubernetes, успешно создавало модуль в Jenkins-X 2, но не выполнялось в Jenkins-X 3.

флаг us

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

Это прекрасно работает на нашем старом кластере Jenkins-X 2, но новая версия Jenkinx-X 3 никуда не годится.

Когда он развернут, статус проходит через жизненный цикл

Бег
Завершенный
CrashLoopBackOff

Однако журналы kubectl -n <<namespace>> <<podname>> -p не показывает ошибок, а в kubectl описать pod -n <<namespace>> <<podname>> в Контейнеры/<<имя_приложения>> раздел включает

    Состояние: Ожидание
      Причина: CrashLoopBackOff
    Последнее состояние: прекращено
      Причина: Завершено
      Код выхода: 0

Что выглядит непоследовательно - я не понимаю, как это попало в CrashLoopBackoff с последним состоянием Прекращено так как Завершенный и Код выхода из 0 — приложение, насколько я вижу, не дает сбоев, просто Kubernetes закрывает модуль как завершенный, а не оставляет его работающим, а затем каким-то образом застревает в CrashLoopBackoff.

Я задавался вопросом, было ли это как-то связано с проверками готовности или живучести, убивающими его из-за того, что не было найдено постоянно работающий процесс для обслуживания запроса, но их удаление или возврат к более старым версиям, похоже, не имеет никакого значения.

Предположительно что-то пошло не так в диаграммах между старой и новой версиями, но у меня заканчиваются идеи, где искать. Есть ли что-нибудь, что люди могут предположить, что может быть причиной этого?

moonkotte avatar
флаг in
Это какое-то конкретное изображение, которое используется для этого модуля? То, что вы описали до сих пор, абсолютно верно. Когда процесс завершится, kubernetes перезапустит pod. Это зависит от изображения/приложения внутри изображения. Вы можете попробовать оба простых примера: первый — busybox, который немедленно завершится, и nginx, который продолжит работу. Обычно добавляется команда `sleep 86400`, чтобы принудительно отключить pod.
moonkotte avatar
флаг in
Также вы можете поделиться манифестом этого модуля в версиях x2 и x3, чтобы увидеть, в чем разница (я не работал с Jenkins, но знаю сам kubernetes как платформу, поэтому мы можем найти что-то или обходной путь, как указано выше)
Wytrzymały Wiktor avatar
флаг it
Привет @efpotrm. Любые обновления?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.