弹性豆茎容器随机死亡

问题描述 投票:0回答:1

我最近开始使用 Elastic Beanstalk 来托管我的 Node.JS Express 容器化应用程序,以作为我的 Web 应用程序的后端提供流量。这是一个非常标准的 Express 应用程序,使用

Dockerfile
docker-compose.yaml
文件进行容器化。

我们一直面临的问题是,我们的容器经常会随机“死亡”,需要通过 compose 重启策略重新启动,这会导致容器重新启动时流量在一两分钟内失败。我们无法弄清楚发生了什么事。由于业务原因需要切换到 AWS,我们从 GCP 的 Cloud Run 切换到了 Elastic Beanstalk。它在在线时运行良好,但这种随机容器断开连接给我们的最终用户带来了问题。我在下面添加了一些代码和日志。

我们尝试增加实例大小(目前使用

t3.medium
和 4GB RAM)希望能够修复,但没有成功。此时的解决方案是将实例所需计数增加到 2 并祈祷它们不会同时死亡吗?负载均衡器能正确处理这个问题吗?

Dockerfile

FROM node:14 as build

WORKDIR /usr/src/app
COPY . .

RUN yarn install --frozen-lockfile --production

FROM node:14-alpine as main

WORKDIR /usr/src/app
COPY --from=build /usr/src/app .

EXPOSE 5001

# Set the CMD to your handler
CMD [ "yarn", "docker:start" ]

docker-compose.yaml

version: "3.7"
services:
  backend-thanos-prod:
    container_name: backend-thanos-prod
    restart: always
    build:
      context: .
      dockerfile: Dockerfile
    env_file:
      - ./src/config/.prod.env
    ports:
      - '80:5001'
    volumes:
      - .:/usr/src/app

停机时来自

docker-events.log
的日志。

主要就是:

  1. 2024-03-02T08:44:00.365632320Z container die
  2. 2024-03-02T08:44:00.515722965Z network disconnect
  3. 2024-03-02T08:44:00.620752127Z network connect
  4. 2024-03-02T08:44:01.633985729Z container start

Docker-Events.log

amazon-web-services amazon-ec2 docker-compose amazon-elastic-beanstalk amazon-elb
1个回答
0
投票

你找到解决办法了吗?我们有类似的配置并面临同样的问题。再次,没有运气解决它。任何帮助都会很棒!

© www.soinside.com 2019 - 2024. All rights reserved.