【问题标题】:AWS ECS - How to restart/kill task if healthcheck fails?AWS ECS - 如果运行状况检查失败,如何重新启动/终止任务?
【发布时间】:2021-09-20 16:13:52
【问题描述】:

我在 AWS ECS 中有一个任务,它正在运行服务 (Airflow 2)。我想按照文档中的建议设置运行状况检查,以避免调度程序出现故障。

在我的docker-compose 我有:

scheduler:
    image: my-custom-airflow2
    command: scheduler
    healthcheck:
      test: [ "CMD-SHELL", 'airflow jobs check --job-type SchedulerJob --hostname "$${HOSTNAME}"' ]
      interval: 10s
      timeout: 10s
      retries: 5
    restart: always
    container_name: my-scheduler
    build:
      context: .
      dockerfile: Dockerfile
    env_file:
      - ./airflow.env
    volumes:
      - ./database_utils:/database_utils
      - ./dags:/opt/airflow/dags
      - ./logs:/opt/airflow/logs
    depends_on:
      - webserver

在我的任务定义中,我有这个:

healthCheck: [
        {
          retries : 5
          command : [
            "CMD-SHELL",
            "airflow jobs check --job-type SchedulerJob --hostname \"$${HOSTNAME}\""
          ]
        },
      ],

如何在任务定义中复制 docker-compose 中的重启命令? 目标是如果检查不成功,则终止服务并重新启动新服务。

【问题讨论】:

    标签: docker amazon-ecs


    【解决方案1】:

    AWS ECS healthcheck docs 这么说:

    如果任务是手动运行的,而不是作为服务的一部分,则无论其运行状况如何,该任务都将继续其生命周期。对于属于服务一部分的任务,如果任务报告为不健康,那么该任务将被停止并且服务调度程序将替换它。

    所以这里的问题是确保任务在服务中运行。否则不重启。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-19
      • 2021-06-13
      • 1970-01-01
      • 1970-01-01
      • 2021-09-07
      • 2017-08-03
      • 2020-04-28
      • 2017-10-18
      相关资源
      最近更新 更多