如何解决我的负载均衡器无法与我的 fargate 实例通信 更新 1
我正在学习有关 VPC、子网、ECS(使用 Fargate)等方面的一些基础知识。我正在尝试使用以下 Dockerfile 部署一个非常基本的 docker 容器:
FROM node:14
# Create app directory
WORKDIR /usr/src/app
# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./
RUN npm install
# If you are building your code for production
# RUN npm ci --only=production
# Bundle app source
COPY . .
EXPOSE 8080
CMD [ "node","index.js" ]
此图像在本地和使用 Fargate 部署时都可以正常工作(我可以在 CloudWatch 中看到日志)。当负载均衡器尝试联系我的容器时,问题就出现了。它没有通过健康检查,因此实例被销毁,然后一遍又一遍地重新创建。
映像已部署到 ECR,ECS 可以访问它(因为我可以看到服务运行了几秒钟)。
这就是问题所在,现在我将描述我所做的以及我设置的配置和资源:
VPC
- ID:vpc-0aca80a8ee7f636f6
- IPv4:172.30.0.0/16
与以下路由表相关联:
- 路由表:
- 路线:
- 172.30.0.0/16 -> 本地
- 0.0.0.0/0 -> igw-07bb57585a09fa127
- 子网关联:
- subnet-09364cab61f5e5e04 / public-subnet-2 (172.30.12.0/24)
- subnet-09fec2674273e56f2 / public-sn (172.30.10.0/24)
- 路线:
互联网网关连接到 VPC。我还创建了一个附加到 subnet-09fec2674273e56f2 / public-sn
的 NAT。
这些是我在该 VPC 中创建的子网(我只使用选定的子网):
我认为这就是我为设置网络所做的一切。我还创建了一个 ECS 集群没有创建新的 VPC。我创建了一个任务定义,配置如下:
我知道任务数为 0,我对其进行了更改,以避免在解决问题之前一直重新创建实例。
这是负载均衡器的配置:
知道请求超时的原因吗?需要更多信息吗?
更新 1
任务定义的安全组:
解决方法
您需要在您的安全组中允许端口 8080。您可以在安全组中使用您的 sg-id。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。