gpt4 book ai didi

amazon-web-services - 如何为 XRAY 守护进程任务创建健康检查

转载 作者:行者123 更新时间:2023-12-01 00:14:38 28 4
gpt4 key购买 nike

我正在尝试为我们的 AWS ECS Spring 启动应用程序实现 XRAY。为此,我按照 AWS documentation 的建议为 docker 守护进程创建了一个带有单独 docker 文件的新任务。当我问另一个 question on the Daemon setup 时建议.

但是,当我尝试将其部署到 AWS 时,负载均衡器需要一个运行状况检查端点才能确定服务已成功部署。

守护进程本身没有健康检查功能。 AWS forums 上有一个帖子以及 issue on the github repo与此有关。

我最初的想法是创建一个应用程序(可能是 spring-boot),它能够确定守护程序是否正在运行并公开一个 URL,elb 可以通过该 URL 对守护程序进行健康检查。然后我可以将它与守护程序一起部署。

有没有更好的方法来做到这一点?我担心需要创建一个单独的应用程序来创建健康检查。为了在 docker 文件中运行两个入口点命令,可能还需要一些技巧。

关于实现这一目标的更好方法的任何想法?

最佳答案

您根本不需要为 X-Ray Docker Container Daemon 使用负载均衡器,因为流量仅来自集群 EC2 容器。 X-Ray 容器的健康检查可以使用 AWS ECS 完成 Healthcheck本身。

基于论坛answer ,您可以在容器健康检查上配置 netstat,这将确保如果守护程序容器未打开 udp 端口​​,则 ECS 代理将重新启动容器。

以下是您在 ECS 任务定义中提供的 HealthCheck 命令。

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

这是设置和结果。

Task Def

Healthy

笔记 -

如果您正在构建 X-Ray Docker 镜像,请确保包含 netstat Dockerfile 中的实用程序,否则 health 命令将失败。

示例 - 如果您使用的是 this 中给出的 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

关于amazon-web-services - 如何为 XRAY 守护进程任务创建健康检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54119916/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com