Size: a a a

Docker — русскоговорящее сообщество

2020 February 20

GG

George Gaál in Docker — русскоговорящее сообщество
Nayls
А основная суть этого такая, есть апи и если по его хелсчеку что-то пошло не так, докер рестартит и помечает его как Unhealth (не живой)
👍 так
источник

В

Вадим in Docker — русскоговорящее сообщество
Nayls
Смотри, Healthcheck  в докерфайле это как бы ты для себя сразу добавляешь, как CMD или ENTRYPOINT.
В docker-compose это тоже самое, просто если уже есть в докерфайле, то можешь не указывать, но можешь указать и это переопределит HEALTHCHECK из докерфайла
про описание в докерфайле и переопределение в компоузе - это все понятно
мне не понятно из ваших слов что есть какие-то 2 разные проверки живучести нстанса:
- одна своя у докера внутри зашитая
-2я кастомная описываемая в файлах но непонятно зачем
источник

N

Nayls in Docker — русскоговорящее сообщество
Docker -> Docker Compose (просто надстройка над докером, чтобы просто удобнее писать) -> Docker Swarm (лишь даёт управление сервисами в рамках Роя (во славу роя)
источник

N

Nayls in Docker — русскоговорящее сообщество
Всё это докер и работает везде всё одинаково, всё это лишь добавляет какой-то кусок фишек
источник

N

Nayls in Docker — русскоговорящее сообщество
Вадим
про описание в докерфайле и переопределение в компоузе - это все понятно
мне не понятно из ваших слов что есть какие-то 2 разные проверки живучести нстанса:
- одна своя у докера внутри зашитая
-2я кастомная описываемая в файлах но непонятно зачем
Нет, ты не понял, проверки всегда делаются внутри контейнера.
источник

N

Nayls in Docker — русскоговорящее сообщество
Просто это может быть что угодно
источник

В

Вадим in Docker — русскоговорящее сообщество
Nayls
Нет, ты не понял, проверки всегда делаются внутри контейнера.
т.е. curl запускается как PID 2 внутри инстанса ?
источник

N

Nayls in Docker — русскоговорящее сообщество
Например ты знаешь, что твоя апи работает если в ней есть какой-то yoba.txt и пока он есть, докер считает его рабочим, ну или curl http://localhost например
источник

GG

George Gaál in Docker — русскоговорящее сообщество
Вадим
т.е. curl запускается как PID 2 внутри инстанса ?
да, последовательно PID2 , PID3 и тд
источник

В

Вадим in Docker — русскоговорящее сообщество
George Gaál
да, последовательно PID2 , PID3 и тд
ок, спасибо - попробую покрутить все это проверить на практике
источник

N

Nayls in Docker — русскоговорящее сообщество
healthcheck:
 test: ["CMD", "curl", "-f", "http://localhost"]
 interval: 1m30s
 timeout: 10s
 retries: 3
 start_period: 40s


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

healthcheck:
 test: ["CMD", "/bin/sh", "-c", "/healthcheck-api.sh"]
 interval: 1m30s
 timeout: 10s
 retries: 3
 start_period: 40s
источник

N

Nayls in Docker — русскоговорящее сообщество
Вадим
про описание в докерфайле и переопределение в компоузе - это все понятно
мне не понятно из ваших слов что есть какие-то 2 разные проверки живучести нстанса:
- одна своя у докера внутри зашитая
-2я кастомная описываемая в файлах но непонятно зачем
Я тебя запутал, но хотел лишь указать, что хелс это всегда внутри в данном случае и то, чтобы можешь её вертеть почти как хочешь
источник

В

Вадим in Docker — русскоговорящее сообщество
Nayls
Я тебя запутал, но хотел лишь указать, что хелс это всегда внутри в данном случае и то, чтобы можешь её вертеть почти как хочешь
я понял, спасибо - я думал что это инструкция докер-машине из-за этого и не мог понять как к инстансу обратиться
источник

N

Nayls in Docker — русскоговорящее сообщество
Вадим
я понял, спасибо - я думал что это инструкция докер-машине из-за этого и не мог понять как к инстансу обратиться
Не, всё проще.
А вот если захочешь всякую другую анархию, то делай как тебе уже писали
источник

N

Nayls in Docker — русскоговорящее сообщество
источник

N

Nayls in Docker — русскоговорящее сообщество
3. более сложные кейсы - ты просерил 10% запросов из-за того, что сервис тупил, но при этом хелсчек из п2 отрабатывает. Если ты попробуешь сделать что-то типа хелсчека на потерянные запросы - ничего хорошего не выйдет. Просто потому что. Поэтому я тебе и говорю, что если нужно что-то отличное от базового "работоспособность сервиса в отрыве от окружения", то тебе нужна ОТДЕЛЬНАЯ СИСТЕМА мониторинга
источник

В

Вадим in Docker — русскоговорящее сообщество
Nayls
3. более сложные кейсы - ты просерил 10% запросов из-за того, что сервис тупил, но при этом хелсчек из п2 отрабатывает. Если ты попробуешь сделать что-то типа хелсчека на потерянные запросы - ничего хорошего не выйдет. Просто потому что. Поэтому я тебе и говорю, что если нужно что-то отличное от базового "работоспособность сервиса в отрыве от окружения", то тебе нужна ОТДЕЛЬНАЯ СИСТЕМА мониторинга
такие сложные кейсы мне пока не интересны - хосчется простое )
источник

В

Вадим in Docker — русскоговорящее сообщество
добаил как и писали хэлсчек инстансу и добавил метод в сервер который отвечает и логирует обращение

healthcheck:
           test: curl --fail -s http://localhost:5001/health || exit 1
           interval: 15s
           timeout: 10s
           retries: 3


сижу втыкаю в журнал а там кроме стартовых записей ничего не происходит (
источник

MN

Max Nizkiy in Docker — русскоговорящее сообщество
Вадим
добаил как и писали хэлсчек инстансу и добавил метод в сервер который отвечает и логирует обращение

healthcheck:
           test: curl --fail -s http://localhost:5001/health || exit 1
           interval: 15s
           timeout: 10s
           retries: 3


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

В

Вадим in Docker — русскоговорящее сообщество
ха об этом меня не предупредили - сейчас проверю )
источник