Anpassad hälsoavsökning för Application Gateway för containrar
Application Gateway för containrar övervakar hälsotillståndet för alla serverdelsmål som standard. När serverdelsmålen blir felfria eller inte felfria distribuerar Application Gateway for Containers endast trafik till felfria slutpunkter.
Förutom att använda standardövervakning av hälsoavsökningar kan du även anpassa hälsoavsökningen så att den passar programmets krav. I den här artikeln beskrivs både standard- och anpassade hälsoavsökningar.
Ordningen och logiken för hälsoavsökning är följande:
- Använd definitionen av Anpassad resurs för HealthCheckPolicy (CR).
- Om det inte finns någon HealthCheckPolicy CR använder du beredskapsavsökning
- Om ingen beredskapsavsökning har definierats använder du standardhälsoavsökningen
Följande egenskaper utgör anpassade hälsoavsökningar:
Property | Standardvärde |
---|---|
interval | Hur ofta i sekunder hälsoavsökningar ska skickas till serverdelsmålet. Det minsta intervallet måste vara > 0 sekunder. |
timeout | Hur länge i sekunder begäran ska vänta tills den har markerats som ett fel. Det minsta intervallet måste vara > 0 sekunder. |
healthyThreshold | Antal hälsoavsökningar innan målslutpunkten markeras som felfri. Minimiintervallet måste vara > 0. |
port | Portnumret som används vid avsökning av serverdelsmålet. |
unhealthyThreshold | Antal hälsoavsökningar som ska misslyckas innan serverdelsmålet ska märkas som felfritt. Minimiintervallet måste vara > 0. |
grpc | Anges om serverdelstjänsten förväntar sig gRPC-anslutningar. Värdet måste vara {} . |
(http) | Anges om serverdelstjänsten förväntar sig http-anslutningar. |
(http) värd | Värdnamnet som anges i begäran till serverdelsmålet. |
(http) sökväg | Den specifika sökvägen för begäran. Om en enskild fil ska läsas in kan sökvägen vara /index.html. |
(http -> match) statusCodes | Innehåller två egenskaper och start end , som definierar intervallet med giltiga HTTP-statuskoder som returneras från serverdelen. |
useTLS | Anger om hälsokontrollen ska framtvinga TLS. Om det inte anges använder hälsokontrollen samma protokoll som tjänsten om samma port används för hälsokontroll. Om porten är annorlunda är hälsokontrollen klartext. |
Standardhälsoavsökning
Application Gateway för containrar konfigurerar automatiskt en standardhälsoavsökning när du inte definierar en anpassad avsökningskonfiguration eller konfigurerar en beredskapsavsökning. Övervakningsbeteendet fungerar genom att göra en HTTP GET-begäran till IP-adresserna för konfigurerade serverdelsmål. För standardavsökningar, om serverdelsmålet har konfigurerats för HTTPS, använder avsökningen HTTPS för att testa hälsotillståndet för serverdelsmålen.
Mer implementeringsinformation finns i HealthCheckPolicyConfig i API-specifikationen.
När standardhälsoavsökningen används används följande värden för varje hälsoavsökningsegenskap:
Property | Standardvärde |
---|---|
interval | 5 sekunder |
timeout | 30 sekunder |
healthyThreshold | 1 avsökning |
unhealthyThreshold | 3 avsökningar |
port | Det portnummer som används definieras av serverdelsportnumret i ingressresursen eller HttpRoute-serverdelsporten i HttpRoute-resursen. |
(http) värd | localhost |
(http) sökväg | / |
useTLS | HTTP för HTTP och HTTPS när TLS har angetts. |
1 HTTPS används när en backendTLSPolicy refererar till en målserverdelstjänst (för gateway-API-implementering) eller IngressExtension med ett backendSetting-protokoll för HTTPS (för implementering av ingress-API) anges.
Kommentar
Hälsoavsökningar initieras med User-Agent
värdet Microsoft-Azure-Application-LB/AGC
.
Anpassad hälsoavsökning
I både Gateway API och Ingress API kan en anpassad hälsoavsökning definieras genom att definiera en HealthCheckPolicyPolicy-resurs och referera till en tjänst som hälsoavsökningarna ska kontrollera mot. Eftersom tjänsten refereras av en HTTPRoute- eller Ingress-resurs med en klassreferens till Application Gateway för containrar används den anpassade hälsoavsökningen för varje referens.
I det här exemplet skickar hälsoavsökningen som genereras av Application Gateway for Containers värdnamnet contoso.com till poddarna som utgör testtjänsten. Det begärda protokollet är http
med sökvägen /
. En avsökning genereras var 5:e sekund och väntar 3 sekunder innan tidsgränsen för anslutningen har överskrids. Om ett svar tas emot anses en HTTP-svarskod mellan 200 och 299 (inklusive 200 och 299) vara felfri, och alla andra svar anses vara felaktiga.
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