Поделиться через


Настраиваемая проба работоспособности для Шлюз приложений для контейнеров

Шлюз приложений для контейнеров отслеживает работоспособность всех целевых объектов серверной части по умолчанию. Поскольку целевые объекты серверной части становятся работоспособными или неработоспособными, Шлюз приложений для контейнеров распределяет трафик только в здоровые конечные точки.

Помимо проверки работоспособности по умолчанию проверку также можно настроить в соответствии с требованиями приложения. В этой статье рассматриваются как пробы работоспособности по умолчанию, так и пользовательские пробы работоспособности.

Порядок и логика проверки работоспособности приведены следующим образом:

  1. Используйте определение настраиваемого ресурса HealthCheckPolicy (CR).
  2. Если нет проверки работоспособности HealthCheckPolicy CR, используйте пробу готовности
  3. Если не определена проба готовности, используйте пробу работоспособности по умолчанию.

Следующие свойства составляют пользовательские пробы работоспособности:

Свойство Значение по умолчанию
interval Как часто пробы работоспособности секунд должны отправляться в серверный целевой объект. Минимальный интервал должен составлять > 0 секунд.
timeout Сколько времени в секундах запрос должен ждать, пока он не помечается как сбой, минимальный интервал должен быть > 0 секунд.
healthyThreshold Количество проб работоспособности перед маркировкой работоспособности целевой конечной точки. Минимальный интервал должен быть > 0.
неработоспособныйTreshold Количество проб работоспособности, которые завершаются сбоем, прежде чем серверный целевой объект должен быть помечен как неработоспособный. Минимальный интервал должен быть > 0.
Узел (http) Имя узла, указанное в запросе к целевому объекту серверной части.
Путь (http) Конкретный путь запроса. Если нужно загрузить один файл, путь может быть /index.html.
(http -> match) statusCodes Содержит два свойства и endопределяет диапазон допустимых кодов состояния HTTP, start возвращаемых серверной частью.

Схема, показывающая Шлюз приложений для контейнеров с помощью пользовательских проб работоспособности для определения работоспособности серверной части.

Проверка работоспособности по умолчанию

Шлюз приложений для контейнеров автоматически настраивает пробу работоспособности по умолчанию, если не определить настраиваемую конфигурацию пробы или настроить пробу готовности. Поведение мониторинга работает путем выполнения HTTP-запроса GET к IP-адресам настроенных целевых объектов серверной части. Для проб по умолчанию, если серверный целевой объект настроен для HTTPS, проба использует HTTPS для проверки работоспособности целевых объектов серверной части.

Дополнительные сведения о реализации см. в разделе HealthCheckPolicyConfig в спецификации API.

При использовании пробы работоспособности по умолчанию используются следующие значения для каждого свойства пробы работоспособности:

Свойство Значение по умолчанию
interval 5 секунд
timeout 30 секунд
healthyTrehshold 1 проба
неработоспособныйTreshold 3 пробы
port Используемый номер порта определяется номером внутреннего порта в ресурсе входящего трафика или серверным портом HttpRoute в ресурсе HttpRoute.
protocol HTTP или HTTPS1
Узел (http) localhost
Путь (http) /

1 HTTPS будет использоваться при указании внутреннего протокола HTTPSPolicy для целевой серверной службы (для реализации API шлюза) или IngressExtension с использованием протокола HTTPS (для реализации API входящего трафика).

Примечание.

Пробы работоспособности инициируются со значением User-Agent Microsoft-Azure-Application-LB/AGC.

Пользовательская проверка работоспособности

В API шлюза и API входящего трафика можно определить настраиваемую пробу работоспособности, определив ресурс HealthCheckPolicyPolicyPolicy и ссылаясь на службу, с которыми должны проверяться пробы работоспособности. Так как служба ссылается на ресурс HTTPRoute или Ingress со ссылкой на класс Шлюз приложений для контейнеров, для каждой ссылки используется настраиваемая проба работоспособности.

В этом примере проба работоспособности, которая создается Шлюз приложений для контейнеров, отправляет имя узла contoso.com в модули pod, составляющие тестовую службу. Путь запроса : /проба создается каждые 5 секунд и подождите 3 секунды, прежде чем определить время ожидания подключения. Если ответ получен, код http-ответа от 200 до 299 (включительно 200 и 299) считается работоспособным, все остальные ответы считаются неработоспособными.

kubectl apply -f - <<EOF
apiVersion: alb.networking.azure.io/v1
kind: HealthCheckPolicy
metadata:
  name: gateway-health-check-policy
  namespace: test-infra
spec:
  targetRef:
    group: ""
    kind: Service
    name: test-service
    namespace: test-infra
  default:
    interval: 5s
    timeout: 3s
    healthyThreshold: 1
    unhealthyThreshold: 1
    http:
      host: contoso.com
      path: /
      match:
        statusCodes: 
        - start: 200
          end: 299
EOF