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

Эксперты кубера, правильно ли в liveness probe не проверять доступность

внешних систем, а в readiness проверять?

6 ответов

26 просмотров

Релиннс проб зафэйлился - не пускаем трафик на под Ливнес зафэйлился - рестартим под Должен ли на это влиять статус внешних систем - зависит от системы и зачем почему, как мы хэндлим отказоустойчивость и какие у нас требования по доступности

Gleb-Fault Автор вопроса
Sergey P
Релиннс проб зафэйлился - не пускаем трафик на под...

А как понять в каких случаях проверять зависимость от внешних систем? У меня есть СУБД и внешний сервис, без которых приложение не будет комплаенс, то есть без них нет смысла вооьще идти в прод. Нужно ли мне их опрашивать в рединесс? И какой критерий доступности: коннекшен установлен или «код ответа 200»? Как правильно выбирать?

Gleb Fault
А как понять в каких случаях проверять зависимость...

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

Gleb-Fault Автор вопроса
Arthur Irgashev
тут всё чуть сложнее зависит от того, может твое п...

Ну то есть, если без компонента жить нельзя, то проверяем?

Gleb Fault
А как понять в каких случаях проверять зависимость...

Ну давай разбираться. Допустим ливнес. Оно рестартит под. Допустим у тебя упала база, поможет ли рестарт пода с этим? Вдруг оно там фолбэчнулось а у тебя коннекшен пул статичный - может и надо ребутнуться что бы восстановить работоспособность. Главный асампшен что тут рестарт хоть немного полезен и что база восстановится относительно быстро Другой вопрос как на это реагируют клиенты твоего сервиса. Если у тебя все поды ушли в Крэш луп как это на них повляет? Мол получат они bad gateway какой и норм? С внешним сервисом все сложнее. Рестарт нашего пода ничем делу не поможет. Ну разве что у тебя конфиги поменялись и мэпятся через файлы но всеравно надо под рестартить. Но это тупо. Та же штуку как крэшлуп другие клиенты будут воспринимать. Для рэди проб та же штука. Мол если мы деплоим новые конфиги через ролинг апдейт то может быть полезным делать эти проверки в рэди пробах что бы чуть что деплой просто зафэйлился. И если без этих зависимостей никак то так достаточно безопасно. Но это в целом только для кейсов когда ты сломал а не сервисы прилегли

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта