Как создать проверку работоспособности для XRAY Daemon Task - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь реализовать XRAY для нашего приложения весенней загрузки AWS ECS. Для этого я создаю новую задачу с отдельным файлом docker только для демона docker, как предложено в документации AWS и предложено, когда я задал другой вопрос о настройке Daemon .

Однако, когда я пытаюсь развернуть это в AWS, требуется конечная точка проверки работоспособности, чтобы балансировщик нагрузки мог определить, что служба успешно развернута.

В самом демоне нет функции проверки работоспособности. На форумах AWS есть ветка, а также проблема в репозитории github , связанная с этим.

Моя первоначальная идея состоит в том, чтобы создать приложение (возможно, с пружинной загрузкой), которое сможет определить, запущен ли демон, и предоставить URL-адрес, по которому эльб может нажать для проверки работоспособности демона. Затем я могу развернуть его вместе с демоном.

Есть ли лучший способ сделать это? Я беспокоюсь о необходимости создания отдельного приложения только для проверки работоспособности. Для запуска двух команд точки входа в файле Docker также может потребоваться хакерство.

Какие-нибудь идеи о лучшем способе сделать это?

1 Ответ

0 голосов
/ 10 января 2019

Вам вообще не нужно использовать Load Balancer для X-Ray Docker Container Daemon, поскольку трафик поступает только из кластерных EC2-контейнеров. Проверка работоспособности контейнера X-Ray может быть выполнена с помощью AWS ECS Healthcheck .

Основываясь на форуме ответ , вы можете настроить netstat для проверки работоспособности контейнера, которая будет проверять, что если порт udp не открыт демоном-контейнером, то агент ECS перезапустит контейнер.

Ниже приведена команда HealthCheck, указанная в определении задачи ECS.

CMD-SHELL, netstat -aun | grep 2000 > /dev/null; if [ 0 != $? ]; then exit 1; fi;

Вот настройка и результат.

Task Def

Healthy

Примечание -

Если вы создаете образ X-Ray Docker, пожалуйста, убедитесь, что вы включили netstat утилиту в Dockerfile, иначе команда работоспособности не будет выполнена.

Пример - если вы используете Dockerfile, предоставил эту документацию, то вам нужно добавить net-tools пакет к вашему изображению контейнера X-Ray.

Ниже приводится мой обновленный Dockerfile, который добавляет net-tools к изображению.

FROM ubuntu:16.04
RUN apt-get update && apt-get install -y --force-yes --no-install-recommends apt-transport-https curl ca-certificates wget net-tools && apt-get clean && apt-get autoremove && rm -rf /var/lib/apt/lists/*
RUN wget https://s3.dualstack.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-3.x.deb
RUN dpkg -i aws-xray-daemon-3.x.deb
CMD ["/usr/bin/xray", "--bind=0.0.0.0:2000"]
EXPOSE 2000/udp
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...