Sdílet prostřednictvím


Vlastní sonda stavu pro službu Application Gateway pro kontejnery

Služba Application Gateway pro kontejnery ve výchozím nastavení monitoruje stav všech back-endových cílů. Jakmile se cíle back-endu stanou v pořádku nebo nejsou v pořádku, služba Application Gateway pro kontejnery distribuuje provoz pouze do koncových bodů, které jsou v pořádku.

Kromě použití výchozího monitorování sond stavu můžete také přizpůsobit sondu stavu tak, aby vyhovovala požadavkům vaší aplikace. Tento článek popisuje výchozí i vlastní sondy stavu.

Pořadí a logika sondování stavu je následující:

  1. Použijte definici vlastního prostředku HealthCheckPolicy (CR).
  2. Pokud neexistuje žádná CR HealthCheckPolicy, použijte sondu připravenosti.
  3. Pokud není definovaná žádná sonda připravenosti, použijte výchozí sondu stavu.

Následující vlastnosti tvoří vlastní sondy stavu:

Vlastnost Výchozí hodnota
interval Jak často se mají sondy stavu v sekundách odesílat do back-endového cíle. Minimální interval musí být > 0 sekund.
timeout Jak dlouho v sekundách má požadavek čekat, až se označí jako selhání. Minimální interval musí být > 0 sekund.
healthyThreshold Počet sond stavu před označením cílového koncového bodu v pořádku Minimální interval musí být > 0.
port Číslo portu použité při změření cíle back-endu.
není v pořádku Početsondch Minimální interval musí být > 0.
grpc Určuje se, jestli back-endová služba očekává připojení gRPC. Hodnota musí být {}.
(http) Určuje se, jestli back-endová služba očekává připojení HTTP.
(http) hostitel Název hostitele zadaný v požadavku na cíl back-endu.
(http) cesta Konkrétní cesta požadavku. Pokud by se měl načíst jeden soubor, může být cesta /index.html.
(http –> shoda) statusCodes Obsahuje dvě vlastnosti start a enddefinují rozsah platných stavových kódů HTTP vrácených z back-endu.
useTLS Určuje, jestli má kontrola stavu vynutit protokol TLS. Pokud není zadaný, kontrola stavu používá stejný protokol jako služba, pokud se ke kontrole stavu používá stejný port. Pokud se port liší, kontrola stavu je jasný text.

Diagram znázorňující službu Application Gateway pro kontejnery využívající vlastní sondy stavu k určení stavu back-endu

Výchozí sonda stavu

Služba Application Gateway pro kontejnery automaticky nakonfiguruje výchozí sondu stavu, pokud nedefinujete vlastní konfiguraci sondy nebo nakonfigurujete sondu připravenosti. Chování monitorování funguje tak, že vytvoří požadavek HTTP GET na IP adresy nakonfigurovaných back-endových cílů. Pokud je pro výchozí testy nakonfigurovaný back-endový cíl https, použije sonda protokol HTTPS k otestování stavu back-endových cílů.

Další podrobnosti o implementaci najdete v tématu HealthCheckPolicyConfig ve specifikaci rozhraní API.

Pokud se použije výchozí sonda stavu, použijí se pro každou vlastnost sondy stavu následující hodnoty:

Vlastnost Výchozí hodnota
interval 5 sekund
timeout 30 sekund
healthyThreshold 1 sonda
není v pořádku 3 sondy
port Použité číslo portu je definováno číslem back-endového portu v prostředku příchozího přenosu dat nebo back-endovým portem HttpRoute v prostředku HttpRoute.
(http) hostitel localhost
(http) cesta /
useTLS HTTP pro PROTOKOL HTTP a HTTPS při zadání protokolu TLS.

1 HTTPS se používá, když backendTLSPolicy odkazuje na cílovou back-endovou službu (pro implementaci rozhraní API brány) nebo IngressExtension s back-endSetting protokolem HTTPS (pro implementaci rozhraní API příchozího přenosu dat).

Poznámka:

Sondy stavu se inicialují s User-Agent hodnotou Microsoft-Azure-Application-LB/AGC.

Vlastní sonda stavu

V rozhraní API brány i v rozhraní API příchozího přenosu dat je možné definovat vlastní sondu stavu definováním prostředku HealthCheckPolicyPolicyPolicy a odkazováním na službu, ve které by se sondy stavu měly kontrolovat. Vzhledem k tomu, že na službu odkazuje prostředek HTTPRoute nebo Příchozí přenos dat s odkazem na třídu služby Application Gateway for Containers, použije se pro každý odkaz vlastní sonda stavu.

V tomto příkladu odešle sonda stavu vygenerovaná službou Application Gateway pro kontejnery název hostitele contoso.com podům, které tvoří test-service. Požadovaný protokol je http s cestou /. Sonda se vygeneruje každých 5 sekund a před zjištěním vypršení časového limitu připojení počká 3 sekundy. Při přijetí odpovědi se kód odpovědi HTTP mezi 200 a 299 (včetně 200 a 299) považuje za v pořádku, všechny ostatní odpovědi se považují za špatné.

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
    port: 8123
    # grpc: {} # defined if probing a gRPC endpoint
    http:
      host: contoso.com
      path: /
      match:
        statusCodes: 
        - start: 200
          end: 299
    useTLS: true
EOF