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

Доброго вечера. кубер в дефолте отправляет контейнеру SIGTERM если в

Dockerfile не задано иное. Так вот у меня образ собран на базовом образе php-fpm в котором этот сигнал переопределён на SIGQUIT для корректного завершения воркеров. Но у меня на этом же образе крутятся деплойменты с cli командами php и там такой сигнал не корректно работает. Как я могу на уровне деплоймента определить что завершать надо именно SIGTERM, а не то что задано в Dockerfile? Неужели прийдётся билдить 2 образа?)

12 ответов

37 просмотров

забилдь заново

Владимир-Муковоз Автор вопроса
George Gaál
забилдь заново

неужели никак нельзя переопределить?)

Владимир-Муковоз Автор вопроса
George Gaál
забилдь заново

lifecycle: preStop: exec: command: ["kill", "-SIGTERM", "1"]

Владимир-Муковоз Автор вопроса
George Gaál
костыли

ну это как бы как раз делает то что мне надо, и не надо иметь 2 образа которые блин ничем не отличаются кроме этого

сигналы посылает не сам куб, а container runtime, которому просто посылается StopContainerRequest в котором есть только id контейнера и таймаут. Container runtime не видит манифест, поэтому способа задать там сигнал нет.

Владимир-Муковоз Автор вопроса
Andrey Kartashov
сигналы посылает не сам куб, а container runtime, ...

то есть либо берётся дефолтный, либо тот что задан в самом контейнере?

Владимир Муковоз
то есть либо берётся дефолтный, либо тот что задан...

зависит от container runtime, но думаю все поддерживают кастомный сигнал из образа

Владимир Муковоз
то есть либо берётся дефолтный, либо тот что задан...

так что preStop - пожалуй самые аккуратные костыли чтобы послать другой тип сигнала

Владимир-Муковоз Автор вопроса
Сергей Голод
так что preStop - пожалуй самые аккуратные костыли...

да, я так и хочу, а вот прогер с которым я работаю упёрся и думает что он может просто перезагрузиться от этого lifecycle: preStop: exec: command: ["kill", "-SIGTERM", "1"] Типа престоп шлёт сигнал и он успевает перезапустить до терминатинг в момент которого шлёт сигнал сам кубер

Владимир-Муковоз Автор вопроса

.

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

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

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
4
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта