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í:
- Použijte definici vlastního prostředku HealthCheckPolicy (CR).
- Pokud neexistuje žádná CR HealthCheckPolicy, použijte sondu připravenosti.
- 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 end definují 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. |
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