Вам вообще не нужно использовать 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;
Вот настройка и результат.
Примечание -
Если вы создаете образ 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