簡體   English   中英

在 AWS ECS 中設置服務的問題

[英]Problem with setting a service in AWS ECS

我試圖在集群上設置運行容器映像的 ECS 服務,但無法使設置正常工作。

我基本上遵循了https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-blue-green.html上的指南,只是我試圖在 EC2 實例上托管容器。

我想知道問題是否與網絡模式(使用“awsvpc”)有關。

期待

它應該在使用 eh ALB 鏈接訪問時在 index.html 上顯示一些內容

觀察

當我嘗試使用負載均衡器鏈接訪問時,它給出了 HTTP 503,並且健康檢查也顯示不健康

ALB_Link_HTTP_503

而且似乎 ECS 一直在“重新創建”容器? (原諒我對ECS還不熟悉)

Containers_keep_re-creating

試圖直接訪問容器實例但也無法訪問

Container_instance_link

Conatiner_instance_could_not_reach

我查看了容器實例上的 ECS 代理日志(/var/logs/ecs-agent.log),應該已成功拉取鏡像

Image_pulled_successfully

而且任務應該已經開始了

在此處輸入圖片說明

ECS服務事件

似乎它保持注冊和注銷目標

ECS_service_events

安全組已設置為接受 HTTP 流量

設置

容器上的 Tomcat 服務器在端口 80 上啟動

  • ALB

在此處輸入圖片說明

  • 聽眾

在此處輸入圖片說明

  • 目標組

在此處輸入圖片說明

ECS 任務定義創建

{
"family": "TestTaskDefinition",
"networkMode": "awsvpc",
"containerDefinitions": [
    {
        "name": "TestContainer",
        "image": "<Image URI>",
        "portMappings": [
            {
                "containerPort": 80,
                "hostPort": 80,
                "protocol": "tcp"
            }
        ],
        "essential": true
    }
],
"requiresCompatibilities": [
    "EC2"
],
"cpu": "256",
"memory": "512",
"executionRoleArn": "<ECS execution role ARN>"
}

ECS服務創建

{
"cluster": "TestCluster",
"serviceName": "TestService",
"taskDefinition": "TestTaskDefinition",
"loadBalancers": [
    {
        "targetGroupArn": "<target group ARN>",
        "containerName": "TestContainer",
        "containerPort": 80
    }
],
"launchType": "EC2",
"schedulingStrategy": "REPLICA",
"deploymentController": {
    "type": "CODE_DEPLOY"
},
"networkConfiguration": {
   "awsvpcConfiguration": {
      "assignPublicIp": "DISABLED",
      "securityGroups": [ "sg-0f9b629686ca3bd08" ],
      "subnets": [ "subnet-05f47b367df4f50d4", "subnet-0fd76fc8e47ea3be7" ]
   }
},
"desiredCount": 1
}

根據評論。

為了調查該問題,建議在沒有 ALB 的情況下測試 ECS 服務。 根據測試發現,由於應用程序啟動時間過長,ALB 將 ECS 服務視為不健康。

該問題已通過將 ALB 運行狀況檢查寬限期增加到(例如 300 秒)來解決。

不確定 EC2 啟動類型是否必須使用“橋接”

您也可以在 EC2 實例上使用awsvpc ,但在這種情況下bridge更容易使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM