Могу ли я использовать второй динамический порт для проверки работоспособности целевой группы (это не порт трафика)? - PullRequest
0 голосов
/ 29 октября 2018

Я использую экземпляр контейнера HAProxy , запущенный NLB, для прокси-трафика от экземпляра Postgres / RDS из частной подсети. Мой haproxy.cfg файл выглядит так:

listen  postgres_rds
        bind *:5432
        mode tcp
        timeout client  10800s
        timeout connect  10800s
        timeout server  10800s
        server primary ${RDS_URL}:5432

listen stats # Define a listen section called "stats"
        bind :9000 # Listen on localhost:9000
        mode http
        stats enable  # Enable stats page
        stats hide-version  # Hide HAProxy version
        stats realm Haproxy\ Statistics  # Title text for popup window
        stats uri /  # Stats URI

Итак, как вы можете видеть, я настроил контейнер для перенаправления трафика на порт 5432 и также настроил порт 9000 в контейнере в качестве проверки работоспособности.

В Amazon ECS этот контейнер настроен на использование динамических портов. Другими словами, вот раздел сопоставления портов определения задачи:

  "portMappings": [
    {
      "hostPort": 0,
      "protocol": "tcp",
      "containerPort": 5432
    },
    {
      "hostPort": 0,
      "protocol": "tcp",
      "containerPort": 9000
    }
  ],

Контейнер работает как служба ECS. Моя цель - иметь возможность масштабировать эту услугу по мере необходимости. Однако ни одна из целей (в целевой группе) не отображается как здоровая, поэтому она постоянно циклически выполняет задачи ECS - раскручивает новые и разрушает старые, при этом задачи не помечаются как здоровые и стабилизирующие.

Я вижу, что задачи назначают эти два порта эфемерным / динамическим портам на экземпляре хоста ECS. И я также вижу, что балансировщик нагрузки правильно перенаправляет порт 5432 на соответствующий динамический порт. Однако параметры проверки работоспособности целевой группы, похоже, не могут аналогичным образом выполнить это динамическое сопоставление. Единственные параметры, которые у меня есть для проверки работоспособности целевой группы, - это «порт трафика» (в данном случае динамический порт, который сопоставляется с контейнерным портом 5432) или статический порт.

Я попытался установить статический порт в проверке работоспособности, но, конечно, это не работает, потому что он не использует статический порт. Я начинаю думать, что это просто невозможно, но я надеюсь оказаться неправым. Есть ли способ использовать отдельный динамический порт для проверки работоспособности целевой группы? Или даже если не сейчас, есть ли что-нибудь в работах, чтобы учесть это поведение?

...