Google Cloud: проверка работоспособности не удаляет сбойный экземпляр из UDP Internal Load Balancer

Я работаю в проекте, чтобы переместить наш SIP инфра. в GCP.

Я использую внутренний балансировщик нагрузки UDP с частным IP-адресом для маршрутизации вызовов от Asterisk к моему Kamailio SBC. Asterisk настроен с использованием IP-адреса балансировщика нагрузки в качестве единственной исходящей конечной точки.

мой Внутренний UDP Load Balancer работает на 5060 Frontend, Backend с 2 SBC и базовой проверкой работоспособности http на порту 80.

На каждом kamailio SBC у меня есть список приложений на порту 5060 и сервер apache на порту 80 для проверки работоспособности, поэтому остановка httpd изменяет состояние экземпляра на нездоровый.

экспедиционные-правила

# gcloud compute forwarding-rules describe ip-gateway-internal-lb-local-fontend --region=europe-west3
IPAddress: 10.156.0.15
IPProtocol: UDP
backendService: https://www.googleapis.com/compute/v1/projects/My-Project/regions/europe-west3/backendServices/My-gateway-internal-lb-bservices
creationTimestamp: '2018-01-30T10:20:19.564-08:00'
description: ''
id: 'XXXXXXXXXXXXX'
kind: compute#forwardingRule
loadBalancingScheme: INTERNAL
name: ip-gateway-internal-lb-local-fontend
network: https://www.googleapis.com/compute/v1/projects/My-Project/global/networks/default
ports:
- '5060'
region: https://www.googleapis.com/compute/v1/projects/My-Project/regions/europe-west3
selfLink: https://www.googleapis.com/compute/v1/projects/My-Project/regions/europe-west3/forwardingRules/ip-gateway-internal-lb-local-fontend
subnetwork: https://www.googleapis.com/compute/v1/projects/My-Project/regions/europe-west3/subnetworks/default

бэкенд-служба

# gcloud compute backend-services describe My-gateway-internal-lb-bservices --region=europe-west3
backends:
- balancingMode: CONNECTION
  description: ''
  group: https://www.googleapis.com/compute/v1/projects/My-Project/zones/europe-west3-a/instanceGroups/My-gateway-1xx
connectionDraining:
  drainingTimeoutSec: 0
creationTimestamp: '2018-01-30T10:15:10.688-08:00'
description: ''
fingerprint: XXXXXXXXX
healthChecks:
- https://www.googleapis.com/compute/v1/projects/My-Project/global/healthChecks/basic-check-internal-http
id: 'XXXXXXXXX'
kind: compute#backendService
loadBalancingScheme: INTERNAL
name: My-gateway-internal-lb-bservices
protocol: UDP
region: https://www.googleapis.com/compute/v1/projects/My-Project/regions/europe-west3
selfLink: https://www.googleapis.com/compute/v1/projects/My-Project/regions/europe-west3/backendServices/My-gateway-internal-lb-bservices
sessionAffinity: NONE
timeoutSec: 3

проверка здоровья

# gcloud compute health-checks describe basic-check-internal-http
checkIntervalSec: 3
creationTimestamp: '2018-01-31T01:13:25.030-08:00'
description: ''
healthyThreshold: 2
httpHealthCheck:
  host: ''
  port: 80
  proxyHeader: NONE
  requestPath: /
id: 'XXXXXXXXXXXXXXXXXXXX'
kind: compute#healthCheck
name: basic-check-internal-http
selfLink: https://www.googleapis.com/compute/v1/projects/My-Project/global/healthChecks/basic-check-internal-http
timeoutSec: 3
type: HTTP
unhealthyThreshold: 2

Все тайм-ауты установлены на 3 с. Внутренние правила маршрутизации UDP LB, выполняемые схожестью сеанса (постоянством), не удаляются немедленно, для удаления требуется около 15 минут (без какого-либо трафика).

Тот же самый случай, когда экземпляр снова исправен, LB рассматривает 15 минут и начинает получать трафик.

У меня не было этой проблемы, когда я использовал балансировщик нагрузки UDP с IP-адресом внешнего адреса, потому что мой адрес звездочки, отправляющий трафик, указан так, что хэш из 5 кортежей будет отличаться для каждого вызова.

Но с UDP LB, использующим внутренний IP, хэш из 5-ти кортежей всегда будет одинаковым (один и тот же src/dst IP: порт), так как я могу настроить тайм-аут правил соответствия сеанса (постоянство) или принудительно очистить память моего ФУНТ.

Может быть, это ошибка! Кто-нибудь сталкивался с такой же проблемой? Спасибо и с нетерпением ждем, если кто-нибудь может помочь мне с этим вопросом?

BR, Ouss

1 ответ

Это ошибка внутреннего балансировщика нагрузки (UDP)

https://groups.google.com/forum/

https://issuetracker.google.com/issues/72491707