172 похожих чатов

Есть дев кластер, туда был совершён путём kubectl patch деплой

нового image, в под из двух реплик. Одна реплика заработала нормально, а другая нет. "Вскрытие" второго контейнера показало, что в нём пустой файл конфига веб сервера. Этот конфиг перезаписывается на этапе сборки образа (докер команда COPY) в последнем слое. Поскольку оба контейнера (реплики) используют один и тот же образ, возникает вопрос - какого лешего не загрузился этот слой в контейнер при его запуске?

23 ответов

6 просмотров

а в первой реплике непустой?

Юрий- Автор вопроса
Andrey Kartashov
а в первой реплике непустой?

Да. Проблема устранена удалением кривого пода.

Юрий- Автор вопроса
Юрий
Образ в порядке

проверь в статусе (или в describe) пода, что образ правильный используется, там должен быть sha образа

Юрий- Автор вопроса
Юрий
Сверял, совпадают

то есть в образе файл непустой, в работающем поде на этому образе файл пустой? не верю.

Юрий- Автор вопроса
Andrey Kartashov
то есть в образе файл непустой, в работающем поде ...

Образ состоит из слоёв, собираемых kaniko на этапе билда. Копирование конфига - последний из шагов docker файла, после него идёт заливка в регистри (гитлаб). После этого делается патч image в деплойменте, чтобы запустить новые поды с новым образом. И тут вдруг впервые за год наблюдается такая вот интересная история - не загрузился один (последний) слой образа (в одном из двух контейнеров)

Юрий
Образ состоит из слоёв, собираемых kaniko на этап...

Docker login? Может тут , недавно такая проблема была

Юрий- Автор вопроса
Vitaliy Davidov
Docker login? Может тут , недавно такая проблема б...

Единственное что мне приходит в голову - гитлаб забанил айпи как раз перед скачиванием последнего слоя, но почему k8s не запаниковал и запустил контейнер с недокачаным образом... если было так

Юрий- Автор вопроса

Тут интересно, у него три рестарта было, но код 255, непонятно что это значит. Ну и после этих рестартов оно работало почти час пока я разбирался что за нах

у тебя бы оно тогда с imagepullerror свалилось. Я тебе говорю, у тебя образ не тот.

Юрий- Автор вопроса
Andrey Kartashov
у тебя бы оно тогда с imagepullerror свалилось. Я ...

Оно и валилось, только на деплое другого сервиса

ты уже там у себя разберись, где что валилось сначала. Если в образе есть файл, значит он и в контейнере есть. Вероятность сбоя в этом месте намного меньше вероятности твоего косяка

Юрий- Автор вопроса
Andrey Kartashov
ты уже там у себя разберись, где что валилось снач...

Вы вообще-то забываете, что образ - не один файл и у него есть слои. Не загрузился один слой из пачки. Поэтому получился образ с пустым файлом в контейнере. Причина почему такой под запустился, а не вылезла ошибка errpullimage, остаётся непонятной

Юрий
Вы вообще-то забываете, что образ - не один файл ...

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

Юрий
Вы вообще-то забываете, что образ - не один файл ...

Звучит странно - по идее если слой не скачался архив не развернется и ничего не запустится

Юрий- Автор вопроса
Aleksey Lazarev
Звучит странно - по идее если слой не скачался арх...

Я тоже так думал, но тут налицо был факт такого события)

Юрий
Вы вообще-то забываете, что образ - не один файл ...

никогда такого не видел, если хотя бы один слой не скачался, пусть он даже пару байт занимает, контейнер не запустится вообще

Похожие вопросы

Обсуждают сегодня

что насчет пагинга? на осдеве непонятно(
Vi Chapmann 🪙
26
А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
Ребят, что лучше для реверса: гидра или ида?
En Vind Av Sorg
26
Делаю велосипед логгер. К сообщению хочу прикрутить некоторую информацию, типа, кем отправлено, какой уровень, и всякое такое. И тут подумалось мне, почему бы не хранить весь...
Serjone
24
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
Всем привет! Использую gitlab-ci. Настроил gitlab-agent для деплоя в куб. При деплое проекта в логах такая ошибка: Executing deploy plan failed to watch "ns:my-project/Ingress...
Konstantin Moiseev
4
если загрузчик efi? если сама PML4 PDPT PDT PT лежит в неудобном для меня месте?
Vi Chapmann 🪙
8
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
А я же правильно понимаю, что инструкция AT в ld только сохраняет метаинформации о том, куда загрузить сегмент, которую далее из эльфика читает grub(ну если граб)? Но я тогда ...
Evg Resh
2
Карта сайта